我遇到以下情况:我必须修改一个 .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)图标:在我看来,如果我在我的包的 / usr / share / pixmaps 文件夹中放入一个名为myApplication.png的图标,那么在我看来这些文档,它使用这个图标,是不是?
2)执行:阅读一些文档,在我看来,此字段指定单击我的图标时执行的文件的路径,是不是?但在这种情况下执行什么文件? /usr/share/MyApplication/appl/launcher.sh 或 /usr/share/MyApplication/appl/lib/shellExtBridge.jar -checkupgrade 。
我认为第一个文件已执行,但第二个Exec语句中文件的功能是什么?
一般来说,.desktop文件的功能是什么?在我看来,它只是将我的应用程序图标添加到Unity工具栏以启动我的应用程序点击它。这是正确的,还是.desktop文件还有其他功能?
答案 0 :(得分:1)
.desktop
文件是指向可执行文件的快捷方式,并为该特定快捷方式添加图标。
您是否注意到/user/share/applications
中的所有.desktop文件都收集了所有快捷方式。你可以从中获得灵感。
取决于您将.desktop文件指向哪个图标。 (我不确定这个,但图标也可以存储在/usr/share/icons
)
是的,这是对的。 Exec字段指定应该执行的文件。这是您应该查看的[desktop entry]
,因此它是执行的/usr/share/MyApplication/appl/launcher.sh
文件
正如我所看到的,它将为您的快捷方式提供一个图标,一个名称,它将指向/usr/share/MyApplication/appl/launcher.sh
文件的快捷方式。 StartupWMClass
属性将使您的应用程序实际上不会创建一个新的打开的应用程序图标,而是会点亮您已创建的快捷方式。
check out this for more info about that
创建了Category属性Categories=Utility;
,以便gnome2,gnome-fallback,xfce和MATE桌面环境可以将快捷方式放在正确的位置(因为它们有菜单)。
我无法分辨桌面文件中的最后4行是什么,但我认为它们是在您运行应用更新程序时执行的。以便您的Java应用程序更新自己。或者,当您右键单击unity启动器中的图标时,它将创建一个更新条目,以便您可以通过小的右键菜单更新它(但我不知道)
我不确定这一切,如果我错了,请纠正我。但有些信息总比没有好。)