aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-07-06 11:22:51 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-07-06 11:22:51 +0200
commitd91171c255380f42b428062e2298c750298800c2 (patch)
treea4b81f79c995a35044bbb69e56af545caffff779
parentmodules/river/keymap: Avoid trailing spaces in spawn (diff)
downloadnixos-config-d91171c255380f42b428062e2298c750298800c2.zip
modules/river/keymap: Avoid the inf-rec by explicitly using a fixpoint
-rw-r--r--modules/by-name/ri/river/keymap.nix208
1 files changed, 104 insertions, 104 deletions
diff --git a/modules/by-name/ri/river/keymap.nix b/modules/by-name/ri/river/keymap.nix
index 077bcbf9..fd911f69 100644
--- a/modules/by-name/ri/river/keymap.nix
+++ b/modules/by-name/ri/river/keymap.nix
@@ -26,125 +26,125 @@
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"];
- };
+ 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 "";
- "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 nearly impossible to input.
- "l" = alias.x.l;
+ # This is a fill in for <Super-L>, as that is otherwise nearly impossible to input.
+ "l" = self."<LEFT_SUPER>".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"];
+ # 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;
+ "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;
+ # 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"];
+ # 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;
+ "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;
+ };
};
- };
- # Screen locking
- "<Super-l>" = alias.x.l;
+ # Screen locking
+ "<Super-l>" = self."<LEFT_SUPER>".x.l;
- # Audio
- "<MEDIA_RAISEVOLUME>" =
- alias.m.r
- // {
- allow_locked = true;
- };
- "<MEDIA_LOWERVOLUME>" =
- alias.m.l
- // {
- allow_locked = true;
- };
- "<MEDIA_MUTEVOLUME>" =
- alias.m.m
- // {
- allow_locked = true;
- };
+ # Audio
+ "<MEDIA_RAISEVOLUME>" =
+ self."<LEFT_SUPER>".m.r
+ // {
+ allow_locked = true;
+ };
+ "<MEDIA_LOWERVOLUME>" =
+ self."<LEFT_SUPER>".m.l
+ // {
+ allow_locked = true;
+ };
+ "<MEDIA_MUTEVOLUME>" =
+ self."<LEFT_SUPER>".m.m
+ // {
+ allow_locked = true;
+ };
- # Mouse
- "<Meta-<MOUSE_LEFT>>" = ["move-view"];
- "<Meta-<MOUSE_RIGHT>>" = ["resize-view"];
+ # Mouse
+ "<Meta-<MOUSE_LEFT>>" = ["move-view"];
+ "<Meta-<MOUSE_RIGHT>>" = ["resize-view"];
- # Screenshot
- "<PRINTSCREEN>" = alias.r.p;
- };
+ # Screenshot
+ "<PRINTSCREEN>" = self."<LEFT_SUPER>".r.p;
+ }));
}