标签: yad

如何使用 bash 脚本轻松创建 GUI 对话框?

我需要为两个 Bash 列表(文件)记录中的每一个显示一些文本以及项目(大约 15 个值)。在同一屏幕上,我需要呈现三向选择(按钮、滚动选择窗口等)。

我是一个 Ubuntu(11.04) 脚本菜鸟,刚刚开始在脚本中使用 Zenity。我的朋友推荐了YAD。

我可以在 YAD 中完成所有这些还是使用我们不知道的其他简单的 GUI 工具?

.

command-line bash scripts zenity yad

7
推荐指数
2
解决办法
1万
查看次数

Bash 模板使用 zenity(或 yad)在文件或数据库中插入/编辑/删除记录

I\xe2\x80\x99m 正在寻找使用zenityyad来维护记录列表的bash 模板。该模板可以是带有打印选项的购物清单,也可以是用于监视 ping 时间的服务器列表。无论哪种情况,我\xe2\x80\x99d 都喜欢采用该代码并采用它来满足我的需要。

\n\n

这是一个示例对话框模型:

\n\n

网络同步1

\n\n

该对话框允许选择记录并单击以下按钮:

\n\n
    \n
  • Insert before(在所选记录之前插入)。安装了一个新的输入表单来输入字段。
  • \n
  • Edit(编辑选定的记录)。安装与“插入之前”相同的表单,但显示现有值。
  • \n
  • Delete(删除选定的记录)。显示现有记录的内容并请求确认。
  • \n
  • Run- 运行一个冗长的更新过程,用 \xe2\x80\x9cMatcheOK / Different / Error\xe2\x80\x9d 更新状态列。系统会提示用户对所选记录或所有记录运行更新。所有记录处理完毕后显示进度显示栏。
  • \n
  • Cancel ALL- 不要保存任何更改并退出 bash 脚本。按下Escape或通过单击关闭窗口X执行相同的操作。如果有任何记录发生更改,请确认。
  • \n
  • Save- 将更改保存到磁盘并退出 bash 脚本。
  • \n
\n\n

注意:看来 zenity 只允许重新标记 \xe2\x80\x9cOK\xe2\x80\x9d 和 \xe2\x80\x9cCancel\xe2\x80\x9d 按钮。无法在 zenity 中定义新按钮。因此 yad ( Y et A another D)就是最佳选择。然而,zenity 仍然是一个问题,因为基于它的脚本可以很容易地转换为 yad。

\n\n

我\xe2\x80\x99已经用谷歌搜索了现有的例子,这些是最接近的,但仍然远远不够令人满意:

\n\n

command-line bash scripts zenity yad

6
推荐指数
1
解决办法
4070
查看次数

如何编辑 YAD 问题标签(示例)?

YAD是 Zenity 分叉。

我有这个yad脚本:

#!/bin/bash

yad --text="Execute the file? (press 'Cancel' to open in text editor)" 

case $? in
    0)thunar "$1"
    ;;
    1)gedit $1
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

与作为应用程序启动器的桌面文件相关联,它可用于在单击文件(例如脚本等)时显示一个窗口。

在此处输入图片说明

在 zenity 中,可以编辑标签的名称:

Zenity 的相同脚本应如下所示:

#!/bin/bash

zenity --question --text="What to do?" \
       --ok-label=Run \
       --cancel-label=Edit

case $? in
    0)thunar "$1"
    ;;
    1)gedit $1
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

RunEdit可以改变的。

我认为这里说的是yad编辑标签的方法:

--button=Button:ID

Add the dialog button. May be used multiply times. ID is an exit code …
Run Code Online (Sandbox Code Playgroud)

scripts zenity yad

4
推荐指数
1
解决办法
2325
查看次数

Windows Subsystem for Linux 桌面快捷方式到 GUI

我有一个名为lock-screen-timer的 bash 脚本,它调用yad挂载一个 GUI 对话框。在 Windows 10 和适用于 Linux 的 Windows 子系统 (WSL) 下,我可以从 bash 提示符运行它(注意必须先安装 VcXsrv)。我不知道如何在 Windows 10 中创建一个有效的桌面快捷方式。我可以在 Windows 10 桌面上创建快捷方式 OK...

锁屏定时器快捷方式

...当我点击它时它不会运行。我看了很多网站都没有运气。

gui bash shortcuts windows-subsystem-for-linux yad

4
推荐指数
1
解决办法
9838
查看次数

测试 yad 版本是否 >= 特定版本号

我需要一个脚本来检查yad(和其他程序)版本号是否 >= 特定数字。例如我有:

$ yad --version
0.40.0 (GTK+ 3.24.8)

$ gedit --version
gedit - Version 3.32.0

$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2019 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)
  • Ubuntu 16.04 和 19.04 之间添加了新功能
  • 对于gedit,新版本中失去了传递窗口几何形状的能力
  • bash使测试变得复杂,因为版本号位于第一行的中间。

并非所有程序(如 bash)都存在环境变量:

$ echo $BASH_VERSION
5.0.3(1)-release
Run Code Online (Sandbox Code Playgroud)

versions bash version-control yad

4
推荐指数
1
解决办法
1061
查看次数

在 gnome-terminal 中启动命令,然后关闭 gnome-terminal 而不结束执行的命令?

我有一个半古怪的东西我正在摆弄。我正在寻找一种方法,可以更轻松地将 MPV(视频播放器)启动到视频链接。MPV 的默认行为是mpv https://url.of.video在终端中启动,或将 URL 拖放到 MPV 窗口。我不认为这个犹太洁食者是一个以键盘为中心的人。相反,我想启动一个弹出框,粘贴 URL,按 Enter,然后让 MPV 将视频启动到该 URL。这样我就可以将此命令绑定到键盘快捷键,使整个过程变得非常简单。我有这个完整的,但有一个小剪纸 - gnome-terminal 窗口悬而未决。这是一个简单的单线:

URL=$(yad --entry) && gnome-terminal -- bash -c "mpv $URL"
Run Code Online (Sandbox Code Playgroud)

如果我启动该命令,由于 YAD,我会收到一个弹出框。此时,我粘贴 URL,按 Enter,然后在 1-2 秒内打开该视频的 MPV 窗口。惊人的。正是我想要的。

我提到的剪纸是 gnome-terminal 保持运行的事实。不是什么大问题,但我想弄清楚上面的这个命令是否有办法启动 gnome-terminal,调用 MPV,附加变量(URL),然后让 gnome-terminal 在不结束视频的情况下自行关闭溪流。

好奇是否有人有任何想法。非常感谢!

command-line bash gnome-terminal yad

2
推荐指数
1
解决办法
1002
查看次数

要打开的文件类型和默认 Ubuntu 应用程序列表

我正在编写一个不起眼的文件管理器,正在寻找不同文件类型的列表以及 Ubuntu 用来打开它们的默认应用程序。

到目前为止,我只知道用gedit.打开“文本” ,用eog(侏儒之眼)打开“图像”,用ogg123. 我不确定是否ogg123是默认应用程序。

我很感激在下面的代码中扩展列表的一些帮助:

function OpenFileWithMagic () {

local FileType
FileType=$(file -i "$DfName/$2" | grep -oP '(?<=: ).*?(?=/)')
logger "bafman - OpenFileWithMagic - FileType: $FileType DfName: - $DfName parm 1: $1 2: $2 3: $3 4: $4"

case $FileType in

text)
    # TODO: expand list of file types and associated applications to open them with
    if [[ $4 == root ]]; then
        gsu gedit $DfName/$2
    else
        gedit $DfName/$2
    fi …
Run Code Online (Sandbox Code Playgroud)

bash files mime-type default-programs yad

1
推荐指数
1
解决办法
1109
查看次数