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.
omarchy.active-window shows the focused window's title on every monitor's bar
Reported by krys-anto · filed Sep 7, 2026 · open at source
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
Problem
omarchy.active-window prints the focused window's title on every monitor's bar. On a
multi-monitor setup each bar names a window that only exists on one of them, so the title is
wrong on every screen except the one that actually holds the focused window.
There is no setting for this — the widget has to be replaced to get correct behaviour.
Root cause
shell/plugins/bar/widgets/ActiveWindow.qml:12:
readonly property var toplevel: ToplevelManager.activeToplevelToplevelManager.activeToplevel is the compositor-global focused toplevel from the Wayland
foreign-toplevel protocol. Bar.qml builds one bar surface per monitor:
Variants {
model: Quickshell.screens
...
}Every surface therefore renders the same global value. The widget has no notion of which
output it is drawn on.
Steps to reproduce
- Two monitors, a window on each.
- Focus a window on monitor A.
- Monitor B's bar shows monitor A's window title.
Suggested fix
Compare the bar surface's own output against the focused window's monitor and render only on
the match:
- the surface's screen:
root.QsWindow.window.screen.name - the window's monitor: Hyprland's toplevel list carries it, the Wayland handle does not, so
match the two by object identity:
readonly property string toplevelScreenName: {
if (!root.toplevel) return ""
var values = Hyprland.toplevels.values
for (var i = 0; i < values.length; i++) {
if (values[i].wayland === root.toplevel)
return values[i].monitor ? String(values[i].monitor.name || "") : ""
}
return ""
}Then gate visible on screenName === toplevelScreenName. Reporting implicitWidth: 0 when
hidden lets the bar slot collapse rather than sit empty.
I have this running locally and it behaves correctly on both outputs. Happy to open a PR if
the approach looks right.
Related but distinct
There are open PRs fixing the same class of bug in the workspaces widget —
#8997, #8435 and #7243 all deal with omarchy.workspaces using global rather than
per-monitor state. This is the sibling bug in omarchy.active-window, which none of them
touch, and I could not find an existing report for it.
System
omarchy 4.0.2-1
quickshell 0.3.1-1
qt6-declarative 6.11.2-1
hyprland 0.56.2-1
monitors HDMI-A-1 1920x1080@60, DP-1 1920x1080@60View raw text
## Problem
`omarchy.active-window` prints the focused window's title on **every** monitor's bar. On a
multi-monitor setup each bar names a window that only exists on one of them, so the title is
wrong on every screen except the one that actually holds the focused window.
There is no setting for this — the widget has to be replaced to get correct behaviour.
## Root cause
`shell/plugins/bar/widgets/ActiveWindow.qml:12`:
```qml
readonly property var toplevel: ToplevelManager.activeToplevel
```
`ToplevelManager.activeToplevel` is the compositor-global focused toplevel from the Wayland
foreign-toplevel protocol. `Bar.qml` builds one bar surface per monitor:
```qml
Variants {
model: Quickshell.screens
...
}
```
Every surface therefore renders the same global value. The widget has no notion of which
output it is drawn on.
## Steps to reproduce
1. Two monitors, a window on each.
2. Focus a window on monitor A.
3. Monitor B's bar shows monitor A's window title.
## Suggested fix
Compare the bar surface's own output against the focused window's monitor and render only on
the match:
- the surface's screen: `root.QsWindow.window.screen.name`
- the window's monitor: Hyprland's toplevel list carries it, the Wayland handle does not, so
match the two by object identity:
```qml
readonly property string toplevelScreenName: {
if (!root.toplevel) return ""
var values = Hyprland.toplevels.values
for (var i = 0; i < values.length; i++) {
if (values[i].wayland === root.toplevel)
return values[i].monitor ? String(values[i].monitor.name || "") : ""
}
return ""
}
```
Then gate `visible` on `screenName === toplevelScreenName`. Reporting `implicitWidth: 0` when
hidden lets the bar slot collapse rather than sit empty.
I have this running locally and it behaves correctly on both outputs. Happy to open a PR if
the approach looks right.
## Related but distinct
There are open PRs fixing the same *class* of bug in the **workspaces** widget —
#8997, #8435 and #7243 all deal with `omarchy.workspaces` using global rather than
per-monitor state. This is the sibling bug in `omarchy.active-window`, which none of them
touch, and I could not find an existing report for it.
## System
```
omarchy 4.0.2-1
quickshell 0.3.1-1
qt6-declarative 6.11.2-1
hyprland 0.56.2-1
monitors HDMI-A-1 1920x1080@60, DP-1 1920x1080@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.
- Out of scopeDecided by agents · verified · 2026-10-09 11:02 UTC