3

我有以下情况:我必须修改我正在使用的应用程序包中的.desktop文件。

当我尝试打开文件的内容时,我遇到了一个奇怪的问题。如果我点击它,然后我尝试点击“打开”,它会给我一条错误消息,意思是英文:“LAUNCHER OF APPLICATIONS UNRELIABLE”

对我来说,打开 .desktop 文件的唯一方法是运行以下 shell 命令:

sudo gedit myApplication.desktop

为什么会这样?为什么我尝试正常打开 .desktop 文件时会出现错误消息?

.desktop 文件的内容是:

[Desktop Entry]
Icon=myApplication
Categories=Utility;
Type=Application
Exec=/usr/share/MyApplication/appl/launcher.sh
Name[en_US]=Connect Data Space
Name=My Application Name
Comment[en_US]=
Comment=
StartupNotify=true
Terminal=false
OnlyShowIn=GNOME;Unity;
StartupWMClass=MyApplication
Actions=CheckUpgrade

[Desktop Action CheckUpgrade]
Name=Verifica Aggiornamenti
Exec=java -jar /usr/share/MyApplication/appl/lib/shellExtBridge.jar -checkupgrade
OnlyShowIn=GNOME;Unity;

现在我对此有一些疑问:

1)图标:阅读一些文档在我看来,如果我将一个名为 myApplication.png 的图标放在我的包的文件夹/usr/share/pixmaps中,它会使用这个图标,对吗?

2)执行:阅读一些文档,在我看来,该字段指定了单击我的图标时执行的文件的路径,对吗?但在这种情况下,执行的是什么文件?/usr/share/MyApplication/appl/launcher.sh/usr/share/MyApplication/appl/lib/shellExtBridge.jar -checkupgrade

我认为第一个文件已执行,但是第二个 Exec 语句中文件的功能是什么?

一般来说,.desktop 文件的功能是什么?在我看来,它只是将我的应用程序图标添加到 Unity 工具栏以启动我的应用程序单击它。是这样吗,还是 .desktop 文件有其他功能?

4

1 回答 1

1

.desktop文件是指向可执行文件的快捷方式,并向该特定快捷方式添加图标。

你有没有注意到所有的 .desktop 文件在/user/share/applications它那里所有的快捷方式都被收集了。你可能会从那里得到一些启发。

  1. 这取决于您将 .desktop 文件指向哪个图标。(我不确定这个,但图标也可以存储在/usr/share/icons

  2. 是的,它是正确的。Exec 字段指定应该执行的文件。这是[desktop entry]你应该看的,所以它/usr/share/MyApplication/appl/launcher.sh是执行的文件

  3. 正如我所看到的,它将为您的快捷方式提供一个图标、一个名称,并将快捷方式指向该/usr/share/MyApplication/appl/launcher.sh文件。该StartupWMClass属性将使您的应用程序实际上不会统一创建一个新的打开应用程序图标,而是会点亮您已经创建的快捷方式。 查看此以获取有关此的更多信息

    Category 属性Categories=Utility;是为了让 gnome2、gnome-fallback、xfce 和 MATE 桌面环境可以将快捷方式放置在正确的位置(因为它们有菜单)。

    我不知道桌面文件中的最后 4 行是做什么的,但我认为它们是在您运行应用更新程序时执行的。以便您的 java 应用程序自行更新。或者当您右键单击统一启动器中的图标时它将创建一个更新条目,以便您可以通过小右键单击菜单更新它(但我不知道)

我不确定这一切,如果我错了,请纠正我。但是有些信息总比没有好:)

于 2013-11-14T19:59:32.940 回答