about summary refs log tree commit diff stats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/by-name/i3/i3status-rust/module.nix6
-rw-r--r--modules/by-name/ri/river/keymap.nix184
2 files changed, 96 insertions, 94 deletions
diff --git a/modules/by-name/i3/i3status-rust/module.nix b/modules/by-name/i3/i3status-rust/module.nix
index 5bd911d8..48bcd5de 100644
--- a/modules/by-name/i3/i3status-rust/module.nix
+++ b/modules/by-name/i3/i3status-rust/module.nix
@@ -81,11 +81,12 @@ in {
             }
             {
               block = "memory";
-              format = " $icon $mem_used_percents {($swap_used_percents.eng(range:1..)) | }";
+              format = " $icon $mem_used_percents{ ($swap_used_percents.eng(range:1..))|} ";
             }
             {
               block = "amd_gpu";
-              format = "  $icon $utilization (^icon_memory_mem $vram_used_percents) ";
+              format = " $icon $utilization (^icon_memory_mem $vram_used_percents) ";
+              error_format = "";
             }
 
             {
@@ -117,6 +118,7 @@ in {
             }
             {
               block = "battery";
+              format = " $icon $percentage{ $time_remaining.dur(hms:true, min_unit:m)|}{ $power|} ";
               missing_format = "";
             }
 
diff --git a/modules/by-name/ri/river/keymap.nix b/modules/by-name/ri/river/keymap.nix
index 6873f40e..d1266576 100644
--- a/modules/by-name/ri/river/keymap.nix
+++ b/modules/by-name/ri/river/keymap.nix
@@ -8,7 +8,7 @@
   index2tag = input: builtins.toString (libraries.base.pow 2 (input - 1));
 
   mkTagCommand = name: index: [name (index2tag index)];
-  mkSpawnInner = pkg: binaryName: args: further: (further
+  mkSpawn' = pkg: binaryName: args: further: (further
     // {
       command = [
         "spawn"
@@ -18,114 +18,117 @@
       description = "${binaryName} ${args}";
     });
 
-  mkSpawnOnce = pkg: args: (mkSpawnInner pkg pkg.meta.mainProgram args {once = true;});
-  mkSpawn = pkg: args: (mkSpawn' pkg pkg.meta.mainProgram args);
-  mkSpawn' = pkg: binaryName: args: (mkSpawnInner pkg binaryName args {});
+  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 {
-    "<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";
-        "k" = mkSpawn pkgs.keepassxc "";
-        "s" = mkSpawn pkgs.signal-desktop "";
-        "p" = mkSpawnOnce pkgs.screenshot_persistent "";
-      };
+  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;};
+    };
 
-      # River compositor control.
-      "x" = {
-        "q" = ["exit"];
-        "l" = mkSpawn pkgs.lock "";
-      };
+    # Client changes
+    "c" = {
+      "f" = ["toggle-fullscreen"];
+      "c" = ["close"];
+      " " = ["toggle-float"];
+      "<ENTER>" = ["zoom"];
+      "o" = ["send-to-output" "next"];
+      "t" = ["swap" "next"];
+      "n" = ["swap" "previous"];
+    };
 
-      # 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";
-      };
+    # This is a fill in for <Super-L>, as that is otherwise impossible to input.
+    "l" = coreKeymap.x.l;
 
-      # 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;
-        };
-      };
+    # River compositor control.
+    "x" = {
+      "q" = ["exit"];
+      "l" = mkSpawn pkgs.lock "" {once = true;};
+    };
 
-      # 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;
+    # 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 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>" =
-      (mkSpawn' pkgs.wireplumber "wpctl" "set-volume @DEFAULT_SINK@ 5%+")
+      coreKeymap.m.r
       // {
         allow_locked = true;
       };
     "<MEDIA_LOWERVOLUME>" =
-      (mkSpawn' pkgs.wireplumber "wpctl" "set-volume @DEFAULT_SINK@ 5%-")
+      coreKeymap.m.l
       // {
         allow_locked = true;
       };
     "<MEDIA_MUTEVOLUME>" =
-      (mkSpawn pkgs.mpp "toggle")
+      coreKeymap.m.m
       // {
         allow_locked = true;
       };
@@ -134,10 +137,7 @@ in {
     "<Meta-<MOUSE_LEFT>>" = ["move-view"];
     "<Meta-<MOUSE_RIGHT>>" = ["resize-view"];
 
-    # Lock screen.
-    "<Meta-L>" = mkSpawn pkgs.lock "";
-
     # Screenshot
-    "<PRINTSCREEN>" = mkSpawn pkgs.screenshot_persistent "";
+    "<PRINTSCREEN>" = coreKeymap.r.p;
   };
 }