i3 & xfce modules: add extraSessionCommands for WM-specific user-defined xsession lines

Could be extended to other window managers/desktops as well
This commit is contained in:
obadz 2016-06-19 23:50:14 +01:00
parent 6e0b40af60
commit 0243ccfbff
2 changed files with 19 additions and 0 deletions

View File

@ -33,6 +33,14 @@ in
default = false;
description = "Don't install XFCE desktop components (xfdesktop, panel and notification daemon).";
};
extraSessionCommands = mkOption {
default = "";
type = types.lines;
description = ''
Shell commands executed just before XFCE is started.
'';
};
};
};
@ -45,6 +53,8 @@ in
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"

View File

@ -15,12 +15,21 @@ let
If left at the default value, $HOME/.i3/config will be used.
'';
};
extraSessionCommands = mkOption {
default = "";
type = types.lines;
description = ''
Shell commands executed just before i3 is started.
'';
};
};
i3config = name: pkg: cfg: {
services.xserver.windowManager.session = [{
inherit name;
start = ''
${cfg.extraSessionCommands}
${pkg}/bin/i3 ${optionalString (cfg.configFile != null)
"-c \"${cfg.configFile}\""
} &