Skip to content

Tag Vivaldi's window class case-insensitively in browser.lua - #9279

Open
reverb256 wants to merge 2 commits into
omacom:quattrofrom
reverb256:fix/vivaldi-window-class-casing
Open

Tag Vivaldi's window class case-insensitively in browser.lua#9279
reverb256 wants to merge 2 commits into
omacom:quattrofrom
reverb256:fix/vivaldi-window-class-casing

Conversation

@reverb256

@reverb256 reverb256 commented Aug 31, 2026

Copy link
Copy Markdown

Fixes #9274.

Problem

Hyprland reports Vivaldi's window class in lowercase as vivaldi-stable, but the chromium-based-browser rule in default/hypr/apps/browser.lua spelled it with a capital V:

o.window("((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)", { tag = "+chromium-based-browser" })

Because the other alternatives already cover both cases ([cC]hrom, [bB]rave, [mM]icrosoft), Vivaldi never matches the rule, keeps the generic -default-opacity tag, and misses the tile = true + opacity = "1.0 0.985" treatment the other Chromium browsers get.

Change

Match the class in both cases, consistent with its neighbouring alternatives:

o.window("((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|[vV]ivaldi-stable|helium)", { tag = "+chromium-based-browser" })

Test

Adds test/shell.d/vivaldi-window-class-test.sh, a regression guard that asserts browser.lua both tags a chromium-based-browser window class and matches Vivaldi case-insensitively (and fails if the case-sensitive spelling returns):

ok - browser.lua tags a chromium-based-browser window class
ok - Vivaldi's class is matched in both cases
  • bash -n test/shell.d/vivaldi-window-class-test.sh — clean
  • bash test/shell.d/vivaldi-window-class-test.sh — passes

Note: the test filename is scoped to Vivaldi to avoid colliding with #8968, which independently adds test/shell.d/browser-tags-test.sh for the Brave-origin rule.

Hyprland reports Vivaldi's window class as lowercase "vivaldi-stable",
but the chromium-based-browser rule in default/hypr/apps/browser.lua
spelled it with a capital V, so Vivaldi never matched and missed the
tile + opacity treatment the other Chromium browsers get. Match both
cases the way the neighbouring alternatives already do.

Fixes omacom#9274.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Vivaldi misses the chromium-based-browser tag: browser.lua regex spells the class "Vivaldi-stable", real class is lowercase

1 participant