diff options
Diffstat (limited to 'nixpkgs/nixos/modules/services/x11/window-managers/default.nix')
-rw-r--r-- | nixpkgs/nixos/modules/services/x11/window-managers/default.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/services/x11/window-managers/default.nix b/nixpkgs/nixos/modules/services/x11/window-managers/default.nix new file mode 100644 index 000000000000..06c59342b45a --- /dev/null +++ b/nixpkgs/nixos/modules/services/x11/window-managers/default.nix @@ -0,0 +1,78 @@ +{ config, lib, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager; +in + +{ + imports = [ + ./2bwm.nix + ./afterstep.nix + ./bspwm.nix + ./dwm.nix + ./evilwm.nix + ./exwm.nix + ./fluxbox.nix + ./fvwm.nix + ./herbstluftwm.nix + ./i3.nix + ./jwm.nix + ./metacity.nix + ./mwm.nix + ./openbox.nix + ./pekwm.nix + ./notion.nix + ./ratpoison.nix + ./sawfish.nix + ./stumpwm.nix + ./spectrwm.nix + ./twm.nix + ./windowmaker.nix + ./wmii.nix + ./xmonad.nix + ./qtile.nix + ./none.nix ]; + + options = { + + services.xserver.windowManager = { + + session = mkOption { + internal = true; + default = []; + example = [{ + name = "wmii"; + start = "..."; + }]; + description = '' + Internal option used to add some common line to window manager + scripts before forwarding the value to the + <varname>displayManager</varname>. + ''; + apply = map (d: d // { + manage = "window"; + }); + }; + + default = mkOption { + type = types.str; + default = "none"; + example = "wmii"; + description = "Default window manager loaded if none have been chosen."; + apply = defaultWM: + if any (w: w.name == defaultWM) cfg.session then + defaultWM + else + throw "Default window manager (${defaultWM}) not found."; + }; + + }; + + }; + + config = { + services.xserver.displayManager.session = cfg.session; + }; +} |