如何让新的 *.desktop 文件显示在启动器中?

如何让新的 *.desktop 文件显示在启动器中?

我已经尝试过这个问题的其他答案,但没有成功。我使用的是 Ubuntu 16.04。我只是想为 Terminator 创建一些自定义操作,但我决定回到基础,看看是否能让某些东西发挥作用。以下是我尝试过的:

  1. 复制并粘贴示例桌面条目文件https://standards.freedesktop.org/desktop-entry-spec/latest/apa.html进入名为$HOME/foo.desktop
  2. 跑了desktop-file-validate $HOME/foo.desktop。没有输出。
  3. desktop-file-install --dir=$HOME/.local/share/applications $HOME/foo.desktop
  4. chmod 755 $HOME/.local/share/applications/foo.desktop
  5. 已退出并重新登录。

新启动器没有出现。我遗漏了什么?是否有一些日志可以解释为什么桌面文件没有出现?

答案1

这是示例桌面条目文件:

[Desktop Entry]
Version=1.0
Type=Application
Name=Foo Viewer
Comment=The best viewer for Foo objects available!
TryExec=fooview
Exec=fooview %F
Icon=fooview
MimeType=image/x-foo;
Actions=Gallery;Create;

[Desktop Action Gallery]
Exec=fooview --gallery
Name=Browse Gallery

[Desktop Action Create]
Exec=fooview --create-new
Name=Create a new Foo!
Icon=fooview-new

https://specifications.freedesktop.org/desktop-entry-spec/latest/apa.html

注意TryExec=fooview字段。以下是桌面入门标准说:

TryExec

磁盘上可执行文件的路径,用于确定程序是否实际安装。如果路径不是绝对路径,则在 $PATH 环境变量中查找该文件。如果文件不存在或不可执行,则可能会忽略该条目(例如,不在菜单中使用)。

我们注意到这fooview不是绝对路径,因此让我们看看它是否在$PATH

$ type -P fooview
$ type -a fooview
bash: type: fooview: not found

以下是另一种测试方法:

$ gtk-launch foo.desktop
gtk-launch: no such application foo.desktop

与例如进行比较gtk-launch eog.desktop

由于没有fooview可执行文件,这意味着“该条目可能会被忽略(例如,不能在菜单中使用)”,这就是为什么 Unity 没有在菜单中显示它的原因;它认为该应用程序尚未安装。

要修复此问题,您必须将TryExec密钥替换为绝对路径或某处的可执行文件$PATH

有关的:

相关内容