// ───────────────────────────────────────────────────────────────────────────── // ~/.config/niri/config.kdl // Niri scrollable-tiling Wayland compositor — CyberQueer config // // PURPOSE: Root configuration entry-point for the niri compositor. // This file does not contain settings directly — it delegates all // configuration sections to separate module files so each concern // (input, outputs, layout, etc.) can be edited independently. // // STRUCTURE: niri supports a flat `include` directive that merges KDL files // before parsing, so the split is purely organisational. // // REFERENCE: https://github.com/YaLTeR/niri/wiki/Configuration:-Overview // ───────────────────────────────────────────────────────────────────────────── // ── Module includes ─────────────────────────────────────────────────────────── // Each file below is merged verbatim into this config at parse time. // The order matters only when settings in later files override earlier ones. include "modules/input.kdl" // Keyboard, touchpad, mouse, focus behaviour include "modules/outputs.kdl" // Monitor/display declarations and positions include "modules/layout.kdl" // Gaps, column widths, focus ring, struts include "modules/animations.kdl" // Spring / easing curves for all transitions include "modules/environment.kdl" // Env vars passed to every child process + cursor include "modules/autostart.kdl" // Programs launched when niri starts include "modules/window-rules.kdl" // Per-app floating, sizing, opacity overrides include "modules/binds.kdl" // All keyboard and mouse bindings // ── Global preferences ──────────────────────────────────────────────────────── // prefer-no-csd: Tell clients to draw without client-side decorations (title bars). // WHY: niri renders its own focus ring / border; double-decorations look wrong. // Apps that respect this (most GTK/Qt apps) gain a cleaner appearance. prefer-no-csd // screenshot-path: Where niri saves full-compositor screenshots (Print key). // WHY: Organise screenshots in a dedicated folder with a human-readable timestamp. // strftime-style % tokens are expanded at capture time. screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"