Files
command-center/omp-docs/tools/niri/index.md
T
Frank f1e0b6583d docs: distill the retired workstation's KB pages into general pages
Frank's call: no per-host graveyard. The four /system/dankware/ pages carried
two pieces of knowledge that outlive the box, and one that does not.

Distilled:
- omp-docs/system/network.md (new) — LAN topology plus the multi-link resolver
  law: a client with two +DefaultRoute links flaps its DNS, and the fix is a
  static per-connection resolver, not resolved.conf. Keeps the
  flush-caches-loop verification, because one successful dig proves nothing.
- omp-docs/tools/niri/displays.md (new) — the multi-monitor rig: portrait
  transforms, absolute positions, auto-placed third panel, the iGPU
  render-node pin, and the three failure modes (duplicate output blocks,
  positions that do not reflow, a mode the panel cannot drive).

Dropped: the machine's own spec sheet (CPU/GPU/PCI/NVMe inventory for a box
Frank sold) and its quick-facts table. The OS and userspace facts it repeated
already live in tools/cachyos.md.

omp-docs/system/dankware/ moved to .AGENTTRASH/20260928-retired-workstation/
(not deleted; git history holds it too). system/index.md and the niri index
repoint; niri's [[displays]] wikilink now resolves to the new page instead of
the trashed one. kb-lint: 0 violations.
2026-09-28 16:15:57 -07:00

3.4 KiB

Niri Wayland Compositor

Niri is a scrollable-tiling Wayland compositor. Windows are arranged in columns that scroll horizontally. It uses KDL-format configuration with an include-based modular structure.

Version: 26.04 (8ed0da4) Config: ~/.config/niri/config.kdl


Configuration Structure

~/.config/niri/
├── config.kdl          # Main entry, includes all modules
└── cfg/
    ├── animation.kdl   # Spring and curve animations
    ├── autostart.kdl   # Startup applications
    ├── display.kdl     # Output configuration
    ├── input.kdl       # Keyboard, touchpad, mouse
    ├── keybinds.kdl    # All key bindings
    ├── layout.kdl      # Gaps, column widths, struts
    ├── rules.kdl       # Window and layer rules
    └── misc.kdl        # Environment, cursor, debug

Layout

Column-based scrollable tiling. Columns are cycled with Mod+Left/Right (or Mod+H/L). Windows within columns stack vertically.

Setting Value
Gaps 16px
Center focused column Never
Background Transparent (for Noctalia wallpaper)
Column presets 33%, 50%, 67%

Input

Setting Value
Focus follows mouse Enabled
Workspace back-and-forth Enabled
Numlock Enabled on startup
Touchpad tap Enabled
Natural scroll Enabled

Window Rules

Rule Match Effect
All windows — 20px corner radius, clipped
Steam (non-window) app-id="steam", exclude title Steam Open floating
Steam notifications app-id="steam", title notificationtoasts_* Floating, bottom-right
Noctalia wallpaper namespace noctalia-wallpaper* Place in backdrop

Environment Variables

Variable Value Purpose
ELECTRON_OZONE_PLATFORM_HINT auto Electron Wayland support
QT_QPA_PLATFORM wayland Qt Wayland
QT_QPA_PLATFORMTHEME gtk3 Qt GTK theme
QT_WAYLAND_DISABLE_WINDOWDECORATION 1 Remove Qt CSD
XDG_CURRENT_DESKTOP niri Desktop identification
XDG_SESSION_TYPE wayland Session type
render-node /dev/dri/renderD129 Intel Arc iGPU

Animations

Animation Type Parameters
Workspace switch Spring damping=1.0, stiffness=1000
Window open Duration 200ms, ease-out-quad
Window close Duration 200ms, ease-out-cubic
Window movement Spring damping=1.0, stiffness=800
Window resize Spring damping=1.0, stiffness=1000

Concept Files

File Type Description
[[action-reference action-reference.md]] reference
[[default-bindings default-bindings.md]] reference
[[key-bindings-syntax key-bindings-syntax.md]] reference
[[tips tips.md]] howto
[[displays displays.md]] reference

See Also