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-1842GitHub issuePublicFixed

...

Reported by vidsanchez · filed Aug 15, 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

...revision 1 · captured 2026-09-28 21:29 UTC via poll

Bug: internal panel forced to scale 2 on every idle wake (omarchy system wake)

Summary

On a laptop whose monitors.lua keeps scale = "auto" for the internal panel
and which has no saved scale state file, dismissing the screensaver (or any
idle-cycle cancel) runs omarchy system wake, which drives
omarchy-hyprland-monitor-clamshell to set the internal monitor to scale 2.
Everything renders at 2x — the user perceives it as "the resolution changed
after the screensaver." The monitor mode never actually changes.

Expected behavior

omarchy system wake should leave the internal panel at its current scale
(scale 1 for a 1280x800 LVDS panel whose config says scale = "auto").

Actual behavior

After every screensaver dismissal, hyprctl monitors reports the internal
monitor at scale: 2 until a later hyprctl reload re-applies scale = auto.

Steps to reproduce

  1. Fresh Omarchy install on a laptop with a single built-in panel.
  2. Default ~/.config/hypr/monitors.lua (catch-all `hl.monitor({ output = "",

mode = "preferred", position = "auto", scale = omarchy_monitor_scale })`
with local omarchy_monitor_scale = "auto"), and no
~/.local/state/omarchy/toggles/hypr/internal-monitor-scale file.
3. Let the screensaver run (idle 150 s), then dismiss it.
4. Check hyprctl monitors → internal monitor scale is now 2.

Running omarchy system wake reproduces it directly.

Root cause

/usr/share/omarchy/bin/omarchy-hyprland-monitor-clamshell,
read_monitor_scale():

  • configured_monitor_scale() resolves the configured scale from

monitors.lua to the string "auto".
- valid_scale "auto" fails (only accepts ^[0-9]+([.][0-9]+)?$).
- The state file internal-monitor-scale does not exist, so the fallback
echo 2 is used.
- sync_internal_scale() then applies scale = 2 to the internal monitor via
enable_internal_output, because the live scale (1) does not match.

omarchy system wake → omarchy-hyprland-monitor-clamshell → since the lid is
open and no external monitor is active → enable_internal →
sync_internal_scale → scale forced to 2.

Suggested fix

Either:

  • Accept "auto" as a valid scale in read_monitor_scale() / valid_scale()

and skip re-applying when the configured scale is "auto" (let Hyprland
keep its auto-computed scale), or
- Fall back to the live current scale from hyprctl monitors before falling
back to the hard-coded 2.

Workaround (user config)

Add an explicit numeric-scale rule for the internal panel in
~/.config/hypr/monitors.lua:

hl.monitor({ output = "LVDS-1", mode = "preferred", position = "auto", scale = 1 })

System details

  • Omarchy: 4.0.0-1
  • Host: MacBook Pro (13-inch, Mid 2012)
  • Kernel: Linux 7.1.8-arch1-3 (x86_64)
  • CPU: Intel Core i7-3520M
  • GPU: Intel HD Graphics 4000 (i915, driver loaded)
  • WM: Hyprland 0.56.2 (Wayland)
  • Internal display: LVDS-1, [email protected], single available mode

Logs / evidence

mode never changes; the change is purely the Hyprland scale.
- Idle service journal:
- idle-cycle-cancel: screensaver-dismissed
- process-start: wake omarchy-system-wake

View raw text
# Bug: internal panel forced to scale 2 on every idle wake (`omarchy system wake`)

## Summary

On a laptop whose `monitors.lua` keeps `scale = "auto"` for the internal panel
and which has no saved scale state file, dismissing the screensaver (or any
idle-cycle cancel) runs `omarchy system wake`, which drives
`omarchy-hyprland-monitor-clamshell` to set the internal monitor to **scale 2**.
Everything renders at 2x — the user perceives it as "the resolution changed
after the screensaver." The monitor mode never actually changes.

## Expected behavior

`omarchy system wake` should leave the internal panel at its current scale
(scale 1 for a 1280x800 LVDS panel whose config says `scale = "auto"`).

## Actual behavior

After every screensaver dismissal, `hyprctl monitors` reports the internal
monitor at `scale: 2` until a later `hyprctl reload` re-applies `scale = auto`.

## Steps to reproduce

1. Fresh Omarchy install on a laptop with a single built-in panel.
2. Default `~/.config/hypr/monitors.lua` (catch-all `hl.monitor({ output = "",
   mode = "preferred", position = "auto", scale = omarchy_monitor_scale })`
   with `local omarchy_monitor_scale = "auto"`), and no
   `~/.local/state/omarchy/toggles/hypr/internal-monitor-scale` file.
3. Let the screensaver run (idle 150 s), then dismiss it.
4. Check `hyprctl monitors` → internal monitor `scale` is now `2`.

Running `omarchy system wake` reproduces it directly.

## Root cause

`/usr/share/omarchy/bin/omarchy-hyprland-monitor-clamshell`,
`read_monitor_scale()`:

- `configured_monitor_scale()` resolves the configured scale from
  `monitors.lua` to the string `"auto"`.
- `valid_scale "auto"` fails (only accepts `^[0-9]+([.][0-9]+)?$`).
- The state file `internal-monitor-scale` does not exist, so the fallback
  `echo 2` is used.
- `sync_internal_scale()` then applies `scale = 2` to the internal monitor via
  `enable_internal_output`, because the live scale (1) does not match.

`omarchy system wake` → `omarchy-hyprland-monitor-clamshell` → since the lid is
open and no external monitor is active → `enable_internal` →
`sync_internal_scale` → scale forced to 2.

## Suggested fix

Either:

- Accept `"auto"` as a valid scale in `read_monitor_scale()` / `valid_scale()`
  and skip re-applying when the configured scale is `"auto"` (let Hyprland
  keep its auto-computed scale), or
- Fall back to the live current scale from `hyprctl monitors` before falling
  back to the hard-coded `2`.

## Workaround (user config)

Add an explicit numeric-scale rule for the internal panel in
`~/.config/hypr/monitors.lua`:

```lua
hl.monitor({ output = "LVDS-1", mode = "preferred", position = "auto", scale = 1 })
```

## System details

- Omarchy: 4.0.0-1
- Host: MacBook Pro (13-inch, Mid 2012)
- Kernel: Linux 7.1.8-arch1-3 (x86_64)
- CPU: Intel Core i7-3520M
- GPU: Intel HD Graphics 4000 (i915, driver loaded)
- WM: Hyprland 0.56.2 (Wayland)
- Internal display: LVDS-1, [email protected], single available mode

## Logs / evidence

- Hyprland log: only `drm: Modesetting LVDS-1 with [email protected]` — the
  mode never changes; the change is purely the Hyprland `scale`.
- Idle service journal:
  - `idle-cycle-cancel: screensaver-dismissed`
  - `process-start: wake omarchy-system-wake`

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

  • Fixed bypr/8982· confirmed

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 04:08 UTC