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.
Vivaldi misses the chromium-based-browser tag: browser.lua regex spells the class "Vivaldi-stable", real class is lowercase
Reported by maTzko13 · filed Aug 30, 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
What happened
Vivaldi never receives the chromium-based-browser tag, so it falls through the
browser opacity exemption and gets the generic window opacity instead.
default/hypr/apps/browser.lua:2 spells the class with a capital V:
o.window("((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)", { tag = "+chromium-based-browser" })The actual window class is lowercase vivaldi-stable. The other alternatives in
the same regex explicitly cover both cases ([cC]hrom, [bB]rave, [mM]icrosoft),
so this looks like an oversight rather than intent.
Consequence: line 4 ({ tag = "chromium-based-browser" } -> -default-opacity,tile = true, opacity = "1.0 0.985") never applies to Vivaldi. It keeps thedefault-opacity tag from default/hypr/windows.lua:6 and ends up atopacity = "0.985 0.96" instead of "1.0 0.985". The difference is small when
focused but clearly noticeable when the window is not focused, and Vivaldi also
misses the tile = true the other Chromium browsers get.
Expected
Vivaldi behaves like Chrome/Brave/Edge: chromium-based-browser tag applied,default-opacity removed, opacity = "1.0 0.985", tile = true.
Steps to reproduce
- Install Vivaldi (Arch package
vivaldi) and open a window. - Inspect the tags Hyprland assigned:
$ hyprctl clients -j | jq -r '.[]|select(.class|test("vivaldi";"i"))|"\(.class) -> \(.tags|join(","))"'
vivaldi-stable -> default-opacity*Expected chromium-based-browser* in that list; it is absent. For comparison, a
user rule that differs only in the capitalisation of the class does match:
o.window("vivaldi-stable", { tag = "+probe" })vivaldi-stable -> default-opacity*,probe*So the case of the class name is the only difference between matching and not.
Suggested fix
One character class, consistent with the neighbouring alternatives:
-o.window("((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)", { tag = "+chromium-based-browser" })
+o.window("((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|[vV]ivaldi-stable|helium)", { tag = "+chromium-based-browser" })Local workaround for anyone hitting this, in ~/.config/hypr/looknfeel.lua:
o.window("vivaldi-stable", { opacity = "1.0 0.985", tile = true })System details
| Omarchy | 4.0.0-1 |
| Hyprland | 0.56.2 (efb5099) |
| Kernel | 7.1.8-arch1-3 |
| CPU | Intel Core Ultra 7 258V |
| GPU | Intel Arc Graphics 130V/140V |
| Vivaldi | 8.1.4087.68-1 (Arch vivaldi) |
Note: omarchy debug --no-sudo --print is rejected as an unknown command on
4.0.0-1, so the system details above were collected manually.
View raw text
## What happened
Vivaldi never receives the `chromium-based-browser` tag, so it falls through the
browser opacity exemption and gets the generic window opacity instead.
`default/hypr/apps/browser.lua:2` spells the class with a capital V:
```lua
o.window("((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)", { tag = "+chromium-based-browser" })
```
The actual window class is lowercase `vivaldi-stable`. The other alternatives in
the same regex explicitly cover both cases (`[cC]hrom`, `[bB]rave`, `[mM]icrosoft`),
so this looks like an oversight rather than intent.
Consequence: line 4 (`{ tag = "chromium-based-browser" }` -> `-default-opacity`,
`tile = true`, `opacity = "1.0 0.985"`) never applies to Vivaldi. It keeps the
`default-opacity` tag from `default/hypr/windows.lua:6` and ends up at
`opacity = "0.985 0.96"` instead of `"1.0 0.985"`. The difference is small when
focused but clearly noticeable when the window is not focused, and Vivaldi also
misses the `tile = true` the other Chromium browsers get.
## Expected
Vivaldi behaves like Chrome/Brave/Edge: `chromium-based-browser` tag applied,
`default-opacity` removed, `opacity = "1.0 0.985"`, `tile = true`.
## Steps to reproduce
1. Install Vivaldi (Arch package `vivaldi`) and open a window.
2. Inspect the tags Hyprland assigned:
```
$ hyprctl clients -j | jq -r '.[]|select(.class|test("vivaldi";"i"))|"\(.class) -> \(.tags|join(","))"'
vivaldi-stable -> default-opacity*
```
Expected `chromium-based-browser*` in that list; it is absent. For comparison, a
user rule that differs only in the capitalisation of the class does match:
```lua
o.window("vivaldi-stable", { tag = "+probe" })
```
```
vivaldi-stable -> default-opacity*,probe*
```
So the case of the class name is the only difference between matching and not.
## Suggested fix
One character class, consistent with the neighbouring alternatives:
```diff
-o.window("((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)", { tag = "+chromium-based-browser" })
+o.window("((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|[vV]ivaldi-stable|helium)", { tag = "+chromium-based-browser" })
```
Local workaround for anyone hitting this, in `~/.config/hypr/looknfeel.lua`:
```lua
o.window("vivaldi-stable", { opacity = "1.0 0.985", tile = true })
```
## System details
| | |
|---|---|
| Omarchy | 4.0.0-1 |
| Hyprland | 0.56.2 (efb5099) |
| Kernel | 7.1.8-arch1-3 |
| CPU | Intel Core Ultra 7 258V |
| GPU | Intel Arc Graphics 130V/140V |
| Vivaldi | 8.1.4087.68-1 (Arch `vivaldi`) |
Note: `omarchy debug --no-sudo --print` is rejected as an unknown command on
4.0.0-1, so the system details above were collected manually.
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
- Fixed bypr/12754· confirmed
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:12 UTC