当我使用 nix 安装 GUI 应用程序时,我看到桌面文件在~/.nix-profile
目录中结束,例如:
~/.nix-profile/share/applications/firefox.desktop
但是,我的桌面希望这些文件位于其中,/user/share/applications
以便能够为它们创建桌面图标。
有没有什么方法可以告诉 nix 将桌面文件符号链接到/user/share/applications
这样我就不必手动执行此操作?
谢谢
答案1
假设您使用的是 NixOS 以外的发行版,那么您可以预期您的桌面环境会/usr/share/applications
在~/.nix-profile/share/applications
.
与其创建符号链接,/usr/share/applications
不如告诉您桌面在哪里查看。您应该可以通过将以下内容添加到您的~/.profile
:
export XDG_DATA_DIRS=$HOME/.nix-profile/share:$HOME/.share:"${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}"
因此,您的桌面将同时查找/usr/share/applications
和中的应用程序~/.nix-profile/share/applications
,并优先考虑通过 Nix 安装的应用程序。
答案2
$XDG_DATA_DIRS
修改后.profile
,我无法使用Ubuntu Gnome 16.10登录。
相反,我用符号链接解决了它。下面的命令查找 中的所有链接.nix-profile/share/applications
并将它们链接到.local/share/applications
.替换teodorlu
为您的用户名。
find ~/nix-profile/share/applications -type l -exec ln -s /home/teodorlu/{} ~/.local/share/applications \;
答案3
由于当前的最佳答案不能满足许多系统,包括我的 archcraft 系统,因此这是我的变体:etc/profile.d/nix-xdg-data-dirs.sh
使用内容创建:
export XDG_DATA_DIRS=${HOME}/.nix-profile/share:${HOME}/.share:"${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}"
附言:抱歉,评论声誉太低,因此有新的答案。