使用 zenity 命令添加 unity quicklist 启动器

使用 zenity 命令添加 unity quicklist 启动器

我尝试为 gedit 添加一个快速列表启动器,这样我就可以直接从 unity dash 在 gedit 中打开一个新文档

所以我尝试将此命令添加到我的 OpenDoc 快捷方式组

[OpenDoc Shortcut Group]
Name=Open file...
Exec=gedit $(zenity --file-selection)
TargetEnvironment=unity

但是当我单击快速列表启动器时什么也没有发生......

也许有人知道该由谁来做这件事?

此致

答案1

好的,最终我找到了一个很好的解决方案。

正如我之前在评论中所说,更好的解决方案是使用带有 Ayatana 快捷方式的脚本。这是 gedit 的 Quicklist 启动器的示例。使用它,您可以在 gedit 中打开文件,也可以在 gedit 中以 root 身份打开文件

我在 gedit.desktop 文件中添加的部分:

X-Ayatana-Desktop-Shortcuts=OpenDoc;OpenDocRoot;

[OpenDoc Shortcut Group]
Name=Open file...
Exec=/path/to/the/script normal-mode
TargetEnvironment=Unity

[OpenDocRoot Shortcut Group]
Name=Open file as root...
Exec=/path/to/the/script root-mode
TargetEnvironment=Unity

使用脚本可以更轻松地测试我们想要的内容,并使用快速列表快捷方式执行一些复杂的事情。

现在这是脚本 /path/to/the/script 的代码(我个人在 ~/.local/applications/ 文件夹中创建一个脚本文件夹并在其中创建脚本 geditshortcut)

#!/bash/bin

case $1 in
normal-mode) gedit $(zenity --title='Open file...' --file-selection);;
root-mode) gksudo -u root -m "Running Gedit as user root allow you to modify some essential files of your system" "bash -c 'gedit \$(zenity --title=\'Open file as user root...\' --file-selection)'";;
esac

现在将 gedit.desktop 文件拖放到启动栏或 Unity 并享受它;)

就这些了各位!!

答案2

根据评论中的解决方案,您可以编写一个更通用的脚本:

#!/bin/bash
$1 $($2)

它会使用另一个参数的输出调用第一个参数,因此您可以 Exec=path/to/my/script gedit "zenity --file-selection"仍然是一种解决方法,但在其他情况下更容易重用。

相关内容