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}