1{ config, lib, pkgs, ... }: 2 3with lib; 4 5let 6 7 cfg = config.services.xserver.windowManager.dwm; 8 9in 10 11{ 12 13 ###### interface 14 15 options = { 16 services.xserver.windowManager.dwm = { 17 enable = mkEnableOption (lib.mdDoc "dwm"); 18 package = mkOption { 19 type = types.package; 20 default = pkgs.dwm; 21 defaultText = literalExpression "pkgs.dwm"; 22 example = literalExpression '' 23 pkgs.dwm.overrideAttrs (oldAttrs: rec { 24 patches = [ 25 (super.fetchpatch { 26 url = "https://dwm.suckless.org/patches/steam/dwm-steam-6.2.diff"; 27 sha256 = "1ld1z3fh6p5f8gr62zknx3axsinraayzxw3rz1qwg73mx2zk5y1f"; 28 }) 29 ]; 30 }) 31 ''; 32 description = lib.mdDoc '' 33 dwm package to use. 34 ''; 35 }; 36 }; 37 }; 38 39 40 ###### implementation 41 42 config = mkIf cfg.enable { 43 44 services.xserver.windowManager.session = singleton 45 { name = "dwm"; 46 start = 47 '' 48 dwm & 49 waitPID=$! 50 ''; 51 }; 52 53 environment.systemPackages = [ cfg.package ]; 54 55 }; 56 57}