docs: rebuild KB in OKF v0.1 with live-verified facts

Copy of the legacy ~/.pi/agent/docs tree rebuilt as the command-center
knowledge base: concept files promoted to path identity, index listings
stripped of frontmatter, all wikilinks/relative links resolved, every
checkable claim verified against the live fleet (Dankserver = Ryzen 7
7700X + RTX 3090; Strix Halo is Dankclaw), unverifiable claims tagged.
kb-lint exits 0.
This commit is contained in:
Frank committed 2026-08-28 07:57:13 -07:00
1 parent 552d1ef8bf
commit 02883d3ed2
116 files changed
+13008

No files matched your search

+71
View File
@@ -0,0 +1,71 @@
---
type: reference
title: Niri Action Reference
description: Complete reference of all available niri actions — window operations, focus, movement, spawning, and system actions.
tags:
- niri
- actions
- reference
verified: 2026-08-28
---
# Action Reference
## Window/Column Actions
- `close-window` — Close focused window
- `toggle-window-floating` — Toggle floating/tiling
- `maximize-column` — Maximize column with gaps
- `maximize-window-to-edges` — Maximize without gaps
- `expand-column-to-available-width` — Fill remaining space
- `center-column` — Center focused column
- `center-visible-columns` — Center all visible columns
- `switch-preset-column-width` — Cycle preset widths
- `switch-preset-column-width-back` — Cycle backwards
- `switch-preset-window-height` — Cycle preset heights
- `reset-window-height` — Reset height
- `toggle-column-tabbed-display` — Toggle vertical tabs mode
- `consume-or-expel-window-left/right` — Consume/expel window
- `consume-window-into-column` — Consume window into column
- `expel-window-from-column` — Expel window from column
- `set-column-width "-10%"` / `set-column-width "+10%"` — Fine width adjustment
- `set-window-height "-10%"` / `set-window-height "+10%"` — Fine height adjustment
## Focus Actions
- `focus-column-left/right` — Focus adjacent column
- `focus-window-up/down` — Focus window within column
- `focus-column-first/last` — Focus first/last column
- `focus-workspace N` — Focus workspace N
- `focus-workspace-down/up` — Focus next/previous workspace
- `focus-workspace-previous` — Focus previously active workspace
- `focus-monitor-left/right/up/down` — Focus adjacent monitor
## Move Actions
- `move-column-left/right` — Move column left/right
- `move-window-up/down` — Move window within column
- `move-column-to-first/last` — Move column to edge
- `move-column-to-workspace-down/up` — Move column to adjacent workspace
- `move-column-to-workspace N` — Move column to workspace N
- `move-column-to-monitor-left/right/up/down` — Move column to adjacent monitor
## Other Actions
- `spawn "program"` — Run program (no shell expansion)
- `spawn-sh "command"` — Run command through shell
- `spawn-at-startup "program"` — Run at startup
- `quit` — Quit compositor (with confirmation)
- `show-hotkey-overlay` — Show keybind cheat sheet
- `toggle-overview` — Toggle overview
- `screenshot` — Interactive screenshot
- `screenshot-screen` — Screenshot monitor
- `screenshot-window` — Screenshot window
- `power-off-monitors` — Turn off displays
- `toggle-keyboard-shortcuts-inhibit` — Toggle inhibitor
- `do-screen-transition` — Smooth screen transition (for theme switching)
## Related
* [Default Bindings](/tools/niri/default-bindings.md) — Default key bindings that invoke these actions
* [Tips](/tools/niri/tips.md) — Programmatic invocation and other tips
+181
View File
@@ -0,0 +1,181 @@
---
type: reference
title: Niri Default Key Bindings
description: Complete table of all default key bindings organized by category — window management, navigation, workspaces, media keys, etc.
tags:
- niri
- keybindings
- reference
- unverified
---
# Default Key Bindings
## Application Launching
| Key | Action |
|-----|--------|
| `Mod+T` | Open terminal (alacritty) |
| `Mod+D` | Run application launcher (fuzzel) |
| `Super+Alt+L` | Lock screen (swaylock) |
| `Super+Alt+S` | Toggle screen reader (orca) |
## Window Management
| Key | Action |
|-----|--------|
| `Mod+Q` | Close window |
| `Mod+F` | Maximize column (with gaps) |
| `Mod+Shift+F` | Fullscreen window |
| `Mod+M` | Maximize window to edges (like double-click titlebar) |
| `Mod+Ctrl+F` | Expand column to fill remaining space |
| `Mod+V` | Toggle window floating |
| `Mod+Shift+V` | Switch focus between floating and tiling |
| `Mod+W` | Toggle column tabbed display mode |
| `Mod+BracketLeft` | Consume/expel window left |
| `Mod+BracketRight` | Consume/expel window right |
| `Mod+Comma` | Consume window into column |
| `Mod+Period` | Expel window from column |
## Column Navigation
| Key | Action |
|-----|--------|
| `Mod+Left` or `Mod+H` | Focus column left |
| `Mod+Right` or `Mod+L` | Focus column right |
| `Mod+Home` | Focus first column |
| `Mod+End` | Focus last column |
| `Mod+C` | Center focused column |
| `Mod+Ctrl+C` | Center all visible columns |
## Column Movement
| Key | Action |
|-----|--------|
| `Mod+Ctrl+Left` or `Mod+Ctrl+H` | Move column left |
| `Mod+Ctrl+Right` or `Mod+Ctrl+L` | Move column right |
| `Mod+Ctrl+Home` | Move column to first position |
| `Mod+Ctrl+End` | Move column to last position |
## Column Sizing
| Key | Action |
|-----|--------|
| `Mod+R` | Switch preset column width (1/3, 1/2, 2/3) |
| `Mod+Shift+R` | Switch preset width (reverse) |
| `Mod+Minus` | Decrease column width by 10% |
| `Mod+Equal` | Increase column width by 10% |
## Window Navigation (within column)
| Key | Action |
|-----|--------|
| `Mod+Up` or `Mod+K` | Focus window up |
| `Mod+Down` or `Mod+J` | Focus window down |
## Window Height Sizing
| Key | Action |
|-----|--------|
| `Mod+Ctrl+Shift+R` | Switch preset window height |
| `Mod+Ctrl+R` | Reset window height |
| `Mod+Shift+Minus` | Decrease window height by 10% |
| `Mod+Shift+Equal` | Increase window height by 10% |
## Multi-Monitor Navigation
| Key | Action |
|-----|--------|
| `Mod+Shift+Left` or `Mod+Shift+H` | Focus monitor left |
| `Mod+Shift+Right` or `Mod+Shift+L` | Focus monitor right |
| `Mod+Shift+Up` or `Mod+Shift+K` | Focus monitor up |
| `Mod+Shift+Down` or `Mod+Shift+J` | Focus monitor down |
## Multi-Monitor Column Movement
| Key | Action |
|-----|--------|
| `Mod+Shift+Ctrl+Left` | Move column to monitor left |
| `Mod+Shift+Ctrl+Right` | Move column to monitor right |
| `Mod+Shift+Ctrl+Up` | Move column to monitor up |
| `Mod+Shift+Ctrl+Down` | Move column to monitor down |
## Workspace Navigation
| Key | Action |
|-----|--------|
| `Mod+Page_Down` or `Mod+U` | Focus workspace down |
| `Mod+Page_Up` or `Mod+I` | Focus workspace up |
| `Mod+1` through `Mod+9` | Focus workspace 1-9 |
| `Mod+Shift+Page_Down` or `Mod+Shift+U` | Move workspace down |
| `Mod+Shift+Page_Up` or `Mod+Shift+I` | Move workspace up |
| `Mod+Tab` | Focus previous workspace (commented out by default) |
## Workspace Column Movement
| Key | Action |
|-----|--------|
| `Mod+Ctrl+Page_Down` or `Mod+Ctrl+U` | Move column to workspace down |
| `Mod+Ctrl+Page_Up` or `Mod+Ctrl+I` | Move column to workspace up |
| `Mod+Ctrl+1` through `Mod+Ctrl+9` | Move column to workspace 1-9 |
## Mouse/Touchpad Scrolling
| Key | Action |
|-----|--------|
| `Mod+WheelScrollDown` | Focus workspace down |
| `Mod+WheelScrollUp` | Focus workspace up |
| `Mod+WheelScrollRight` | Focus column right |
| `Mod+WheelScrollLeft` | Focus column left |
| `Mod+Ctrl+WheelScrollDown` | Move column to workspace down |
| `Mod+Ctrl+WheelScrollUp` | Move column to workspace up |
| `Mod+Ctrl+WheelScrollRight` | Move column right |
| `Mod+Ctrl+WheelScrollLeft` | Move column left |
| `Mod+Shift+WheelScrollDown` | Focus column right |
| `Mod+Shift+WheelScrollUp` | Focus column left |
| `Mod+Ctrl+Shift+WheelScrollDown` | Move column right |
| `Mod+Ctrl+Shift+WheelScrollUp` | Move column left |
## Overview
| Key | Action |
|-----|--------|
| `Mod+O` | Toggle overview (zoomed-out view of workspaces/windows) |
## Screenshot
| Key | Action |
|-----|--------|
| `Print` | Interactive screenshot UI |
| `Ctrl+Print` | Screenshot screen |
| `Alt+Print` | Screenshot window |
## System
| Key | Action |
|-----|--------|
| `Mod+Shift+E` | Quit niri (with confirmation) |
| `Ctrl+Alt+Delete` | Quit niri (with confirmation) |
| `Mod+Shift+P` | Power off monitors |
| `Mod+Escape` | Toggle keyboard shortcuts inhibitor |
| `Mod+Shift+/` | Show hotkey overlay |
## Media Keys
| Key | Action |
|-----|--------|
| `XF86AudioRaiseVolume` | Increase volume 10% |
| `XF86AudioLowerVolume` | Decrease volume 10% |
| `XF86AudioMute` | Toggle mute |
| `XF86AudioMicMute` | Toggle mic mute |
| `XF86AudioPlay` / `XF86AudioPause` | Play/pause |
| `XF86AudioStop` | Stop |
| `XF86AudioPrev` | Previous track |
| `XF86AudioNext` | Next track |
| `XF86MonBrightnessUp` | Increase brightness 10% |
| `XF86MonBrightnessDown` | Decrease brightness 10% |
## Related
* [Key Bindings Syntax](/tools/niri/key-bindings-syntax.md) — How to write custom bindings
* [Action Reference](/tools/niri/action-reference.md) — All available actions
+95
View File
@@ -0,0 +1,95 @@
# 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 | Complete reference of all available niri actions |
| [[default-bindings|default-bindings.md]] | reference | Default key bindings organized by category |
| [[key-bindings-syntax|key-bindings-syntax.md]] | reference | KDL configuration syntax for key bindings |
| [[tips|tips.md]] | howto | Practical tips for working with niri |
---
## See Also
- [[noctalia-shell|noctalia-shell]] — Desktop shell integration
- [[displays|displays]] — Three-monitor setup
- [[cachyos|cachyos]] — Operating system
@@ -0,0 +1,60 @@
---
type: reference
title: Niri Key Bindings Syntax
description: Configuration syntax for niri key bindings — KDL format, modifiers, bind options, and finding key names with wev.
tags:
- niri
- keybindings
- kdl
- configuration
verified: 2026-08-28
---
# Key Bindings Syntax
Key bindings go in the `binds {}` section of the config file (`~/.config/niri/config.kdl`):
```kdl
binds {
Mod+T { spawn "alacritty"; }
Mod+Left { focus-column-left; }
}
```
## Modifiers
- `Ctrl` or `Control`
- `Shift`
- `Alt`
- `Super` or `Win`
- `ISO_Level3_Shift` or `Mod5` (AltGr)
- `ISO_Level5_Shift` (for lv5 options like `lv5:caps_switch`)
- `Mod` — Special: equals `Super` on TTY, equals `Alt` in nested window
## Bind Options
```kdl
binds {
Mod+T repeat=false { spawn "alacritty"; } // Do not repeat on hold
Mod+T cooldown-ms=500 { spawn "alacritty"; } // Rate-limit
Super+Alt+L allow-when-locked=true { spawn "swaylock"; } // Works when locked
Mod+Q hotkey-overlay-title="Close Window" { close-window; } // Custom title in overlay
Mod+Escape allow-inhibiting=false { ... } // Always works (even with inhibitors)
}
```
## Finding Key Names
Use [`wev`](https://git.sr.ht/~sircmpwn/wev) to find XKB key names:
```bash
wev
# Then press the key you want to bind — look at `sym: XXXX` in output
```
Shifted keys require Shift + the unshifted key (for example, `Mod+Shift+Comma` for `<` on US QWERTY).
## Related
* [Default Key Bindings](/tools/niri/default-bindings.md) — What niri ships with out of the box
* [Action Reference](/tools/niri/action-reference.md) — All available actions
+41
View File
@@ -0,0 +1,41 @@
---
type: howto
title: Niri Tips and Gotchas
description: Practical tips for working with niri — Mod key behavior, shell expansion, config reload, vim keys, and programmatic invocation.
tags:
- niri
- tips
- gotchas
verified: 2026-08-28
---
# Helpful Tips
## 1. Mod key
Use `Mod` instead of `Super` for configs that work both on TTY and in nested windows.
## 2. No shell expansion in spawn
`spawn` does not expand `$VAR` or `~`. Use `spawn-sh` or wrap in `sh -c`.
## 3. Config reload
niri supports live-reloading config without restart.
## 4. Alternative navigation
Vim-like keys (H/J/K/L) are bound by default alongside arrow keys.
## 5. Programmatic invocation
Every action can be invoked via `niri msg action <action-name>`.
## 6. Find XKB keys
Use `wev` to discover key names.
## Related
* [Key Bindings Syntax](/tools/niri/key-bindings-syntax.md) — Configuration details
* [Action Reference](/tools/niri/action-reference.md) — All available actions