about summary refs log tree commit diff stats
path: root/modules/by-name/ri/river/keymap.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-07-06 10:44:01 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-07-06 10:44:01 +0200
commit0f2d6a6b273c76f9a93f36aceb8314463065d365 (patch)
treef00c34ce3a07b530d43a3319ad5e4f9b1dcd50f0 /modules/by-name/ri/river/keymap.nix
parentmodules/river: Use different log files for the river comp and init (diff)
downloadnixos-config-0f2d6a6b273c76f9a93f36aceb8314463065d365.zip
modules/river/keymap: Use self-reference over putting everything into let
Diffstat (limited to '')
-rw-r--r--modules/by-name/ri/river/keymap.nix177
1 files changed, 88 insertions, 89 deletions
diff --git a/modules/by-name/ri/river/keymap.nix b/modules/by-name/ri/river/keymap.nix
index d1266576..5beeea7f 100644
--- a/modules/by-name/ri/river/keymap.nix
+++ b/modules/by-name/ri/river/keymap.nix
@@ -21,114 +21,113 @@
   mkSpawn = pkg: args: further: (mkSpawn' pkg pkg.meta.mainProgram args further);
 
   cfg = config.soispha.programs.river;
+  alias = cfg.init.mappings.keymap."<LEFT_SUPER>";
+in {
+  soispha.programs.river.init.mappings.keymap = lib.mkIf cfg.enable {
+    "<LEFT_SUPER>" = {
+      # Change focus
+      "f" = {
+        "t" = ["focus-view" "next"];
+        "n" = ["focus-view" "previous"];
+        "T" = ["focus-output" "next"];
+        "N" = ["focus-output" "previous"];
+      };
 
-  coreKeymap = {
-    # Change focus
-    "f" = {
-      "t" = ["focus-view" "next"];
-      "n" = ["focus-view" "previous"];
-      "T" = ["focus-output" "next"];
-      "N" = ["focus-output" "previous"];
-    };
-
-    # Spawn standard programs
-    "r" = {
-      "a" = mkSpawn pkgs.alacritty "" {};
-      "b" = mkSpawn pkgs.tskm "open select" {once = true;};
-      "k" = mkSpawn pkgs.keepassxc "" {once = true;};
-      "s" = mkSpawn pkgs.signal-desktop "" {once = true;};
-      "p" = mkSpawn pkgs.screenshot_persistent "" {once = true;};
-    };
+      # Spawn standard programs
+      "r" = {
+        "a" = mkSpawn pkgs.alacritty "";
+        "b" = mkSpawn pkgs.tskm "open select" {once = true;};
+        "k" = mkSpawn pkgs.keepassxc "" {once = true;};
+        "s" = mkSpawn pkgs.signal-desktop "" {once = true;};
+        "p" = mkSpawn pkgs.screenshot_persistent "" {once = true;};
+      };
 
-    # Client changes
-    "c" = {
-      "f" = ["toggle-fullscreen"];
-      "c" = ["close"];
-      " " = ["toggle-float"];
-      "<ENTER>" = ["zoom"];
-      "o" = ["send-to-output" "next"];
-      "t" = ["swap" "next"];
-      "n" = ["swap" "previous"];
-    };
+      # Client changes
+      "c" = {
+        "f" = ["toggle-fullscreen"];
+        "c" = ["close"];
+        " " = ["toggle-float"];
+        "<ENTER>" = ["zoom"];
+        "o" = ["send-to-output" "next"];
+        "t" = ["swap" "next"];
+        "n" = ["swap" "previous"];
+      };
 
-    # This is a fill in for <Super-L>, as that is otherwise impossible to input.
-    "l" = coreKeymap.x.l;
+      # This is a fill in for <Super-L>, as that is otherwise nearly impossible to input.
+      "l" = alias.x.l;
 
-    # River compositor control.
-    "x" = {
-      "q" = ["exit"];
-      "l" = mkSpawn pkgs.lock "" {once = true;};
-    };
+      # River compositor control.
+      "x" = {
+        "q" = ["exit"];
+        "l" = mkSpawn pkgs.lock "" {once = true;};
+      };
 
-    # Media control
-    "m" = {
-      "r" = mkSpawn' pkgs.wireplumber "wpctl" "set-volume @DEFAULT_SINK@ 5%+" {};
-      "l" = mkSpawn' pkgs.wireplumber "wpctl" "set-volume @DEFAULT_SINK@ 5%-" {};
-      "m" = mkSpawn pkgs.mpp "toggle" {};
-    };
+      # Media control
+      "m" = {
+        "r" = mkSpawn' pkgs.wireplumber "wpctl" "set-volume @DEFAULT_SINK@ 5%+";
+        "l" = mkSpawn' pkgs.wireplumber "wpctl" "set-volume @DEFAULT_SINK@ 5%-";
+        "m" = mkSpawn pkgs.mpp "toggle";
+      };
 
-    # Select tags to view.
-    "v" = {
-      "0" = ["set-view-tags" (builtins.toString ((libraries.base.pow 2 32) - 1))];
-      "p" = ["send-to-previous-tags"];
-
-      "1" = mkTagCommand "set-view-tags" 1;
-      "2" = mkTagCommand "set-view-tags" 2;
-      "3" = mkTagCommand "set-view-tags" 3;
-      "4" = mkTagCommand "set-view-tags" 4;
-      "5" = mkTagCommand "set-view-tags" 5;
-      "6" = mkTagCommand "set-view-tags" 6;
-      "7" = mkTagCommand "set-view-tags" 7;
-      "8" = mkTagCommand "set-view-tags" 8;
-      "9" = mkTagCommand "set-view-tags" 9;
-
-      # Add tags to view.
-      "a" = {
-        "1" = mkTagCommand "toggle-view-tags" 1;
-        "2" = mkTagCommand "toggle-view-tags" 2;
-        "3" = mkTagCommand "toggle-view-tags" 3;
-        "4" = mkTagCommand "toggle-view-tags" 4;
-        "5" = mkTagCommand "toggle-view-tags" 5;
-        "6" = mkTagCommand "toggle-view-tags" 6;
-        "7" = mkTagCommand "toggle-view-tags" 7;
-        "8" = mkTagCommand "toggle-view-tags" 8;
-        "9" = mkTagCommand "toggle-view-tags" 9;
+      # Select tags to view.
+      "v" = {
+        "0" = ["set-view-tags" (builtins.toString ((libraries.base.pow 2 32) - 1))];
+        "p" = ["send-to-previous-tags"];
+
+        "1" = mkTagCommand "set-view-tags" 1;
+        "2" = mkTagCommand "set-view-tags" 2;
+        "3" = mkTagCommand "set-view-tags" 3;
+        "4" = mkTagCommand "set-view-tags" 4;
+        "5" = mkTagCommand "set-view-tags" 5;
+        "6" = mkTagCommand "set-view-tags" 6;
+        "7" = mkTagCommand "set-view-tags" 7;
+        "8" = mkTagCommand "set-view-tags" 8;
+        "9" = mkTagCommand "set-view-tags" 9;
+
+        # Add tags to view.
+        "a" = {
+          "1" = mkTagCommand "toggle-view-tags" 1;
+          "2" = mkTagCommand "toggle-view-tags" 2;
+          "3" = mkTagCommand "toggle-view-tags" 3;
+          "4" = mkTagCommand "toggle-view-tags" 4;
+          "5" = mkTagCommand "toggle-view-tags" 5;
+          "6" = mkTagCommand "toggle-view-tags" 6;
+          "7" = mkTagCommand "toggle-view-tags" 7;
+          "8" = mkTagCommand "toggle-view-tags" 8;
+          "9" = mkTagCommand "toggle-view-tags" 9;
+        };
       };
-    };
 
-    # Select tags to focus.
-    "f" = {
-      "0" = ["set-focused-tags" (builtins.toString ((libraries.base.pow 2 32) - 1))];
-      "p" = ["focus-previous-tags"];
-
-      "1" = mkTagCommand "set-focused-tags" 1;
-      "2" = mkTagCommand "set-focused-tags" 2;
-      "3" = mkTagCommand "set-focused-tags" 3;
-      "4" = mkTagCommand "set-focused-tags" 4;
-      "5" = mkTagCommand "set-focused-tags" 5;
-      "6" = mkTagCommand "set-focused-tags" 6;
-      "7" = mkTagCommand "set-focused-tags" 7;
-      "8" = mkTagCommand "set-focused-tags" 8;
-      "9" = mkTagCommand "set-focused-tags" 9;
+      # Select tags to focus.
+      "f" = {
+        "0" = ["set-focused-tags" (builtins.toString ((libraries.base.pow 2 32) - 1))];
+        "p" = ["focus-previous-tags"];
+
+        "1" = mkTagCommand "set-focused-tags" 1;
+        "2" = mkTagCommand "set-focused-tags" 2;
+        "3" = mkTagCommand "set-focused-tags" 3;
+        "4" = mkTagCommand "set-focused-tags" 4;
+        "5" = mkTagCommand "set-focused-tags" 5;
+        "6" = mkTagCommand "set-focused-tags" 6;
+        "7" = mkTagCommand "set-focused-tags" 7;
+        "8" = mkTagCommand "set-focused-tags" 8;
+        "9" = mkTagCommand "set-focused-tags" 9;
+      };
     };
-  };
-in {
-  soispha.programs.river.init.mappings.keymap = lib.mkIf cfg.enable {
-    "<LEFT_SUPER>" = coreKeymap;
 
     # Audio
     "<MEDIA_RAISEVOLUME>" =
-      coreKeymap.m.r
+      alias.m.r
       // {
         allow_locked = true;
       };
     "<MEDIA_LOWERVOLUME>" =
-      coreKeymap.m.l
+      alias.m.l
       // {
         allow_locked = true;
       };
     "<MEDIA_MUTEVOLUME>" =
-      coreKeymap.m.m
+      alias.m.m
       // {
         allow_locked = true;
       };
@@ -138,6 +137,6 @@ in {
     "<Meta-<MOUSE_RIGHT>>" = ["resize-view"];
 
     # Screenshot
-    "<PRINTSCREEN>" = coreKeymap.r.p;
+    "<PRINTSCREEN>" = alias.r.p;
   };
 }