我知道如果您想添加 .desktop 条目,就必须将其添加到 中/usr/share/applications
,但是,我想要的是添加一个可以托管 .desktop 文件的额外文件夹。
如果我运行 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.
我的想法是添加一个文件夹/opt/applications
,在其中可以保存我自己编译的应用程序的.desktop。
答案1
桌面条目文件必须位于
$XDG_DATA_DIRS/applications
目录中,并且必须具有 .desktop 文件扩展名。如果 未设置$XDG_DATA_DIRS
1/usr/share
,则使用默认路径。这也意味着用户特定的桌面条目可能位于$XDG_DATA_HOME/applications
首先搜索的位置。如果$XDG_DATA_HOME
未设置,则~/.local/share
使用默认路径。桌面条目从环境变量中的所有目录中收集$XDG_DATA_DIRS
。当有多个同名的 .desktop 文件时,首先出现的目录$XDG_DATA_DIRS
优先。1
$XDG_DATA_DIRS
是在XDG 基础目录规范。
因此,如果$XDG_DATA_HOME
没有其他说明,您可以将每个用户的 .desktop 文件放在 中~/.local/share/applications
。如果您想要一个系统范围的自定义位置,您应该能够将其添加到$XDG_DATA_DIRS
ex。
XDG_DATA_DIRS=/opt:$XDG_DATA_DIRS
也可以看看XDG 基础目录规范
答案2
您可以~/.local/share/applications
在用户的主文件夹下使用,以保存.desktop
仅供该用户使用的文件。
答案3
这不是对您的实际问题的基本答案(即如何将您的自定义目录添加到主机 .desktop 启动器),但我建议您可以使用/usr/local/share/applications
应该在系统范围内可用的自编译应用程序的启动器。
这个目录在 Ubuntu 中是默认配置的XDG_DATA_DIRS
,它的用途正是您所寻找的,即让您手动安装的.desktop
文件在任何用户的菜单系统中可用。