1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 inherit (lib)
10 mkEnableOption
11 mkIf
12 mkPackageOption
13 singleton
14 ;
15 cfg = config.services.xserver.windowManager.katriawm;
16in
17{
18 ###### interface
19 options = {
20 services.xserver.windowManager.katriawm = {
21 enable = mkEnableOption "katriawm";
22 package = mkPackageOption pkgs "katriawm" { };
23 };
24 };
25
26 ###### implementation
27 config = mkIf cfg.enable {
28 services.xserver.windowManager.session = singleton {
29 name = "katriawm";
30 start = ''
31 ${cfg.package}/bin/katriawm &
32 waitPID=$!
33 '';
34 };
35 environment.systemPackages = [ cfg.package ];
36 };
37}