// vim: foldenable foldmethod=marker ts=2 sw=2 // auto start {{{ spawn-at-startup "noctalia" // }}} // env {{{ environment { XDG_CURRENT_DESKTOP "niri" ELECTRON_OZONE_PLATFORM_HINT "auto" GTK_IM_MODULE "simple" MOZ_ENABLE_WAYLAND "1" QT_QPA_PLATFORM "wayland" QT_QPA_PLATFORMTHEME "gtk3" QT_QPA_PLATFORMTHEME_QT6 "gtk3" QT_WAYLAND_DISABLE_WINDOWDECORATION "1" } // }}} // inputs {{{ // https://github.com/YaLTeR/niri/wiki/Configuration:-Input input { keyboard { xkb { layout "us,ua" options "grp:win_space_toggle,compose:ralt,ctrl:nocaps" } } touchpad { tap dwt // dwtp // drag-lock accel-speed 0.2 scroll-factor 1.5 accel-profile "adaptive" click-method "clickfinger" scroll-method "two-finger" } focus-follows-mouse max-scroll-amount="25%" mouse { accel-speed 0.0 accel-profile "flat" } } switch-events { lid-close { spawn "noctalia" "msg" "session" "lock-and-suspend"; } } /// }}} // Monitors {{{ // https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs output "HDMI-A-1" { focus-at-startup mode "1920x1080@100.00" scale 1 transform "normal" position x=0 y=0 } output "eDP-1" { focus-at-startup mode "1920x1080@60.001" scale 1 transform "normal" position x=1920 y=144 } /// }}} // Layout {{{ // https://github.com/YaLTeR/niri/wiki/Configuration:-Layout layout { gaps 0 center-focused-column "never" default-column-width { proportion 0.7; } border { off; } preset-column-widths { proportion 0.33333 proportion 0.5 proportion 0.66667 } focus-ring { width 2 active-color "#7aa2f7" inactive-color "#292e42" } } // }}} // general {{{ prefer-no-csd hotkey-overlay { skip-at-startup; } animations { off; } debug { honor-xdg-activation-with-invalid-serial; } screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" // }}} // window/workspace rules {{{ // https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules // https://github.com/YaLTeR/niri/wiki/Configuration:-move-column-to-workspace workspace "one" { open-on-output "HDMI-A-1"; } workspace "two" { open-on-output "HDMI-A-1"; } workspace "tri" { open-on-output "HDMI-A-1"; } workspace "laptop" { open-on-output "eDP-1"; } window-rule { match app-id="obsidian" match app-id="discord" match app-id="org.mozilla.Thunderbird" match app-id="org.telegram.desktop" open-on-workspace "one" } window-rule { match app-id="firefox" match app-id="brave-browser" match app-id="helium" open-on-workspace "two" open-focused true } window-rule { match app-id="spotify" match app-id="org.gnome.Snapshot" match app-id="org.keepassxc.KeePassXC" open-on-workspace "laptop" } window-rule { match app-id="Spotify" match app-id="spotify" match app-id="firefox" match app-id="helium" match app-id="Brave-browser" match app-id="brave-browser" match app-id="kitty" match app-id="ghostty" match app-id="obsidian" match app-id="Code" match app-id="Zed" match app-id="discord" open-maximized true } window-rule { match app-id="pavucontrol" match app-id="blueman-manager" match app-id="xdg-desktop-portal-gtk" open-floating true } window-rule { match app-id="KeePassXC" match app-id="obsidian" match app-id="org.telegram.desktop" block-out-from "screen-capture" } // noctalia layer-rule { match namespace="^noctalia-backdrop" place-within-backdrop true } window-rule { match app-id="dev.noctalia.Noctalia" open-floating true default-column-width { fixed 1080; } default-window-height { fixed 920; } } // }}} // keybinds {{{ binds { Mod+q { close-window; } Mod+d { spawn "noctalia" "msg" "notification-clear-active"; } Mod+Alt+l { spawn "noctalia" "msg" "session" "lock"; } Mod+Shift+Escape { spawn "noctalia" "msg" "panel-toggle" "session"; } Mod+Shift+Return { spawn "noctalia" "msg" "panel-toggle" "launcher"; } Mod+Return { spawn "ghostty"; } Mod+Shift+a { spawn "anki"; } Mod+Shift+d { spawn "discord"; } Mod+Shift+s { spawn "sioyek"; } Mod+Shift+t { spawn "Telegram"; } Mod+Shift+w { spawn "helium-browser"; } // func keys {{{ XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+"; } XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%-"; } XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } XF86AudioNext { spawn "playerctl" "next"; } XF86AudioPlay { spawn "playerctl" "play-pause"; } XF86AudioPrev { spawn "playerctl" "previous"; } // brighthness XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "set" "5%-"; } XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "set" "+5%"; } // screen shots Print { screenshot; } Alt+Print { screenshot-window; } Ctrl+Print { screenshot-screen; } // }}} // wm {{{ Mod+O repeat=false { toggle-overview; } Alt+Tab { focus-window-previous; } // window management Mod+Ctrl+f { toggle-window-floating; } Mod+r { switch-preset-column-width; } Mod+t { maximize-column; } Mod+f { fullscreen-window; } Mod+Minus { set-column-width "-10%"; } Mod+Equal { set-column-width "+10%"; } Mod+h { focus-column-left; } Mod+j { focus-window-down; } Mod+k { focus-window-up; } Mod+l { focus-column-right; } Mod+Shift+h { move-column-left; } Mod+Shift+j { move-window-down; } Mod+Shift+k { move-window-up; } Mod+Shift+l { move-column-right; } // monitor navigation 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; } // workspaces 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+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+WheelScrollDown cooldown-ms=50 { focus-workspace-down; } Mod+WheelScrollUp cooldown-ms=50 { focus-workspace-up; } // }}} } // }}}