// ─────────────────────────────────────────────────────────────────────────────
// ~/.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"
