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}