如何添加包含 .desktop 文件的文件夹?

Seb*_*tro 3 gnome command-line launcher appmenu

我知道如果你想添加一个 .desktop 条目,它必须被添加/usr/share/applications到 .

如果我运行 update-desktop-database,您可以看到 snapd 或 flatpak 等程序创建了自己的目录,在其中托管 .desktop

The databases in [/usr/share/ubuntu/applications, /home/cactus/.local/share/flatpak/exports/share/applications, /var/lib/flatpak/exports/share/applications, /usr/local/share/applications, /usr/share/applications, /var/lib/snapd/desktop/applications] could not be updated.
Run Code Online (Sandbox Code Playgroud)

我的想法是添加一个文件夹/opt/applications,我可以在其中保存我自己编译的应用程序的 .desktop。

ste*_*ver 9

根据 GNOME Desktop System Administration Guide Customizing Menus : Desktop Entry Files

桌面条目文件必须位于该$XDG_DATA_DIRS/applications 目录中,并且必须具有 .desktop 文件扩展名。如果 未设置$XDG_DATA_DIRS 1,则使用默认路径/usr/share。这也意味着用户特定的桌面条目可能位于 $XDG_DATA_HOME/applications首先搜索的位置。如果$XDG_DATA_HOME 未设置,则使用默认路径~/.local/share。从$XDG_DATA_DIRS 环境变量中的所有目录收集桌面条目。$XDG_DATA_DIRS 当有多个同名的 .desktop 文件时,首先出现的目录优先。

1 $XDG_DATA_DIRSXDG 基本目录规范中定义的环境变量。

因此,如果$XDG_DATA_HOME没有另外说明,您可以将每个用户的 .desktop 文件放在~/.local/share/applications. 如果你想要一个系统范围的自定义位置,你应该能够将它添加到$XDG_DATA_DIRSex.

XDG_DATA_DIRS=/opt:$XDG_DATA_DIRS
Run Code Online (Sandbox Code Playgroud)

另请参阅XDG 基本目录规范


Nma*_*ath 5

您可以~/.local/share/applications在用户的主文件夹下使用以保留.desktop您希望仅供该用户使用的文件。