Add programmatic move keys

This commit is contained in:
muon 2024-06-14 00:09:45 +00:00
parent fb5c2b24e5
commit b1071c246c

View file

@ -49,12 +49,21 @@
keybindings = let keybindings = let
modifier = config.xsession.windowManager.i3.config.modifier; modifier = config.xsession.windowManager.i3.config.modifier;
in lib.mkOptionDefault {
"${modifier}+h" = "focus left"; # modKeyComb: string -> valueAction: string
"${modifier}+j" = "focus down"; # -> keys: [string] -> values: [string]
"${modifier}+k" = "focus up"; # -> keybindings: attrSet { string -> string }
"${modifier}+l" = "focus right"; zipBinds = comb: action: keys: values: (
}; builtins.listToAttrs (lib.zipListsWith (k: v:
{ name = "${modifier}${comb}${k}"; value = "${action} ${v}"; }
) keys values)
);
moveKeys = ["h" "j" "k" "l"];
moveDirs = ["left" "down" "up" "right"];
focus = zipBinds "+" "focus" moveKeys moveDirs;
move = zipBinds "+Shift+" "move" moveKeys moveDirs;
in lib.mkOptionDefault (focus // move);
bars = let bars = let
stylix_bar = { stylix_bar = {