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