web-dev-qa-db-ja.com

NixOSでXFCEスタートアップコマンドを設定する

NixOSでは、services.xserver.desktopManager.xfce.extraSessionCommandsは「XFCEが開始される直前に実行されるシェルコマンド」を表します。シェルコマンドについてはどうですか XFCEが開始されましたか?

つまり、通常はconfiguration.nixに入れるものを.xinitrcファイルに保持したいと思います。これは可能ですか?

3
Matthew Piziak

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=$!
  '';
}];
2
Mic92