config-notification { disable-failed } gestures { hot-corners { off } } hotkey-overlay { skip-at-startup } animations { workspace-switch { spring damping-ratio=0.80 stiffness=523 epsilon=0.0001 } window-open { duration-ms 150 curve "ease-out-expo" } window-close { duration-ms 150 curve "ease-out-quad" } horizontal-view-movement { spring damping-ratio=0.85 stiffness=423 epsilon=0.0001 } window-movement { spring damping-ratio=0.75 stiffness=323 epsilon=0.0001 } window-resize { spring damping-ratio=0.85 stiffness=423 epsilon=0.0001 } config-notification-open-close { spring damping-ratio=0.65 stiffness=923 epsilon=0.001 } screenshot-ui-open { duration-ms 200 curve "ease-out-quad" } overview-open-close { spring damping-ratio=0.85 stiffness=800 epsilon=0.0001 } } // Window rules let you adjust behavior for individual windows. // Find more information on the wiki: // https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules // Work around WezTerm's initial configure bug // by setting an empty default-column-width. window-rule { // This regular expression is intentionally made as specific as possible, // since this is the default config, and we want no false positives. // You can get away with just app-id="wezterm" if you want. match app-id=r#"^org\.wezfurlong\.wezterm$"# default-column-width {} } window-rule { match app-id=r#"^org\.gnome\."# draw-border-with-background false geometry-corner-radius 12 clip-to-geometry true } window-rule { match app-id=r#"^gnome-control-center$"# match app-id=r#"^pavucontrol$"# match app-id=r#"^nm-connection-editor$"# default-column-width { proportion 0.5; } open-floating false } window-rule { match app-id=r#"^gnome-calculator$"# match app-id=r#"^galculator$"# match app-id=r#"^blueman-manager$"# match app-id=r#"^org\.gnome\.Nautilus$"# match app-id=r#"^xdg-desktop-portal$"# open-floating true } window-rule { match app-id=r#"^steam$"# title=r#"^notificationtoasts_\d+_desktop$"# default-floating-position x=10 y=10 relative-to="bottom-right" open-focused false } window-rule { match app-id=r#"^org\.wezfurlong\.wezterm$"# match app-id="Alacritty" match app-id="zen" match app-id="com.mitchellh.ghostty" match app-id="kitty" draw-border-with-background false } // Open dms windows as floating by default window-rule { match app-id=r#"org.quickshell$"# open-floating true } debug { honor-xdg-activation-with-invalid-serial } // Override to disable super+tab recent-windows { binds { Alt+Tab { next-window scope="output"; } Alt+Shift+Tab { previous-window scope="output"; } Alt+grave { next-window filter="app-id"; } Alt+Shift+grave { previous-window filter="app-id"; } } } // Include dms files include "dms/colors.kdl" include "dms/layout.kdl" include "dms/alttab.kdl" include "dms/binds.kdl" include "dms/outputs.kdl" include "dms/cursor.kdl" // Niri configuration // Global Settings & Environment include "./niri.d/environment.kdl" include "./niri.d/startup.kdl" // Hardware & Input include "./niri.d/input.kdl" include "./niri.d/output.kdl" // Windows and Workspaces include "niri.d/workspaces.kdl" include "niri.d/window-rules.kdl" // Look & Feel include "./niri.d/layout.kdl" include "./niri.d/animation.kdl" include "./niri.d/gestures.kdl" // Keybinds include "./niri.d/keybinds.kdl" // External Configs include "./noctalia.kdl" include "dms/windowrules.kdl"