dots/home/modules/niri.nix
2026-03-14 22:47:21 +01:00

161 lines
4.1 KiB
Nix

{
pkgs,
inputs,
...
}: {
imports = [inputs.niri-flake.homeModules.niri];
home.packages = with pkgs; [
swaybg
wl-clipboard
];
programs = {
alacritty.enable = true;
fuzzel.enable = true;
swaylock.enable = true;
waybar.enable = true;
};
services = {
mako.enable = true;
swayidle.enable = true;
polkit-gnome.enable = true;
};
programs.niri = {
enable = true;
settings = {
spawn-at-startup = [
{command = ["waybar"];}
];
input = {
keyboard = {
xkb = {
layout = "cz";
options = "caps:escape";
};
};
};
outputs = {
"DP-1".mode = {
width = 2560;
height = 1440;
};
"DP-2".mode = {
width = 1920;
height = 1080;
};
};
environment = {
NIXOS_OZONE_WL = "1";
TERMINAL = "foot";
SDL_VIDEODRIVER = "wayland";
CLUTTER_BACKEND = "wayland";
};
gestures = {
hot-corners.enable = false;
};
layout = {
gaps = 8;
default-column-width = {proportion = 1;};
preset-column-widths = [
{proportion = 0.33333;}
{proportion = 0.5;}
{proportion = 0.66667;}
{proportion = 1.0;}
];
preset-window-heights = [
{proportion = 0.33333;}
{proportion = 0.5;}
{proportion = 0.66667;}
{proportion = 1.0;}
];
};
prefer-no-csd = true;
cursor.size = 14;
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
hotkey-overlay.skip-at-startup = true;
window-rules = [
{
clip-to-geometry = true;
}
];
input = {
keyboard.numlock = true;
warp-mouse-to-focus.enable = true;
focus-follows-mouse = {
enable = true;
max-scroll-amount = "0%";
};
};
binds = {
"Mod+Q".action.close-window = [];
"Mod+Return".action.spawn = ["foot"];
"Mod+A".action.spawn = ["fuzzel"];
"Mod+B".action.spawn = ["zen"];
"Mod+O".action.toggle-overview = [];
# Change monitor focus
"Mod+Alt+H".action.focus-monitor-left = [];
"Mod+Alt+L".action.focus-monitor-right = [];
"Mod+Alt+Left".action.focus-monitor-left = [];
"Mod+Alt+Right".action.focus-monitor-right = [];
# Vim motions
"Mod+H".action.focus-column-left = [];
"Mod+L".action.focus-column-right = [];
"Mod+J".action.focus-window-down = [];
"Mod+K".action.focus-window-up = [];
"Mod+Left".action.focus-column-left = [];
"Mod+Right".action.focus-column-right = [];
"Mod+Down".action.focus-window-down = [];
"Mod+Up".action.focus-window-up = [];
"Mod+WheelScrollDown".action.focus-column-right = [];
"Mod+WheelScrollUp".action.focus-column-left = [];
"Mod+Y".action.consume-or-expel-window-left = [];
"Mod+X".action.consume-or-expel-window-right = [];
"Mod+R".action.switch-preset-column-width = [];
"Mod+Shift+R".action.switch-preset-window-height = [];
"Mod+F".action.maximize-column = [];
"Mod+Shift+F".action.fullscreen-window = [];
"Mod+W".action.toggle-window-floating = [];
"Mod+Minus".action.set-column-width = ["-10%"];
"Mod+Plus".action.set-column-width = ["+10%"];
"Print".action.screenshot = [];
"Ctrl+Print".action.screenshot-screen = [];
"Alt+Print".action.screenshot-window = [];
"XF86AudioPlay".action.spawn = ["playerctl" "play-pause"];
"XF86AudioNext".action.spawn = ["playerctl" "next"];
"XF86AudioPrev".action.spawn = ["playerctl" "previous"];
"XF86AudioStop".action.spawn = ["playerctl" "stop"];
"XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"];
"XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"];
"xF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"];
};
};
};
}