diff --git a/default.nix b/default.nix index 2b414752..8e3adac8 100644 --- a/default.nix +++ b/default.nix @@ -38,7 +38,7 @@ let ./modules/security ./modules/services/activate-system.nix ./modules/services/khd - ./modules/services/kwm.nix + ./modules/services/kwm ./modules/services/emacs.nix ./modules/services/mopidy.nix ./modules/services/nix-daemon.nix diff --git a/modules/services/kwm.nix b/modules/services/kwm/default.nix similarity index 71% rename from modules/services/kwm.nix rename to modules/services/kwm/default.nix index db2a0f66..0dfa741b 100644 --- a/modules/services/kwm.nix +++ b/modules/services/kwm/default.nix @@ -18,7 +18,8 @@ in services.kwm.package = mkOption { type = types.path; - example = literalExample pkgs.kwm; + default = pkgs.kwm; + defaultText = "pkgs.kwm"; description = "This option specifies the kwm package to use"; }; @@ -27,16 +28,23 @@ in default = false; description = "Whether to enable accessibility permissions for the kwm daemon."; }; + + services.kwm.kwmConfig = mkOption { + type = types.lines; + default = ""; + example = ''kwmc rule owner="iTerm2" properties={role="AXDialog"}''; + }; }; config = mkIf cfg.enable { - services.kwm.package = mkDefault pkgs.kwm; - security.accessibilityPrograms = mkIf cfg.enableAccessibilityAccess [ "${cfg.package}/kwm" ]; + environment.etc."kwmrc".text = cfg.kwmConfig; + launchd.user.agents.kwm = { - serviceConfig.Program = "${cfg.package}/kwm"; + serviceConfig.ProgramArguments = [ "${cfg.package}/kwm" ] + ++ optionals (cfg.kwmConfig != "") [ "-c" "/etc/kwmrc" ]; serviceConfig.KeepAlive = true; serviceConfig.ProcessType = "Interactive"; serviceConfig.Sockets.Listeners =