mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 11:32:42 +00:00
niri (exact_config.d, scripts), noctalia (plugins excluded — runtime state with embedded token), fontconfig, mimeapps.list, niri-dynamic-workspaces, systemd user unit files (enable-state not managed; only nirinit enabled by run_once), niri-launch vendored from /usr/bin (unowned hand-written script, shellcheck warnings pre-existing). Scripts: packages (pacman --needed + paru, brew on darwin, root-safe, keyed on packages.yaml hash), gh extensions (idempotent), user services (linux), post (tpm clone, bat cache, fc-cache). All shellcheck-clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
196 lines
5.1 KiB
KDL
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
|