Nixデスクトップファイル

Nixデスクトップファイル

nixを使用してGUIアプリケーションをインストールすると、次のディレクトリにデスクトップ~/.nix-profileファイルが終了することがわかります。

~/.nix-profile/share/applications/firefox.desktop

しかし、私のデスクトップでは、これらのファイルが/user/share/applicationsデスクトップアイコンを生成できるようにしたいと思います。

/user/share/applications手動でこれを行う必要がないように、nixにデスクトップファイルをシンボリックリンクするように指示する方法はありますか?

ありがとう

答え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したがって、デスクトップはWindowsとWindowsの両方でアプリケーションを見つけ、~/.nix-profile/share/applicationsNixを介してインストールされたアプリケーションに優先順位を付けます。

詳しくは、https://nixos.org/wiki/KDE#Using_KDE_outside_NixOS

答え2

$XDG_DATA_DIRS修正後、.profileUbuntu 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/}"

PS:すみません。コメント評判が低すぎて新しい回答になりました。

関連情報