Files
nixos/modules/desktop/hypr-workspaces.nix
T
2026-10-03 12:31:57 +02:00

49 lines
1.3 KiB
Nix

{ hyprLib, mainMod, ... }:
let
inherit (hyprLib)
bind
muldsp
focusWorkspace
moveWorkspace
submap
makeSubmap
;
mod = a: b: a - (b * (builtins.div a b));
in
{
home-manager.users."djai".wayland.windowManager.hyprland.settings = {
bind = [
(bind "${mainMod} + SHIFT + W" (submap "H") "")
] ++ builtins.concatLists (builtins.genList (i:
let
ws = i+1;
k = toString (mod ws 10);
in [
(bind "${mainMod} +${k}" (focusWorkspace ws) "Switch to workspace ${toString ws}")
(bind "${mainMod} + SHIFT + ${k} " (moveWorkspace ws false) "Move window to workspace ${toString ws}")
]
) 10);
define_submap = [
(makeSubmap "H" ([
["ESCAPE" (submap "reset")]
] ++ builtins.concatLists (builtins.genList (i:
let
ws = i+11;
k = (mod (i+1) 10);
in [
[(toString k) (muldsp [(focusWorkspace ws) (submap "reset")])]
["SHIFT + ${toString k}" (moveWorkspace ws false)]
]) 10)))];
window_rule = [
{ match.class = ".*hideme.*"; workspace = "11 silent";}
{ match.title = ".*hideme.*"; workspace = "11 silent";}
{ match.class = ".*hideme.*"; no_screen_share = true;}
{ match.title = ".*hideme.*"; no_screen_share = true;}
];
};
}