Nix 桌面文件

Nix 桌面文件

当我使用 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 安装的应用程序。

欲了解更多信息,https://nixos.org/wiki/KDE#Using_KDE_outside_NixOS

答案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/}"

附言:抱歉,评论声誉太低,因此有新的答案。

相关内容