1{ config, lib, ... }:
2
3let
4 inherit (lib) mkOption types;
5 cfg = config.services.xserver.windowManager;
6in
7
8{
9 imports = [
10 ./2bwm.nix
11 ./afterstep.nix
12 ./berry.nix
13 ./bspwm.nix
14 ./cwm.nix
15 ./clfswm.nix
16 ./dk.nix
17 ./dwm.nix
18 ./e16.nix
19 ./evilwm.nix
20 ./exwm.nix
21 ./fluxbox.nix
22 ./fvwm2.nix
23 ./fvwm3.nix
24 ./hackedbox.nix
25 ./herbstluftwm.nix
26 ./hypr.nix
27 ./i3.nix
28 ./jwm.nix
29 ./leftwm.nix
30 ./lwm.nix
31 ./metacity.nix
32 ./mlvwm.nix
33 ./mwm.nix
34 ./openbox.nix
35 ./pekwm.nix
36 ./notion.nix
37 ./ragnarwm.nix
38 ./ratpoison.nix
39 ./sawfish.nix
40 ./smallwm.nix
41 ./stumpwm.nix
42 ./spectrwm.nix
43 ./tinywm.nix
44 ./twm.nix
45 ./windowmaker.nix
46 ./wmderland.nix
47 ./wmii.nix
48 ./xmonad.nix
49 ./yeahwm.nix
50 ./qtile.nix
51 ./none.nix
52 ];
53
54 options = {
55
56 services.xserver.windowManager = {
57
58 session = mkOption {
59 internal = true;
60 default = [ ];
61 example = [
62 {
63 name = "wmii";
64 start = "...";
65 }
66 ];
67 description = ''
68 Internal option used to add some common line to window manager
69 scripts before forwarding the value to the
70 `displayManager`.
71 '';
72 apply = map (
73 d:
74 d
75 // {
76 manage = "window";
77 }
78 );
79 };
80
81 };
82
83 };
84
85 config = {
86 services.xserver.displayManager.session = cfg.session;
87 };
88}