summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2017-05-20 13:13:21 +0200
committerDaiderd Jordan <daiderd@gmail.com>2017-05-20 13:14:17 +0200
commit2fda5848bb5d3aac3b89fffa1523536839acd785 (patch)
treec2d1f39d7049397ec9618d32158766348d5505e2
parent9f0b3c22c3c354219a209decaf84e38d8ce1b885 (diff)
kwm: add option to manage config in /etc/kwmrc
Fixes #24
-rw-r--r--default.nix2
-rw-r--r--modules/services/kwm/default.nix (renamed from modules/services/kwm.nix)16
2 files changed, 13 insertions, 5 deletions
diff --git a/default.nix b/default.nix
index 2b41475..8e3adac 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
index db2a0f6..0dfa741 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 =