nixos/dotfiles/niri/default.nix
2025-06-09 00:04:28 +00:00

41 lines
1.2 KiB
Nix

{ 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+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 = fullscreen-window;
"Mod+Shift+E".action = quit { skip-confirmation = true; };
"Mod+C".action = close-window;
"Mod+Shift+R".action = screenshot {};
}) // moves 9;
}