Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA 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.
Display panel can't toggle monitors on Hyprland 0.56: `hyprctl keyword` silently no-ops (Lua config)
Reported by Baniel83 · filed Aug 15, 2026Closed upstream on 2026-10-04 by the bot omarchybot; the closing comment says it was fixed by PR #13725. GitHub close reason: completed.
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?
- Not yet mapped to any requirement or component.
- 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?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.
Original report
Describe the bug
The Display panel (omarchy.monitor) cannot toggle displays on Hyprland 0.56 (quattro). Clicking a monitor row to disable or re-enable it does nothing.
Panel.qml line 303 runs:
actionProc.command = ["hyprctl", "keyword", "monitor", name + (enabled ? ",disable" : ",preferred,auto,auto")]Since Hyprland 0.55 the compositor is configured with Lua and the legacy keyword parser is gone; the command fails with:
keyword can't work with non-legacy parsers. Use eval.The panel's Process reads stdout only, so the stderr error is silent and the toggle just no-ops.
Expected behavior
Clicking a display row toggles that display off/on, and the panel row updates to reflect the new state.
Actual behavior
Nothing changes; the monitor stays in its previous state.
Steps to reproduce
- Open the Display panel (
omarchy.monitor). - Click a monitor row (e.g.
HDMI-A-1) to disable it. - Nothing happens.
- Reproduce directly:
hyprctl keyword monitor HDMI-A-1,disableprintskeyword can't work with non-legacy parsers. Use eval.
Suggested fix
Use hyprctl eval with the Lua monitor API (verified working on Hyprland 0.56.2):
actionProc.command = ["hyprctl", "eval", "hl.monitor({ output = \"" + name + "\", disabled = " + enabled + " })"]JS booleans stringify to lowercase true/false, which is valid Lua; re-enabling with disabled = false brings the monitor back at its preferred mode/position, matching the intent of ,preferred,auto,auto.
Affected file: /usr/share/omarchy/shell/plugins/panels/monitor/Panel.qml line 303.
Environment
- Omarchy: 4.0.0-1 (stable)
- Kernel: 7.1.8-zen1-3-zen
- Hyprland: 0.56.2 (branch v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f)
- CPU: AMD Ryzen 7 9800X3D
- GPU: GeForce RTX 4080 SUPER
- Monitor: LG 38GN950 (DP-1, 3840x1600@144) + LG TV (HDMI-A-1, 3840x2160@60)
View raw text
### Describe the bug
The Display panel (`omarchy.monitor`) cannot toggle displays on Hyprland 0.56 (quattro). Clicking a monitor row to disable or re-enable it does nothing.
`Panel.qml` line 303 runs:
```js
actionProc.command = ["hyprctl", "keyword", "monitor", name + (enabled ? ",disable" : ",preferred,auto,auto")]
```
Since Hyprland 0.55 the compositor is configured with Lua and the legacy `keyword` parser is gone; the command fails with:
```
keyword can't work with non-legacy parsers. Use eval.
```
The panel's `Process` reads stdout only, so the stderr error is silent and the toggle just no-ops.
### Expected behavior
Clicking a display row toggles that display off/on, and the panel row updates to reflect the new state.
### Actual behavior
Nothing changes; the monitor stays in its previous state.
### Steps to reproduce
1. Open the Display panel (`omarchy.monitor`).
2. Click a monitor row (e.g. `HDMI-A-1`) to disable it.
3. Nothing happens.
4. Reproduce directly: `hyprctl keyword monitor HDMI-A-1,disable` prints `keyword can't work with non-legacy parsers. Use eval.`
### Suggested fix
Use `hyprctl eval` with the Lua monitor API (verified working on Hyprland 0.56.2):
```js
actionProc.command = ["hyprctl", "eval", "hl.monitor({ output = \"" + name + "\", disabled = " + enabled + " })"]
```
JS booleans stringify to lowercase `true`/`false`, which is valid Lua; re-enabling with `disabled = false` brings the monitor back at its preferred mode/position, matching the intent of `,preferred,auto,auto`.
Affected file: `/usr/share/omarchy/shell/plugins/panels/monitor/Panel.qml` line 303.
### Environment
- Omarchy: 4.0.0-1 (stable)
- Kernel: 7.1.8-zen1-3-zen
- Hyprland: 0.56.2 (branch v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f)
- CPU: AMD Ryzen 7 9800X3D
- GPU: GeForce RTX 4080 SUPER
- Monitor: LG 38GN950 (DP-1, 3840x1600@144) + LG TV (HDMI-A-1, 3840x2160@60)
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.
No decision has been recorded yet.