about summary refs log tree commit diff stats
path: root/modules/by-name/ri
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/by-name/ri/river/keymap.nix41
1 files changed, 28 insertions, 13 deletions
diff --git a/modules/by-name/ri/river/keymap.nix b/modules/by-name/ri/river/keymap.nix
index c7db0c54..7976b451 100644
--- a/modules/by-name/ri/river/keymap.nix
+++ b/modules/by-name/ri/river/keymap.nix
@@ -25,19 +25,18 @@
 
   mkSpawn = pkg: args: further: (mkSpawn' pkg pkg.meta.mainProgram args further);
 
+  setMode = path: {
+    command = [
+      "enter-mode"
+      (builtins.concatStringsSep "" path)
+    ];
+  };
+
   cfg = config.soispha.programs.river;
 in {
   soispha.programs.river.init.mappings.keymap = lib.mkIf cfg.enable (lib.fixedPoints.fix
     (self: {
       "<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 "" {};
@@ -50,13 +49,12 @@ in {
 
         # Client changes
         "c" = {
+          "F" = setMode ["<LEFT_META>" "f"];
+
           "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 nearly impossible to input.
@@ -75,8 +73,16 @@ in {
           "m" = mkSpawn pkgs.mpp "toggle" {};
         };
 
-        # Select tags to view.
+        # Select tags for view.
         "v" = {
+          "c" = setMode ["<LEFT_META>" "c"];
+          "f" = setMode ["<LEFT_META>" "f"];
+
+          "t" = ["swap" "next"];
+          "n" = ["swap" "previous"];
+          "T" = ["send-to-output" "next"];
+          "N" = ["send-to-output" "previous"];
+
           "0" = ["set-view-tags" (builtins.toString ((libraries.base.pow 2 32) - 1))];
           "p" = ["send-to-previous-tags"];
 
@@ -104,8 +110,17 @@ in {
           };
         };
 
-        # Select tags to focus.
+        # Select tags to focus,
+        # and change focus
         "f" = {
+          "c" = setMode ["<LEFT_META>" "c"];
+          "v" = setMode ["<LEFT_META>" "v"];
+
+          "t" = ["focus-view" "next"];
+          "n" = ["focus-view" "previous"];
+          "T" = ["focus-output" "next"];
+          "N" = ["focus-output" "previous"];
+
           "0" = ["set-focused-tags" (builtins.toString ((libraries.base.pow 2 32) - 1))];
           "p" = ["focus-previous-tags"];