如何从命令行向 Gnome“应用程序”菜单添加菜单项?

如何从命令行向 Gnome“应用程序”菜单添加菜单项?

我正在使用 Ubuntu 9.10,我想自动在 Ubuntu“应用程序”菜单中添加一些菜单项。

我知道我可以使用 alacarte 进行一次性添加,但我希望自动(通过 Perl 或 Bash)向此菜单添加许多菜单项。

有任何想法吗?

答案1

以下是链接用于在 GNOME 菜单中创建条目的 shell 脚本

帖子摘录:

我在 Ubuntu 论坛上经常看到有人问这个问题。本页将教您如何操作。作为用户,您可以通过右键单击左上角的菜单图标并选择“编辑菜单”来创建自己的菜单项。这将打开一个 GUI,您可以选择在哪个部分安装菜单项。我们想通过 shell 脚本创建一个。

所有菜单项都存储在 /usr/share/applications 文件夹中。该文件夹中每个菜单项都有一个 .desktop 文件。让我们来看看这些 .desktop 文件吧?

以下是 .desktop 文件内容的示例: 以下代码的作用是在 Gnome 菜单的编程部分中创建一个名为 Kompozer 的菜单项。

答案2

需要注意的是,alacarte 不会将您添加的项目放入 中/usr/share/applications。它会将它们添加到您的主目录中。因此,如果您不是想要为每个用户(仅限当前用户)创建条目,您需要进行以下更改。

以下是通过 alacarte 添加的测试条目以及创建的结果文件。

(1)地方应用程序菜单文件已更新。请注意该<Filename>条目。

# cat /home/user/.config/menus/applications.menu 
<!DOCTYPE Menu
 PUBLIC '-//freedesktop//DTD Menu 1.0//EN'
 'http://standards.freedesktop.org/menu-spec/menu-1.0.dtd'>
<Menu>
<Name>Applications</Name>
<MergeFile type="parent">/etc/xdg/menus/applications.menu</MergeFile>
<Menu>
<Name>Internet</Name>
<Include>
<Filename>alacarte-made.desktop</Filename>
</Include>
</Menu>
</Menu>

(2)alacarte-made.desktop文件在 中创建~/.local/share/applications

# ls -ltr ~/.local/share/applications/
-rw------- 1 user user  495 2010-04-14 15:48 Nokia-QtCreator.desktop
-rw------- 1 user user  403 2010-04-14 15:48 defaults.list
-rw-r--r-- 1 user user  134 2010-12-20 10:33 userapp-gvim-JYONNV.desktop
-rw-r--r-- 1 user user  321 2010-12-20 10:33 mimeinfo.cache
-rw-r--r-- 1 user user  165 2010-12-20 10:33 mimeapps.list
drwx------ 9 user user 4096 2011-05-26 15:34 ..
-rw------- 1 user user  108 2011-05-26 15:34 installjammer-program.desktop
-rw------- 1 user user  182 2011-05-26 15:34 installjammer-help.desktop
-rw------- 1 user user  201 2011-05-26 15:34 installjammer-userguide.desktop
-rw------- 1 user user  114 2011-05-26 15:34 installjammer-uninstall.desktop
-rwxr-xr-x 1 user user  202 2011-06-10 09:27 alacarte-made.desktop
-rw-r--r-- 1 user user  202 2011-06-10 09:28 alacarte-made.desktop.undo-0
drwxr-xr-x 2 user user 4096 2011-06-10 09:28 .

(3)如果你查看内容,你alacarte-made.desktop会看到添加到我的菜单中的“测试”条目。

# cat ~/.local/share/applications/alacarte-made.desktop
#!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=gnome-panel-launcher
Name[en_US]=test
Exec=secretsync
Name=test
Icon=gnome-panel-launcher

我不确定修改applications.menu上述 1 中的文件的最佳方法。这显然是一个特殊格式的文件,我不知道是否有可用于从脚本或命令行进行输入的实用程序。

答案3

这里的其他一些答案的路径不正确(至少在我的 Ubuntu 10.10 系统上不存在)或仅涉及系统级菜单。Gnome 用户级菜单存储在您的 $XDG_CONFIG_HOME/menus 目录(默认情况下为 ~/.config/menus/)和 $XDG_DATA_HOME/applications 目录(默认情况下为 ~/.local/share/applications)中。您可以手动编辑这些文件。请参阅此Ubunto 论坛主题了解一些细节;特别是桌面菜单规范讲述有关文件及其格式的更多信息。

答案4

除了 Sathya 提供的链接之外,这还展示了如何自动向应用程序菜单添加其他菜单:

http://wiki.matusov.sk/howto/gnome-menu-edit

相关内容