{ config, lib, pkgs, ... }: let actions = config.lib.niri.actions; moves = n: if n == 0 then {} else { "Mod+${builtins.toString n}".action = actions.focus-workspace n; "Mod+Shift+${builtins.toString n}".action = { move-window-to-workspace = n; }; } // moves (n - 1); in { environment = { "NIXOS_OZONE_WL" = "1"; }; workspaces."01-dev" = {}; workspaces."02-social" = {}; workspaces."03-web" = {}; workspaces."04-games" = {}; outputs."eDP-1" = { scale = 2.0; }; input = { keyboard.xkb = { layout = "us,ru"; options = "grp:caps_toggle"; }; }; binds = (with config.lib.niri.actions; { "Mod+Alt+F".action = toggle-window-floating; "Mod+W".action = toggle-column-tabbed-display; "Mod+A".action = spawn "fuzzel"; "Mod+Q".action = spawn "wezterm"; "Mod+Left".action = focus-column-left; "Mod+Right".action = focus-column-right; "Mod+Shift+Left".action = set-column-width "-5%"; "Mod+Shift+Right".action = set-column-width "+5%"; "Mod+Shift+H".action = move-column-left; "Mod+Shift+L".action = move-column-right; "Mod+F".action = maximize-column; "Mod+Shift+E".action = quit { skip-confirmation = true; }; "Mod+C".action = close-window; "Mod+Shift+R".action = screenshot {}; }) // moves 9; }