Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-792GitHub issuePublicDecided· Out of scope

Live monitor scale change (Display panel / hl.monitor eval) desyncs multi-monitor position, causing overlap or vertical offset

Reported by straylight · filed Sep 9, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 days ago.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
AreaOutside the audited area· Decided by agents · verified
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Decided by agents and verified by a second, independent agent — see the decision.

Original report

Live monitor scale change (Display panel / hl.monitor eval) desyncs multi-monitor position, causing overlap or vertical offsetrevision 1 · captured 2026-09-28 21:23 UTC via poll

What happened

On a 2-monitor Hyprland/Omarchy setup with one monitor's position set literally (0x0) and the other set to "auto" (so it stays flush against the first regardless of scale), changing the first monitor's scale live reliably desyncs the layout in one of two ways:

  1. Overlap: changing only the scaled monitor's scale (e.g. via the Display bar panel's brightness/scale slider, or an equivalent hl.monitor({...}) live eval) does not recompute the other monitor's "auto" position. The two monitors then overlap in logical space, and Hyprland throws its persistent "Your monitor layout is set up incorrectly" warning banner — which visually covers the bar's tray icons (bluetooth, network, volume, etc.) since the bar sits at the top.
  2. Vertical offset drift: reprocessing the monitor config at all (even a hl.monitor() eval that only touches the other monitor, to fix the overlap above) causes the literally-positioned monitor (position = "0x0") to snap to a stray vertical offset (observed: 0x266) instead of staying at 0x0, even though the config file itself is untouched and still correct. hyprctl reload alone does not fix this — only re-issuing hl.monitor(...) for that specific output via hyprctl eval snaps it back to 0x0.

Additionally, the bar's Display (omarchy.monitor) panel can be left in a stuck "open" visual state after a scale change interrupts it — showing its back-arrow/brightness-OSD chrome in place of the normal bar icon — until omarchy restart shell is run.

Expected

Changing a monitor's scale (live, via the Display panel) should keep any position = "auto" monitor correctly recomputed and flush, should never leave a position = "0x0" monitor drifted to a stray offset, and should not leave the bar's panel widget stuck mid-transition.

Steps to reproduce

~/.config/hypr/monitors.lua:

hl.monitor({ output = "HDMI-A-1", mode = "preferred", position = "0x0", scale = 1.25 })
hl.monitor({ output = "DP-3", mode = "[email protected]", position = "auto", scale = 1 })
  1. Confirm starting layout is correct: hyprctl monitors shows HDMI-A-1 at 0x0 and DP-3 at 1536x0 (flush).
  2. Change HDMI-A-1's scale to 1 live (via the Display bar panel's slider, or equivalently hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@60", position = "0x0", scale = 1 })').
  3. Observe: DP-3 is still at 1536x0, but HDMI-A-1 is now 1920px wide logically → overlap → Hyprland shows the misconfigured-layout warning banner, covering the bar tray.
  4. Try to fix by re-applying DP-3's auto position: hyprctl eval 'hl.monitor({ output = "DP-3", mode = "[email protected]", position = "auto", scale = 1 })'.
  5. Observe: overlap is resolved, but HDMI-A-1 has now reverted to scale 1.25 (from the file) at position 0x266 instead of 0x0 — a fresh vertical-offset bug — even though this eval call never mentioned HDMI-A-1.
  6. Also observed independently: after any live scale change, the bar's Display widget can be left showing its panel-open chrome (back arrow + inline brightness OSD) instead of collapsing back to its normal icon, until omarchy restart shell.

System details

  • Omarchy version: 4.0.3-1
  • Hyprland: 0.56.2 (v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f)
  • Kernel: Linux 7.1.9-arch1-2
  • GPU: AMD Radeon RX 5700 XT (Navi 10, amdgpu driver)
  • Monitors: ASUS VS229 22" (HDMI-A-1, 1920x1080@60) + ASUS VG27A 27" (DP-3, [email protected])

omarchy debug --no-sudo --print is not a valid command on this Omarchy version (4.0.3-1) — omarchy commands --all has no debug/diagnostic entry, so no diagnostic log is attached.

Capture

Screenshot of the overlap warning banner covering the bar tray is attached below (drag-and-dropped separately).

View raw text
## What happened

On a 2-monitor Hyprland/Omarchy setup with one monitor's `position` set literally (`0x0`) and the other set to `"auto"` (so it stays flush against the first regardless of scale), changing the first monitor's scale live reliably desyncs the layout in one of two ways:

1. **Overlap**: changing only the scaled monitor's `scale` (e.g. via the Display bar panel's brightness/scale slider, or an equivalent `hl.monitor({...})` live eval) does not recompute the other monitor's `"auto"` position. The two monitors then overlap in logical space, and Hyprland throws its persistent "Your monitor layout is set up incorrectly" warning banner — which visually covers the bar's tray icons (bluetooth, network, volume, etc.) since the bar sits at the top.
2. **Vertical offset drift**: reprocessing the monitor config at all (even a `hl.monitor()` eval that only touches the *other* monitor, to fix the overlap above) causes the literally-positioned monitor (`position = "0x0"`) to snap to a stray vertical offset (observed: `0x266`) instead of staying at `0x0`, even though the config file itself is untouched and still correct. `hyprctl reload` alone does not fix this — only re-issuing `hl.monitor(...)` for that specific output via `hyprctl eval` snaps it back to `0x0`.

Additionally, the bar's Display (`omarchy.monitor`) panel can be left in a stuck "open" visual state after a scale change interrupts it — showing its back-arrow/brightness-OSD chrome in place of the normal bar icon — until `omarchy restart shell` is run.

## Expected

Changing a monitor's scale (live, via the Display panel) should keep any `position = "auto"` monitor correctly recomputed and flush, should never leave a `position = "0x0"` monitor drifted to a stray offset, and should not leave the bar's panel widget stuck mid-transition.

## Steps to reproduce

`~/.config/hypr/monitors.lua`:
```lua
hl.monitor({ output = "HDMI-A-1", mode = "preferred", position = "0x0", scale = 1.25 })
hl.monitor({ output = "DP-3", mode = "[email protected]", position = "auto", scale = 1 })
```

1. Confirm starting layout is correct: `hyprctl monitors` shows HDMI-A-1 at `0x0` and DP-3 at `1536x0` (flush).
2. Change HDMI-A-1's scale to `1` live (via the Display bar panel's slider, or equivalently `hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@60", position = "0x0", scale = 1 })'`).
3. Observe: DP-3 is still at `1536x0`, but HDMI-A-1 is now 1920px wide logically → overlap → Hyprland shows the misconfigured-layout warning banner, covering the bar tray.
4. Try to fix by re-applying DP-3's `auto` position: `hyprctl eval 'hl.monitor({ output = "DP-3", mode = "[email protected]", position = "auto", scale = 1 })'`.
5. Observe: overlap is resolved, but HDMI-A-1 has now reverted to scale `1.25` (from the file) at position `0x266` instead of `0x0` — a fresh vertical-offset bug — even though this eval call never mentioned HDMI-A-1.
6. Also observed independently: after any live scale change, the bar's Display widget can be left showing its panel-open chrome (back arrow + inline brightness OSD) instead of collapsing back to its normal icon, until `omarchy restart shell`.

## System details

- Omarchy version: 4.0.3-1
- Hyprland: 0.56.2 (v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f)
- Kernel: Linux 7.1.9-arch1-2
- GPU: AMD Radeon RX 5700 XT (Navi 10, amdgpu driver)
- Monitors: ASUS VS229 22" (HDMI-A-1, 1920x1080@60) + ASUS VG27A 27" (DP-3, [email protected])

`omarchy debug --no-sudo --print` is not a valid command on this Omarchy version (4.0.3-1) — `omarchy commands --all` has no debug/diagnostic entry, so no diagnostic log is attached.

## Capture

Screenshot of the overlap warning banner covering the bar tray is attached below (drag-and-dropped separately).

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

  • Out of scopeDecided by agents · verified · 2026-10-09 11:16 UTC