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