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.
3.4 KiB
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
- noctalia-shell — Desktop shell integration
- displays — Multi-monitor desk rig configuration
- cachyos — Operating system