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/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/}"
PS:すみません。コメント評判が低すぎて新しい回答になりました。