1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8with lib;
9
10let
11 cfg = config.services.xserver.windowManager.fvwm2;
12 fvwm2 = pkgs.fvwm2.override { enableGestures = cfg.gestures; };
13in
14
15{
16
17 imports = [
18 (mkRenamedOptionModule
19 [ "services" "xserver" "windowManager" "fvwm" ]
20 [ "services" "xserver" "windowManager" "fvwm2" ]
21 )
22 ];
23
24 ###### interface
25
26 options = {
27 services.xserver.windowManager.fvwm2 = {
28 enable = mkEnableOption "Fvwm2 window manager";
29
30 gestures = mkOption {
31 default = false;
32 type = types.bool;
33 description = "Whether or not to enable libstroke for gesture support";
34 };
35 };
36 };
37
38 ###### implementation
39
40 config = mkIf cfg.enable {
41 services.xserver.windowManager.session = singleton {
42 name = "fvwm2";
43 start = ''
44 ${fvwm2}/bin/fvwm &
45 waitPID=$!
46 '';
47 };
48
49 environment.systemPackages = [ fvwm2 ];
50 };
51}