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

Chromium main Meet tab loses borders after session restore - over-broad PiP rule pip.lua:15

Reported by 0xleelu · filed Sep 2, 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

Chromium main Meet tab loses borders after session restore - over-broad PiP rule pip.lua:15revision 1 · captured 2026-09-28 21:24 UTC via poll

Omarchy version: 4.0.2-1 (Hyprland 0.56.2, eDP-1 [email protected])
Repro 100% - only when in a Meet meeting, not on landing page: Open chromium with an active meet.google.com meeting (title Meet - ... - Chromium), close Chromium with tabs open (session restore_on_startup=1, Preferences browser.window_placement.maximized=True, exit_type=Crashed), reopen with restored tabs -> main Meet window loses Hyprland borders and is offset. Does NOT happen on the base https://meet.google.com landing page (title Google Meet - no Meet - prefix, doesn't match ^Meet - .+), only once you're in a meeting where title becomes Meet - <meeting name> - Chromium.

What happened:
- Main Meet meeting tab after restore shows at [10,36] size [1516,914] floating:false vs expected tiled with borders at [12,38] [1512,910] (like foot and chrome://newtab window). hyprctl clients -j shows tags: chromium-based-browser* but border_size appears 0, hyprctl decorations empty. Visual: no 2px border from default/hypr/looknfeel.lua:10, gaps look wrong, window behaves half-tiled/half-pinned.
- Landing page meet.google.com without a meeting stays correctly bordered 12,38 1512x910 after restore - confirms over-broad ^Meet - .+ match.

What expected:
Main Meet meeting tab should stay tiled with border_size 2 gaps_out 10, only the actual PiP overlay should be floating borderless 600x338 pinned.

Root cause (read-only diagnosis, no local changes):
- /usr/share/omarchy/default/hypr/apps/pip.lua:15:

o.window({ tag = "chromium-based-browser", title = "^Meet - .+" }, {
  float=true, pin=true, size={600,338}, border_size=0, move={...}
})

Regex ^Meet - .+ matches every in-meeting tab (e.g. Meet - Example Meeting - Chromium initialTitle Untitled - Chromium -> title change after restore) but not the landing page. It was added in 4.0.2 (pip.lua Birth 2026-08-31 17:50, pacman -Q omarchy 4.0.2-1 upgrade from 4.0.1). Hyprland 0.56.2 re-evaluates title-matching window rules on title change, so after session restore the rule applies border_size 0 even though browser.lua:4 tile=true keeps it tiled (floating:false but border still 0). The generic PiP rule pip.lua:2 title="(Picture.?in.?Picture)" already handles real PiP correctly; the Meet-specific rule is over-broad for normal meeting windows.

Steps to reproduce:
1. chromium with active meet.google.com meeting (title Meet - ...), keep tab active. Verify landing page alone does not repro.
2. Close chromium (or pkill chromium), Preferences shows maximized:true + Crashed
3. chromium restores tabs -> hyprctl clients Meet meeting window now 10,36 1516x914 borderless vs normal 12,38 1512x910 and vs landing page which stays 12,38

System:
- omarchy 4.0.2-1, Hyprland 0.56.2, chromium --ozone-platform=wayland, monitor eDP-1 1920x1200 scale 1.25,
- ~/.config/chromium/Default/Preferences restore_on_startup:1, Sessions/Session_* contains meet.google.com
- No user overrides in ~/.config/hypr/ (verified)
- No personal meeting codes/titles included; example titles anonymized

Suggested fix:
Make pip.lua:15 more specific (e.g. match only true PiP windows - title="Picture-in-Picture" or check contentType/xdgTag, or add size/interactive constraint, or require Meeting PiP specific window properties) or remove the Meet-specific rule and rely on pip tag flow. Local workaround is user override in ~/.config/hypr/hyprland.lua o.window({tag="chromium-based-browser",title="^Meet - .+"},{float=false,pin=false,tile=true,border_size=2}) but request official fix so omarchy update resolves it without local file.

Debug log available locally via omarchy-debug --no-sudo --print (not uploaded to protect privacy; contains inxi + journalctl - can provide redacted excerpt on request).

View raw text
**Omarchy version:** 4.0.2-1 (Hyprland 0.56.2, eDP-1 [email protected])
**Repro 100% - only when in a Meet meeting, not on landing page:** Open `chromium` with an *active* `meet.google.com` meeting (title `Meet - ... - Chromium`), close Chromium with tabs open (session `restore_on_startup=1`, `Preferences` `browser.window_placement.maximized=True`, `exit_type=Crashed`), reopen with restored tabs -> main Meet window loses Hyprland borders and is offset. Does **NOT** happen on the base `https://meet.google.com` landing page (title `Google Meet` - no `Meet - ` prefix, doesn't match `^Meet - .+`), only once you're in a meeting where title becomes `Meet - <meeting name> - Chromium`.

**What happened:**
- Main Meet *meeting* tab after restore shows at `[10,36] size [1516,914] floating:false` vs expected tiled with borders at `[12,38] [1512,910]` (like `foot` and `chrome://newtab` window). `hyprctl clients -j` shows `tags: chromium-based-browser*` but `border_size` appears 0, `hyprctl decorations` empty. Visual: no 2px border from `default/hypr/looknfeel.lua:10`, gaps look wrong, window behaves half-tiled/half-pinned.
- Landing page `meet.google.com` without a meeting stays correctly bordered `12,38 1512x910` after restore - confirms over-broad `^Meet - .+` match.

**What expected:**
Main Meet *meeting* tab should stay tiled with `border_size 2` `gaps_out 10`, only the actual PiP overlay should be floating borderless `600x338` pinned.

**Root cause (read-only diagnosis, no local changes):**
- `/usr/share/omarchy/default/hypr/apps/pip.lua:15`:
```lua
o.window({ tag = "chromium-based-browser", title = "^Meet - .+" }, {
  float=true, pin=true, size={600,338}, border_size=0, move={...}
})
```
Regex `^Meet - .+` matches *every* in-meeting tab (e.g. `Meet - Example Meeting - Chromium` initialTitle `Untitled - Chromium` -> title change after restore) but not the landing page. It was added in 4.0.2 (pip.lua Birth 2026-08-31 17:50, `pacman -Q omarchy 4.0.2-1` upgrade from 4.0.1). Hyprland 0.56.2 re-evaluates title-matching window rules on title change, so after session restore the rule applies `border_size 0` even though `browser.lua:4` `tile=true` keeps it tiled (`floating:false` but border still 0). The generic PiP rule `pip.lua:2` `title="(Picture.?in.?Picture)"` already handles real PiP correctly; the Meet-specific rule is over-broad for normal meeting windows.

**Steps to reproduce:**
1. `chromium` with active `meet.google.com` meeting (title `Meet - ...`), keep tab active. Verify landing page alone does not repro.
2. Close chromium (or `pkill chromium`), `Preferences` shows `maximized:true` + `Crashed`
3. `chromium` restores tabs -> `hyprctl clients` Meet meeting window now `10,36 1516x914` borderless vs normal `12,38 1512x910` and vs landing page which stays `12,38`

**System:**
- `omarchy 4.0.2-1`, `Hyprland 0.56.2`, `chromium --ozone-platform=wayland`, `monitor eDP-1 1920x1200 scale 1.25`,
- `~/.config/chromium/Default/Preferences` `restore_on_startup:1`, `Sessions/Session_*` contains meet.google.com
- No user overrides in `~/.config/hypr/` (verified)
- No personal meeting codes/titles included; example titles anonymized

**Suggested fix:**
Make `pip.lua:15` more specific (e.g. match only true PiP windows - `title="Picture-in-Picture"` or check `contentType`/`xdgTag`, or add size/interactive constraint, or require `Meeting PiP` specific window properties) or remove the Meet-specific rule and rely on `pip` tag flow. Local workaround is user override in `~/.config/hypr/hyprland.lua` `o.window({tag="chromium-based-browser",title="^Meet - .+"},{float=false,pin=false,tile=true,border_size=2})` but request official fix so `omarchy update` resolves it without local file.

Debug log available locally via `omarchy-debug --no-sudo --print` (not uploaded to protect privacy; contains `inxi` + `journalctl` - can provide redacted excerpt on request).

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 10:36 UTC