// ============================================================================ // NIRI CONFIGURATION - Base for iNiR (ii) // ============================================================================ // Minimal base config - customize to your needs // Wiki: https://github.com/YaLTeR/niri/wiki/Configuration:-Introduction // ============================================================================ hotkey-overlay { skip-at-startup } screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" include "config.d/10-input-and-cursor.kdl" include "config.d/20-layout-and-overview.kdl" include "config.d/30-window-rules.kdl" include "config.d/40-environment.kdl" include "config.d/50-startup.kdl" include "config.d/60-animations.kdl" include "config.d/70-binds.kdl" include "config.d/80-layer-rules.kdl" include "config.d/90-outputs.kdl" // ============================================================================ // Layer rules added by iNiR (required for backdrop in overview) // ============================================================================ input { keyboard { xkb { layout "us" } repeat-delay 400 repeat-rate 50 } touchpad { natural-scroll tap tap-button-map "left-right-middle" } mod-key "Super" mod-key-nested "Alt" } // ============================================================================ // LAYOUT // ============================================================================ layout { background-color "transparent" default-column-width { proportion 0.5; } preset-column-widths { proportion 0.33333 proportion 0.5 proportion 0.66667 } focus-ring { width 1.5 active-color "#7fc8ff" inactive-color "transparent" } border { off width 1.5 active-color "#ffc87f" inactive-color "transparent" urgent-color "#9b0000" } shadow { off softness 30 spread 5 offset x=0 y=5 color "#0007" } tab-indicator { place-within-column hide-when-single-tab position "left" // Can be "left", "right", "top", or "bottom" } } gestures { hot-corners { off } } cursor { xcursor-theme "capitaine-cursors-light" xcursor-size 24 hide-when-typing } overview { zoom 0.4 workspace-shadow { off; } } // ============================================================================ // WINDOW RULES // ============================================================================ window-rule { geometry-corner-radius 8 clip-to-geometry true } // ============================================================================ // ANIMATIONS // ============================================================================ // Tuned to complement quickshell's expressive Material motion curves // QS uses ~500ms for main movements, ~400ms enter, ~200ms exit animations { workspace-switch { spring damping-ratio=0.78 stiffness=1350 epsilon=0.0001 } window-open { spring damping-ratio=0.82 stiffness=1125 epsilon=0.0001 } window-close { spring damping-ratio=0.88 stiffness=2025 epsilon=0.0001 } horizontal-view-movement { spring damping-ratio=0.80 stiffness=1238 epsilon=0.0001 } window-movement { spring damping-ratio=0.85 stiffness=1463 epsilon=0.0001 } window-resize { spring damping-ratio=0.88 stiffness=1575 epsilon=0.0001 } config-notification-open-close { spring damping-ratio=0.90 stiffness=1800 epsilon=0.0001 } screenshot-ui-open { spring damping-ratio=0.85 stiffness=1688 epsilon=0.0001 } } // ============================================================================ // ENVIRONMENT // ============================================================================ environment { XDG_CURRENT_DESKTOP "niri" XDG_MENU_PREFIX "plasma-" // Required for Dolphin/KDE app file associations QT_QPA_PLATFORM "wayland" ELECTRON_OZONE_PLATFORM_HINT "auto" QT_LOGGING_RULES "quickshell.dbus.properties=false" // Qt theming: kde platform reads colors from kdeglobals (requires plasma-integration pkg) // The installer falls back to qt6ct only if plasma-integration is not installed QT_QPA_PLATFORMTHEME "kde" QT_STYLE_OVERRIDE "Darkly" // Quickshell Python virtual environment INIR_VENV "$HOME/.local/state/quickshell/.venv" ILLOGICAL_IMPULSE_VIRTUAL_ENV "$HOME/.local/state/quickshell/.venv" } // ============================================================================ // STARTUP — commands live in config.d/50-startup.kdl // ============================================================================ // Noctalia v5: allows notification actions and window activation from Noctalia. debug { honor-xdg-activation-with-invalid-serial } // ============================================================================ // KEYBINDINGS // ============================================================================ include "./noctalia.kdl" prefer-no-csd