在 NixOS 中,services.xserver.desktopManager.xfce.extraSessionCommands
描述“在 XFCE 启动之前执行的 Shell 命令”。那么 shell 命令对吗?后XFCE启动了吗?
也就是说,我想在我的configuration.nix
文件中保留我通常放入.xinitrc
.这可能吗?
答案1
您应该能够将通常放入 xinitrc 的大部分应用程序也放入services.xserver.desktopManager.xfce.extraSessionCommands
重要的环境变量中,例如设置$DISPLAY
和。$DBUS_SESSION_BUS_ADDRESS
事实上,在大多数 xinitrc 中,窗口管理器作为最后一个进程启动。
这是一个如何实现的片段,extraSessionCommands
摘自xfce.nix:
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=$!
'';
}];