Dotfiles/desktopenvs/niri/niri/config.kdl

40 lines
2.8 KiB
Plaintext

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