# 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`.