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-1591GitHub issuePublicDecided· Out of scope

omarchy-hyprland-window-pop resizes unconditionally after a float toggle, rewriting the dwindle split when run on an already-floating window

Reported by vltic · filed Aug 22, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 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

omarchy-hyprland-window-pop resizes unconditionally after a float toggle, rewriting the dwindle split when run on an already-floating windowrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

Omarchy 4.0.0-1 (Quattro), Hyprland 0.56.2, Xwayland 24.1.13, Linux 7.1.8-arch1-3
AMD Ryzen 7 9800X3D, NVIDIA RTX 4070 Ti (AD104)
Single monitor, HDMI-A-1 [email protected], scale = 1, layout dwindle

What's wrong?

omarchy-hyprland-window-pop (bound to SUPER + O, "Pop window out (float & pin)")
toggles floating but resizes unconditionally. When it runs on a window that was
already floating, the toggle tiles the window, and the follow-up 1300x900 resize is
then applied to a tiled window — where an absolute pixel resize rewrites the dwindle
split ratio instead of setting a size. The result is a mangled workspace layout.

This is reachable from stock defaults, because Omarchy itself ships Steam as a
floating window (default/hypr/apps/steam.lua:1):

o.window("steam", { float = true, idle_inhibit = "fullscreen" })

So on a default install, the first SUPER + O pressed on Steam does not pop it
out — it tiles it and distorts the layout. Subsequent presses behave correctly,
because by then the window is tiled, which is why this looks like a once-per-boot
glitch.

Steps to reproduce

  1. Default Omarchy 4.0.0 install, dwindle, single monitor.
  2. Open a terminal so the workspace has one tiled window.
  3. Launch Steam. It opens floating at 1100x700, per the packaged rule above.
  4. Focus the Steam window and press SUPER + O once.

Expected

Either pop the window out to floating 1300x900 (the documented intent —
omarchy:summary=Toggle to pop-out a tile to stay fixed on a display basis),
or tile it at the layout's normal share. Not a rewritten split ratio.

Actual

Steam becomes tiled at 3782x2110 — 74% of the display width — and the
neighbouring terminal is crushed to 1300px wide. The 1300 intended as the
popped window's width leaks into the split boundary instead.

Measured with hyprctl clients -j immediately before and after a single press:

before:  steam  floating=True   size=[1100, 700]   at=[2010, 743]
after:   steam  floating=False  size=[3782, 2110]  at=[1326, 38]
         foot   floating=False  size=[1300, 2110]

Cause

In omarchy-hyprland-window-pop, the elif branch assumes the toggle floats the
window, but never checks:

elif [[ -n $addr ]]; then
  hypr_dispatch "hl.dsp.window.float({ window = \"$window\", action = \"toggle\" })" togglefloating "$window"
  hypr_dispatch "hl.dsp.window.resize({ window = \"$window\", x = $width, y = $height })" resizeactive exact "$width" "$height" "$window"

The pinned == "true" branch handles un-popping, but a window that is floating and
not pinned — Steam's launch state — falls through to elif and gets the pop
treatment applied backwards.

Suggested fix

hyprctl activewindow -j already exposes floating, so the state is available
without an extra query. Gate the pop path on the window actually having been tiled:

floating=$(echo "$active" | jq ".floating")
...
elif [[ $floating == "true" ]]; then
  # Already floating and not popped: just tile it, no resize/center/pin.
  hypr_dispatch "hl.dsp.window.float({ window = \"$window\", action = \"toggle\" })" togglefloating "$window"
elif [[ -n $addr ]]; then
  # existing pop-out path, unchanged

Alternatively, gate on the pop tag rather than pinned, so the script's own
notion of "is this window popped" stops depending on pin state.

Notes

Same script as #7160 (pop-out loses centering across monitors) and #5268 (pop-out
draws over the screensaver), but a distinct bug.

View raw text
### System details

Omarchy 4.0.0-1 (Quattro), Hyprland 0.56.2, Xwayland 24.1.13, Linux 7.1.8-arch1-3
AMD Ryzen 7 9800X3D, NVIDIA RTX 4070 Ti (AD104)
Single monitor, HDMI-A-1 `[email protected]`, `scale = 1`, layout `dwindle`

### What's wrong?

`omarchy-hyprland-window-pop` (bound to `SUPER + O`, "Pop window out (float & pin)")
toggles floating but resizes **unconditionally**. When it runs on a window that was
already floating, the toggle *tiles* the window, and the follow-up 1300x900 resize is
then applied to a tiled window — where an absolute pixel resize rewrites the dwindle
split ratio instead of setting a size. The result is a mangled workspace layout.

This is reachable from stock defaults, because Omarchy itself ships Steam as a
floating window (`default/hypr/apps/steam.lua:1`):

```lua
o.window("steam", { float = true, idle_inhibit = "fullscreen" })
```

So on a default install, the *first* `SUPER + O` pressed on Steam does not pop it
out — it tiles it and distorts the layout. Subsequent presses behave correctly,
because by then the window is tiled, which is why this looks like a once-per-boot
glitch.

### Steps to reproduce

1. Default Omarchy 4.0.0 install, `dwindle`, single monitor.
2. Open a terminal so the workspace has one tiled window.
3. Launch Steam. It opens floating at 1100x700, per the packaged rule above.
4. Focus the Steam window and press `SUPER + O` **once**.

### Expected

Either pop the window out to floating 1300x900 (the documented intent —
`omarchy:summary=Toggle to pop-out a tile to stay fixed on a display basis`),
or tile it at the layout's normal share. Not a rewritten split ratio.

### Actual

Steam becomes tiled at **3782x2110 — 74% of the display width** — and the
neighbouring terminal is crushed to **1300px** wide. The 1300 intended as the
popped window's width leaks into the split boundary instead.

Measured with `hyprctl clients -j` immediately before and after a single press:

```
before:  steam  floating=True   size=[1100, 700]   at=[2010, 743]
after:   steam  floating=False  size=[3782, 2110]  at=[1326, 38]
         foot   floating=False  size=[1300, 2110]
```

### Cause

In `omarchy-hyprland-window-pop`, the `elif` branch assumes the toggle floats the
window, but never checks:

```bash
elif [[ -n $addr ]]; then
  hypr_dispatch "hl.dsp.window.float({ window = \"$window\", action = \"toggle\" })" togglefloating "$window"
  hypr_dispatch "hl.dsp.window.resize({ window = \"$window\", x = $width, y = $height })" resizeactive exact "$width" "$height" "$window"
```

The `pinned == "true"` branch handles un-popping, but a window that is floating and
*not* pinned — Steam's launch state — falls through to `elif` and gets the pop
treatment applied backwards.

### Suggested fix

`hyprctl activewindow -j` already exposes `floating`, so the state is available
without an extra query. Gate the pop path on the window actually having been tiled:

```bash
floating=$(echo "$active" | jq ".floating")
...
elif [[ $floating == "true" ]]; then
  # Already floating and not popped: just tile it, no resize/center/pin.
  hypr_dispatch "hl.dsp.window.float({ window = \"$window\", action = \"toggle\" })" togglefloating "$window"
elif [[ -n $addr ]]; then
  # existing pop-out path, unchanged
```

Alternatively, gate on the `pop` tag rather than `pinned`, so the script's own
notion of "is this window popped" stops depending on pin state.

### Notes

Same script as #7160 (pop-out loses centering across monitors) and #5268 (pop-out
draws over the screensaver), but a distinct bug.

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:20 UTC