nixos/modules/home/programs/niri.nix
2026-10-20 08:30:35 +02:00

194 lines
6.4 KiB
Nix

{ ... }: {
flake.homeModules.niri = { config, lib, ... }: {
wayland.windowManager.niri = {
enable = true;
settings = {
prefer-no-csd = { };
hotkey-overlay.skip-at-startup = { };
environment = {
XDG_CURRENT_DESKTOP = "niri";
XDG_SESSION_TYPE = "wayland";
XDG_SESSION_DESKTOP = "niri";
};
cursor = {
xcursor-size = 24;
xcursor-theme = "macOS";
};
input = {
keyboard.xkb.layout = "eu";
touchpad = {
tap = { };
natural-scroll = { };
};
mouse = {
accel-speed = -0.4;
accel-profile = "flat";
};
focus-follows-mouse._props.max-scroll-amount = "20%";
};
spawn-at-startup = [ "qs" ];
screenshot-path = null;
animations = { };
layout = {
gaps = 16;
center-focused-column = "never";
default-column-width._children = [ { proportion = 0.6; } ];
focus-ring.off = { };
border = {
width = 2;
active-color = config.lib.stylix.colors.base0D;
inactive-color = config.lib.stylix.colors.base03;
};
};
binds = {
"Mod+Return".spawn-sh = "ghostty +new-window";
"Mod+space".spawn = [ "fuzzel" ];
"Mod+e".spawn = [ "nautilus" ];
"XF86AudioRaiseVolume" = {
_props.allow-when-locked = true;
spawn-sh = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0";
};
"XF86AudioLowerVolume" = {
_props.allow-when-locked = true;
spawn-sh = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-";
};
"XF86AudioMute" = {
_props.allow-when-locked = true;
spawn-sh = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
};
"XF86AudioMicMute" = {
_props.allow-when-locked = true;
spawn-sh = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
};
"XF86AudioPlay" = {
_props.allow-when-locked = true;
spawn-sh = "playerctl play-pause";
};
"XF86AudioStop" = {
_props.allow-when-locked = true;
spawn-sh = "playerctl stop";
};
"XF86AudioPrev" = {
_props.allow-when-locked = true;
spawn-sh = "playerctl previous";
};
"XF86AudioNext" = {
_props.allow-when-locked = true;
spawn-sh = "playerctl next";
};
"XF86MonBrightnessUp" = {
_props.allow-when-locked = true;
spawn = [
"brightnessctl"
"--class=backlight"
"set"
"+10%"
];
};
"XF86MonBrightnessDown" = {
_props.allow-when-locked = true;
spawn = [
"brightnessctl"
"--class=backlight"
"set"
"10%-"
];
};
"Mod+O" = {
_props.repeat = false;
toggle-overview = { };
};
"Mod+Q" = {
_props.repeat = false;
close-window = { };
};
"Mod+Left".focus-column-left = { };
"Mod+Down".focus-window-down = { };
"Mod+Up".focus-window-up = { };
"Mod+Right".focus-column-right = { };
"Mod+H".focus-column-left = { };
"Mod+J".focus-window-down = { };
"Mod+K".focus-window-up = { };
"Mod+L".focus-column-right = { };
"Mod+Ctrl+Left".move-column-left = { };
"Mod+Ctrl+Down".move-window-down = { };
"Mod+Ctrl+Up".move-window-up = { };
"Mod+Ctrl+Right".move-column-right = { };
"Mod+Ctrl+H".move-column-left = { };
"Mod+Ctrl+J".move-window-down = { };
"Mod+Ctrl+K".move-window-up = { };
"Mod+Ctrl+L".move-column-right = { };
"Mod+comma".focus-monitor-left = { };
"Mod+period".focus-monitor-right = { };
"Mod+Shift+comma".move-column-to-monitor-left = { };
"Mod+Shift+period".move-column-to-monitor-right = { };
"Mod+Shift+WheelScrollDown".focus-column-right = { };
"Mod+Shift+WheelScrollUp".focus-column-left = { };
"Mod+1".focus-workspace = 1;
"Mod+2".focus-workspace = 2;
"Mod+3".focus-workspace = 3;
"Mod+4".focus-workspace = 4;
"Mod+5".focus-workspace = 5;
"Mod+6".focus-workspace = 6;
"Mod+7".focus-workspace = 7;
"Mod+8".focus-workspace = 8;
"Mod+9".focus-workspace = 9;
"Mod+Shift+1".move-column-to-workspace = 1;
"Mod+Shift+2".move-column-to-workspace = 2;
"Mod+Shift+3".move-column-to-workspace = 3;
"Mod+Shift+4".move-column-to-workspace = 4;
"Mod+Shift+5".move-column-to-workspace = 5;
"Mod+Shift+6".move-column-to-workspace = 6;
"Mod+Shift+7".move-column-to-workspace = 7;
"Mod+Shift+8".move-column-to-workspace = 8;
"Mod+Shift+9".move-column-to-workspace = 9;
"Mod+BracketLeft".consume-or-expel-window-left = { };
"Mod+BracketRight".consume-or-expel-window-right = { };
"Mod+F".maximize-column = { };
"Mod+Minus".set-column-width = "-10%";
"Mod+Equal".set-column-width = "+10%";
"Mod+V".toggle-window-floating = { };
"Mod+Shift+S".screenshot = { };
"Alt+Shift+S".screenshot-screen = { };
"Alt+Ctrl+S".screenshot-window = { };
"Mod+Shift+q".quit = { };
};
_children = [
{
output = {
_args = [ "PNP(BNQ) BenQ EX2710Q K6R04023019" ];
mode = "2560x1440@165.002";
scale = 1;
transform = "normal";
position._props = {
x = 1920;
y = 0;
};
};
}
{
output = {
_args = [ "Dell Inc. DELL P2317H 9KFDW6C533DB" ];
position._props = {
x = 0;
y = 0;
};
};
}
{
output = {
_args = [ "eDP-1" ];
scale = 1;
};
}
{
window-rule._children = [
{ geometry-corner-radius = 16; }
{ clip-to-geometry = true; }
];
}
];
};
};
};
}