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-1194GitHub issuePublicFixed

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

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

Vivaldi misses the chromium-based-browser tag: browser.lua regex spells the class "Vivaldi-stable", real class is lowercaserevision 1 · captured 2026-09-28 21:24 UTC via poll

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

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

Omarchy4.0.0-1
Hyprland0.56.2 (efb5099)
Kernel7.1.8-arch1-3
CPUIntel Core Ultra 7 258V
GPUIntel Arc Graphics 130V/140V
Vivaldi8.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