Files
niri/config.kdl
T

196 lines
5.1 KiB
KDL

// ============================================================================
// 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