--home-blank-.omp--: MEMORY.md +140 / learned.md / memory_summary.md / raw_memories.md +1002 rewritten by auto-learn after the model rename, frank-medium split-balance and bottleneck studies. Skills renamed to single-topic buckets: dotfile-git-workflow -> ghostty-text-aa + niri-display-rotation + noctalia-theme, handy-service-mgmt -> handy-flm-inference, inference-runtime -> llama-cpp-parallelism. --home-blank-Projects-serverAppConfig--: 38 new rollout summaries, raw_memories.md/MEMORY.md refreshed, skills re-bucketed (bench-protocol, llm-fleet-model-swap, rootless-quadlet-log-retrieval, orchestration-quadlet). Per-worktree bucket (wt-20261006-122204) is now gitignored, not committed.
27 lines
1.1 KiB
Markdown
27 lines
1.1 KiB
Markdown
# Niri Display Rotation Workflow
|
|
|
|
Used to rotate/flip external monitors in portrait mode.
|
|
|
|
## Workflow
|
|
1. `niri msg outputs` — capture current transform, logical size, scale, position.
|
|
2. Read `~/.config/niri/cfg/display.kdl`.
|
|
3. Edit `transform` values.
|
|
4. `niri validate -c ~/.config/niri/cfg/display.kdl` — dry-run validation.
|
|
5. `niri msg action load-config-file` — hot-reload (no restart).
|
|
6. `niri msg outputs | grep -E '^Output|Transform|Logical|Scale'` — verify.
|
|
7. `git add && git commit && git push` in dotfiles repo (`~/.omp`).
|
|
|
|
## Critical pitfall
|
|
- In portrait, "flip 180°" = swap `90° counter-clockwise` ↔ `270° counter-clockwise`.
|
|
- Setting `transform "180"` on a portrait monitor kicks it to landscape-upside-down.
|
|
- Niri transform values are absolute, NOT modular arithmetic.
|
|
|
|
## Verified layout (blankpad, 83c9c92)
|
|
- DP-2: x=0, portrait 1200x1920, transform 90° CCW, scale 1
|
|
- HDMI-A-1: x=1200, portrait 1200x1920, transform 270° CCW, scale 1
|
|
- eDP-1: x=2400, 1536x864, scale 1.25
|
|
|
|
## Config split
|
|
- `~/.config/niri/cfg/*.kdl` (Noctalia-style includes).
|
|
- Display config lives in `~/.config/niri/cfg/display.kdl`.
|