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