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.
1Password floating window is left off-screen after a monitor is disabled; relaunch focuses the invisible window
Reported by dougvk · filed Aug 24, 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
System details
AMD Ryzen 7 5825U + Radeon (Barcelo), Omarchy 4.0.0-1, Hyprland 0.56.2 (v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f), Linux 7.1.8-arch1-3, 1password 8.12.32-33.
omarchy-debug output is omitted here because it includes hostname and other machine-identifying fields.
What's wrong?
Omarchy's default 1Password window rule tags the app floating-window. After a multi-output layout collapses to a single remaining display (the other HDMI output is disabled), the 1Password float stays at its old global coordinates, which are now off-screen. The window is mapped, not hidden, and on the current workspace — it just is not on any enabled monitor. Super+Shift+/ / omarchy launch 1password then looks like a no-op because 1Password is single-instance and focuses that existing invisible window.
This is a placement bug, not a 1Password crash. Tiled windows on the same session were relocated onto the remaining output; this float was not.
Expected
A 1Password window tagged floating-window should remain visible on an enabled monitor. After an output is disabled, Omarchy's center = true rule should put it on the remaining display (or Hyprland should clamp it there). A later launch should show a window the user can see.
Actual
- Only HDMI-A-1 was enabled: 1920×1080 at
(0,0). - HDMI-A-2 (4K desktop) was disabled.
- Hyprland reported the 1Password client as mapped, not hidden, floating, size
875×600(exactly thefloating-windowsize), on the active workspace, at[-1397, 225]. - Visible range of the remaining output is x=0–1920. The window occupied x=-1397 to -522, entirely to the left of the screen.
-1397is the centered X for an 875-wide window on a 1920-wide output whose origin was at-1920:-1920 + (1920-875)/2 = -1397.5.- 1Password's own saved window state still said on-screen bounds on a 1920×1080 display. The compositor overrode that because of the float tag.
- Each subsequent launch logged
1Password is already running, closing.and exited. Autostart had already started1password --silent.
Steps to reproduce
- Install 1Password (
omarchy install 1password/omarchy-install-service-1password) so autostart runs1password --silentand the default app rule applies. - Use two HDMI outputs. Let 1Password map its main window (unlock if needed) so the
floating-windowrule floats and sizes it to 875×600. - Disable one output so a single 1080p HDMI display remains at
(0,0)(clamshell / KVM / "away" style layout is enough; the exact helper does not matter). - Press Super+Shift+/ or run
uwsm-app -- 1password. - Observe: no visible window.
hyprctl clientsstill shows a mapped 1Password float whoseatis outside the remaining output.
Omarchy config implicated
`default/hypr/apps/1password.lua` tags 1Password as a float:
o.window("^(1[p|P]assword)$", { no_screen_share = true, tag = "+floating-window" })`default/hypr/apps/system.lua` then applies:
o.window({ tag = "floating-window" }, { float = true })
o.window({ tag = "floating-window" }, { center = true })
o.window({ tag = "floating-window" }, { size = { 875, 600 } })center appears to apply on map, not when the monitor layout later changes. Hyprland keeps the float's global coordinates; disabling the output that those coordinates belonged to strands the window. Bitwarden uses the same +floating-window tag and is likely in the same class, though this report only observed 1Password.
Related but not the same: #7160 (popped-out SUPER+O windows keep an old monitor-relative offset when moved). Same "global float coords survive a layout change" mechanism; this one is triggered by disabling a monitor under the default password-manager float rule, and is made unrecoverable by 1Password's single-instance launch.
Suggested direction
When an output is disabled, recenter (or clamp) clients tagged floating-window onto a still-enabled monitor. Alternatively, omarchy-launch-1password could detect an existing mapped 1Password window whose box does not intersect any enabled output and centerwindow / move it before relying on the already-running instance.
Workaround
Kill the running 1Password process and launch it again on the remaining output. If the layout does not change again, the new map is centered on-screen.
Filed by Grok 4.6 via Grok Build.
View raw text
### System details
AMD Ryzen 7 5825U + Radeon (Barcelo), Omarchy 4.0.0-1, Hyprland 0.56.2 (v0.56.2, commit efb50993780079460b0cbed1363e2166a2de1d9f), Linux 7.1.8-arch1-3, 1password 8.12.32-33.
`omarchy-debug` output is omitted here because it includes hostname and other machine-identifying fields.
### What's wrong?
Omarchy's default 1Password window rule tags the app `floating-window`. After a multi-output layout collapses to a single remaining display (the other HDMI output is disabled), the 1Password float stays at its old global coordinates, which are now off-screen. The window is mapped, not hidden, and on the current workspace — it just is not on any enabled monitor. Super+Shift+/ / `omarchy launch 1password` then looks like a no-op because 1Password is single-instance and focuses that existing invisible window.
This is a placement bug, not a 1Password crash. Tiled windows on the same session were relocated onto the remaining output; this float was not.
## Expected
A 1Password window tagged `floating-window` should remain visible on an enabled monitor. After an output is disabled, Omarchy's `center = true` rule should put it on the remaining display (or Hyprland should clamp it there). A later launch should show a window the user can see.
## Actual
- Only HDMI-A-1 was enabled: 1920×1080 at `(0,0)`.
- HDMI-A-2 (4K desktop) was disabled.
- Hyprland reported the 1Password client as mapped, not hidden, floating, size `875×600` (exactly the `floating-window` size), on the active workspace, at `[-1397, 225]`.
- Visible range of the remaining output is x=0–1920. The window occupied x=-1397 to -522, entirely to the left of the screen.
- `-1397` is the centered X for an 875-wide window on a 1920-wide output whose origin was at `-1920`: `-1920 + (1920-875)/2 = -1397.5`.
- 1Password's own saved window state still said on-screen bounds on a 1920×1080 display. The compositor overrode that because of the float tag.
- Each subsequent launch logged `1Password is already running, closing.` and exited. Autostart had already started `1password --silent`.
## Steps to reproduce
1. Install 1Password (`omarchy install 1password` / `omarchy-install-service-1password`) so autostart runs `1password --silent` and the default app rule applies.
2. Use two HDMI outputs. Let 1Password map its main window (unlock if needed) so the `floating-window` rule floats and sizes it to 875×600.
3. Disable one output so a single 1080p HDMI display remains at `(0,0)` (clamshell / KVM / "away" style layout is enough; the exact helper does not matter).
4. Press Super+Shift+/ or run `uwsm-app -- 1password`.
5. Observe: no visible window. `hyprctl clients` still shows a mapped 1Password float whose `at` is outside the remaining output.
## Omarchy config implicated
[`default/hypr/apps/1password.lua`](https://github.com/basecamp/omarchy/blob/quattro/default/hypr/apps/1password.lua) tags 1Password as a float:
```lua
o.window("^(1[p|P]assword)$", { no_screen_share = true, tag = "+floating-window" })
```
[`default/hypr/apps/system.lua`](https://github.com/basecamp/omarchy/blob/quattro/default/hypr/apps/system.lua) then applies:
```lua
o.window({ tag = "floating-window" }, { float = true })
o.window({ tag = "floating-window" }, { center = true })
o.window({ tag = "floating-window" }, { size = { 875, 600 } })
```
`center` appears to apply on map, not when the monitor layout later changes. Hyprland keeps the float's global coordinates; disabling the output that those coordinates belonged to strands the window. Bitwarden uses the same `+floating-window` tag and is likely in the same class, though this report only observed 1Password.
Related but not the same: #7160 (popped-out `SUPER+O` windows keep an old monitor-relative offset when moved). Same "global float coords survive a layout change" mechanism; this one is triggered by disabling a monitor under the default password-manager float rule, and is made unrecoverable by 1Password's single-instance launch.
## Suggested direction
When an output is disabled, recenter (or clamp) clients tagged `floating-window` onto a still-enabled monitor. Alternatively, `omarchy-launch-1password` could detect an existing mapped 1Password window whose box does not intersect any enabled output and `centerwindow` / move it before relying on the already-running instance.
## Workaround
Kill the running 1Password process and launch it again on the remaining output. If the layout does not change again, the new map is centered on-screen.
Filed by Grok 4.6 via Grok Build.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 08:35 UTC