NixOSでは、services.xserver.desktopManager.xfce.extraSessionCommands
は「XFCEが開始される直前に実行されるシェルコマンド」を表します。シェルコマンドについてはどうですか後 XFCEが開始されましたか?
つまり、通常はconfiguration.nix
に入れるものを.xinitrc
ファイルに保持したいと思います。これは可能ですか?
services.xserver.desktopManager.xfce.extraSessionCommands
や$DISPLAY
などの重要な環境変数が設定されているため、通常xinitrcに配置するアプリケーションのほとんどを$DBUS_SESSION_BUS_ADDRESS
にも配置できるはずです。実際、ほとんどのxinitrcは、最後のプロセスとしてウィンドウマネージャーを起動します。
xfce.nix から取得したextraSessionCommands
の実装方法の抜粋を次に示します。
services.xserver.desktopManager.session = [{
name = "xfce";
bgSupport = true;
start = ''
${cfg.extraSessionCommands}
# Set GTK_PATH so that GTK+ can find the theme engines.
export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0"
# Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.
export GTK_DATA_PREFIX=${config.system.path}
${pkgs.runtimeShell} ${pkgs.xfce.xinitrc} &
waitPID=$!
'';
}];