diff --git a/omp-docs/log.md b/omp-docs/log.md index d3e1792..7b09a92 100644 --- a/omp-docs/log.md +++ b/omp-docs/log.md @@ -27,8 +27,8 @@ long form. ### A desk with no matching profile is silently misconfigured `desk-2-portable.kdl` stopped being a skeleton: the two PM1601 16" panels are -identity-keyed (`PNP(XYM) PM1601 0000000000000`, `… demoset-1`), the laptop sits -centred against their 1920-tall band, and `display.kdl` points at it. Law: a rig +identity-keyed (`PNP(XYM) PM1601 0000000000000`, `… demoset-1`), laid out +landscape either side of the laptop, and `display.kdl` points at it. Law: a rig with no eligible profile does not run "unchanged" — it runs whatever the *last* profile said. Here that was the home profile, whose Sceptre identity block never matched and whose connectors still carried `3440x1440@180.000`, so niri fell back diff --git a/omp-docs/tools/niri/displays.md b/omp-docs/tools/niri/displays.md index ec64e60..d3afe65 100644 --- a/omp-docs/tools/niri/displays.md +++ b/omp-docs/tools/niri/displays.md @@ -60,20 +60,28 @@ the ultrawide wins when present and the laptop panel is the fallback. ## The desk-2 rig (portable) -Laptop plus two 16" PM1601 panels in portrait, side by side as one 2400x1920 -band. Profile: `cfg/desk-2-portable.kdl` (`display.kdl` symlinks to it). +Laptop flanked by the two 16" PM1601 panels, all three landscape. Profile: +`cfg/desk-2-portable.kdl` (`display.kdl` symlinks to it). ``` -┌──────────────┬──────────┬──────────┐ -│ │ PM1601 │ PM1601 │ eDP-1 1920x1080 normal x=0,y=420 -│ │ rot 90 │ rot 90 │ DP-2 1200x1920 rot 90 x=1920,y=0 -│ eDP-1 │ 1200x1920│ 1200x1920│ HDMI-A-1 1200x1920 rot 90 x=3120,y=0 -│ 1920x1080 │ (DP-2) │(HDMI-A-1)│ -│ │ │ │ The laptop is pinned 420 px down so its -└──────────────┴──────────┴──────────┘ centre (960) meets the band's centre: - x=0,y=420 x=1920,0 x=3120,0 no dead corner when the cursor crosses. +┌──────────┬──────────────┬──────────┐ +│ PM1601 │ │ PM1601 │ HDMI-A-1 1920x1200 normal x=0,y=0 +│ 1920x1200│ eDP-1 │ 1920x1200│ eDP-1 1920x1080 normal x=1920,y=60 +│(HDMI-A-1)│ 1920x1080 │ (DP-2) │ DP-2 1920x1200 normal x=3840,y=0 +│ │ │ │ +└──────────┴──────────────┴──────────┘ The laptop is 60 px down so it is + x=0,y=0 x=1920,y=60 x=3840,y=0 centred against the taller panels. + +HDMI-A-1 sits to the LEFT of the laptop by request (2026-10-30); DP-2 keeps the +right. Earlier the same rig ran both panels in portrait (rot 90, 1200x1920) with +the laptop and both panels to its right — the rotation is `normal` now, so the +panels are 1920 wide and every x moved. ``` +Positions are absolute in logical space, so rotating a panel changes its logical +width (1200 → 1920) and every x to its right; recompute the whole row, never just +the rotated block. + All three blocks are identity-keyed and pin their mode string verbatim. The `requires:` list names all three panels, so the matcher only claims this profile when the whole rig is present — unplug one 16" panel and the watcher leaves the