mirror of
https://codeberg.org/muon/home.git
synced 2025-12-06 08:07:45 +00:00
Add workspace abstraction
This commit is contained in:
parent
b1071c246c
commit
bec17bcb0f
1 changed files with 24 additions and 10 deletions
|
|
@ -31,10 +31,18 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xsession.windowManager.i3 = {
|
xsession.windowManager.i3 = let
|
||||||
|
modifier = "Mod4";
|
||||||
|
wsAmount = 10;
|
||||||
|
genSpaces = f: map builtins.toString (
|
||||||
|
builtins.genList f wsAmount
|
||||||
|
);
|
||||||
|
workspaces = genSpaces (x: x+1);
|
||||||
|
|
||||||
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
modifier = "Mod4";
|
modifier = modifier;
|
||||||
terminal = "alacritty";
|
terminal = "alacritty";
|
||||||
menu = "rofi -show drun";
|
menu = "rofi -show drun";
|
||||||
|
|
||||||
|
|
@ -48,22 +56,28 @@
|
||||||
focus.wrapping = "yes";
|
focus.wrapping = "yes";
|
||||||
|
|
||||||
keybindings = let
|
keybindings = let
|
||||||
modifier = config.xsession.windowManager.i3.config.modifier;
|
|
||||||
|
|
||||||
# modKeyComb: string -> valueAction: string
|
# modKeyComb: string -> valueAction: string
|
||||||
# -> keys: [string] -> values: [string]
|
# -> keys: [string] -> values: [string]
|
||||||
# -> keybindings: attrSet { string -> string }
|
# -> keybindings: attrSet { string -> string }
|
||||||
zipBinds = comb: action: keys: values: (
|
zipBinds = comb: action: keys: values: (
|
||||||
builtins.listToAttrs (lib.zipListsWith (k: v:
|
builtins.listToAttrs (lib.zipListsWith (k: v: {
|
||||||
{ name = "${modifier}${comb}${k}"; value = "${action} ${v}"; }
|
name = "${modifier}${comb}${k}";
|
||||||
) keys values)
|
value = "${action} ${v}";
|
||||||
|
}) keys values)
|
||||||
);
|
);
|
||||||
|
|
||||||
moveKeys = ["h" "j" "k" "l"];
|
moveKeys = ["h" "j" "k" "l"];
|
||||||
moveDirs = ["left" "down" "up" "right"];
|
moveDirs = ["left" "down" "up" "right"];
|
||||||
focus = zipBinds "+" "focus" moveKeys moveDirs;
|
|
||||||
move = zipBinds "+Shift+" "move" moveKeys moveDirs;
|
workspKeys = genSpaces (x: x);
|
||||||
in lib.mkOptionDefault (focus // move);
|
|
||||||
|
in lib.mkOptionDefault (
|
||||||
|
(zipBinds "+" "focus" moveKeys moveDirs) //
|
||||||
|
(zipBinds "+Shift+" "move" moveKeys moveDirs) //
|
||||||
|
(zipBinds "+" "workspace number" workspKeys workspaces) //
|
||||||
|
(zipBinds "+Shift+" "move container to workspace number"
|
||||||
|
workspKeys workspaces)
|
||||||
|
);
|
||||||
|
|
||||||
bars = let
|
bars = let
|
||||||
stylix_bar = {
|
stylix_bar = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue