桌面Linux发行版中.desktop文件的function是什么?

我有以下情况:我必须修改一个.desktop文件,该文件放入我正在工作的应用程序的包中。

当我尝试打开文件的内容时,出现了一个奇怪的问题。 如果我点击它,然后我尝试点击“打开”它给我一个错误消息,这意味着在英文: “应用程序的发射器不可靠”

打开.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) 执行 :阅读一些文档,在我看来,这个字段指定了当我的图标被点击时执行的文件的path ,是不是? 但在这种情况下,什么文件被执行? /usr/share/MyApplication/appl/launcher.sh/usr/share/MyApplication/appl/lib/shellExtBridge.jar -checkupgrade

我认为第一个文件被执行,但是在第二个Exec语句中文件的function是什么?

一般来说,.desktop文件的function是什么? 在我看来,它只是把我的应用程序图标添加到Unity工具栏来启动我的应用程序点击它。 这是正确的,还是有.desktop文件的附加function?

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

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

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

  2. 是的这是对的。 执行字段指定应该执行哪个文件。 这是你应该看的[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应用程序更新自己。 或者它会创建一个更新条目,当你右键单击统一启动器中的图标,以便您可以通过小右键菜单(但我不知道)更新它,

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