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-01 19:56:55 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-07-01 19:56:55 +0200
commitc3c112b119434cbc2886ed47336ee61dd76ba791 (patch)
treeb2b11751d5da1a551d3864ee3595a9ab16aeab3d /modules/by-name/ri/river/keymap.nix
parentmodules/river/keymap: Also mark lock as `once` (diff)
downloadnixos-config-c3c112b119434cbc2886ed47336ee61dd76ba791.zip
modules/river/keymap: Use `let .. in` instead of `rec`
`rec` can't handle the quoted reference to the attribute set
(`<LEFT_SUPER>`).
Diffstat (limited to '')
-rw-r--r--modules/by-name/ri/river/keymap.nix176
1 files changed, 89 insertions, 87 deletions
diff --git a/modules/by-name/ri/river/keymap.nix b/modules/by-name/ri/river/keymap.nix
index 680e9aa8..19c36203 100644
--- a/modules/by-name/ri/river/keymap.nix
+++ b/modules/by-name/ri/river/keymap.nix
@@ -21,112 +21,114 @@
   mkSpawn = pkg: args: further: (mkSpawn' pkg pkg.meta.mainProgram args further);
 
   cfg = config.soispha.programs.river;
-in {
-  soispha.programs.river.init.mappings.keymap = lib.mkIf cfg.enable rec {
-    "<LEFT_SUPER>" = {
-      # 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;};
-      };
+  coreKeymap = {
+    # Change focus
+    "f" = {
+      "t" = ["focus-view" "next"];
+      "n" = ["focus-view" "previous"];
+      "T" = ["focus-output" "next"];
+      "N" = ["focus-output" "previous"];
+    };
 
-      # Client changes
-      "c" = {
-        "f" = ["toggle-fullscreen"];
-        "c" = ["close"];
-        " " = ["toggle-float"];
-        "<ENTER>" = ["zoom"];
-        "o" = ["send-to-output" "next"];
-        "t" = ["swap" "next"];
-        "n" = ["swap" "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;};
+    };
 
-      # This is a fill in for <Super-L>, as that is otherwise impossible to input.
-      "l" = "<LEFT_SUPER>".x.l;
+    # Client changes
+    "c" = {
+      "f" = ["toggle-fullscreen"];
+      "c" = ["close"];
+      " " = ["toggle-float"];
+      "<ENTER>" = ["zoom"];
+      "o" = ["send-to-output" "next"];
+      "t" = ["swap" "next"];
+      "n" = ["swap" "previous"];
+    };
 
-      # River compositor control.
-      "x" = {
-        "q" = ["exit"];
-        "l" = mkSpawn pkgs.lock "" {once = true;};
-      };
+    # This is a fill in for <Super-L>, as that is otherwise impossible to input.
+    "l" = coreKeymap.x.l;
 
-      # 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";
-      };
+    # River compositor control.
+    "x" = {
+      "q" = ["exit"];
+      "l" = mkSpawn pkgs.lock "" {once = true;};
+    };
 
-      # 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;
-        };
-      };
+    # 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 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 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;
+    };
+  };
+in {
+  soispha.programs.river.init.mappings.keymap = lib.mkIf cfg.enable {
+    "<LEFT_SUPER>" = coreKeymap;
+
     # Audio
     "<MEDIA_RAISEVOLUME>" =
-      "<LEFT_SUPER>".m.r
+      coreKeymap.m.r
       // {
         allow_locked = true;
       };
     "<MEDIA_LOWERVOLUME>" =
-      "<LEFT_SUPER>".m.l
+      coreKeymap.m.l
       // {
         allow_locked = true;
       };
     "<MEDIA_MUTEVOLUME>" =
-      "<LEFT_SUPER>".m.m
+      coreKeymap.m.m
       // {
         allow_locked = true;
       };
@@ -136,6 +138,6 @@ in {
     "<Meta-<MOUSE_RIGHT>>" = ["resize-view"];
 
     # Screenshot
-    "<PRINTSCREEN>" = "<LEFT_SUPER>".r.p;
+    "<PRINTSCREEN>" = coreKeymap.r.p;
   };
 }