我如何使我的 .desktop 应用程序全球化?

我如何使我的 .desktop 应用程序全球化?

我有一个.desktop运行 shell 脚本的应用程序,当双击该应用程序时,这个 shell 脚本会运行一个 python 代码,我希望能够从我的笔记本电脑上的所有目录启动它,并且即使图像、图标或应用程序的目录发生了变化,也能保持图标的稳定!

我怎样才能使我的应用程序全球化?

答案1

从 Zany_Zachary 的回答中可以看出, 中的启动器/usr/share/applications可供所有用户使用。 下的启动器~/.local/share/applications仅供当前用户使用。 当启动器位于这些位置时,它将被您的桌面菜单或启动器拾取。 该位置/usr/share/applications是操作系统的软件管理系统 APT 正在使用的目录,因此,尽管它可以工作,但您不应将自定义文件放在.desktop那里。 相反,使用文件夹/usr/local/share/applications。该文件夹在 Ubuntu 上默认不存在,因此您可能需要先创建它。

这就是标题中的“全局”最容易理解的方式。但是,在您的问题中,您建议在“全局”下您还理解“可移植”的含义,即即使图标或应用程序更改位置,它也应该继续工作。不过,您必须遵守操作系统的惯例来放置图标或可执行文件。因此,不存在无论.desktop您将图标或可执行文件放在哪里都可以继续工作的“全局”启动器。

这种“可移植性”存在限制。首先,图标或可执行文件的名称不能更改,因为名称在文件中是硬编码的.desktop。但是,您可以从文件中省略路径.desktop,但您必须将图标和可执行文件放在操作系统搜索的特定位置。

图标

图标定义在.desktop文件中就行了Icon=

如果你只提供图标的名称(不带扩展名),则操作系统将搜索 ~/.icons首先搜索和~/.local/share/icons,然后搜索系统范围内的图标目录(主要是/usr/share/icons和)/usr/local/share/icons。菜单系统将拾取这些文件夹中带有或.png扩展名的图形文件.svg。如果未找到相应的图形文件,系统将恢复为默认的后备图标。

应用程序

.desktop可执行文件在该行文件中定义Exec=

此外,如果没有提供完整文件路径,系统将在预定义路径中搜索具有匹配名称的可执行文件。您可以使用该命令查看文件夹及其搜索顺序echo $PATH

答案2

问候!

要使您的 .desktop 文件全局化,只需:

将其放入/usr/share/applications

仅限一个帐户,将其放入/home/$USER/.local/share/applications


不幸的是,当图像文件移动时,您无法使图标保持不变。我建议创建一个包含应用程序图标的文件夹。将此文件夹放在 中/usr/share

相关内容