Skip to content

Add native Zen Browser support - #408

Open
agats wants to merge 2 commits into
linuxmint:masterfrom
agats:add-native-zen-browser-support
Open

Add native Zen Browser support#408
agats wants to merge 2 commits into
linuxmint:masterfrom
agats:add-native-zen-browser-support

Conversation

@agats

@agats agats commented Aug 16, 2026

Copy link
Copy Markdown

Summary

Adds native (non-Flatpak) Zen Browser support as a target browser.

Zen support currently only covers the Flatpak build (BROWSER_TYPE_ZEN_FLATPAK, added in #336). Users who install Zen natively — e.g. via AUR's zen-browser-bin on Arch, or Zen's own installer/tarball — have no matching entry, even though os.path.exists(browser.test_path) is the only gate the GUI applies.

Zen is a Firefox fork and behaves identically to the other native Firefox-family entries already in this list (LibreWolf, Waterfox, Floorp) for the purposes of webapp-manager's profile handling, so this reuses the existing BROWSER_TYPE_FIREFOX type rather than adding a new one — each webapp gets its own isolated profile the same way native Firefox/LibreWolf/Waterfox/Floorp webapps already do, with zero new branching logic required.

Browser(BROWSER_TYPE_FIREFOX, "Zen Browser", "zen-browser", "/usr/bin/zen-browser"),

The welcome-wizard problem, and how this avoids it

A fresh, empty Firefox-family profile normally triggers Zen's first-run welcome/setup screen. Left unaddressed, that would pop up on every newly created Zen webapp — see the discussion on #335, where a workaround gist (linked below) works around this by sharing one profile across all Zen-native webapps, sacrificing the per-app isolation that's the whole point of this being a "web app" in the first place, and requiring manual one-time setup (create a profile via about:profiles, hand-edit a hardcoded path into common.py).

This PR fixes the actual cause instead of working around it: setting zen.welcome-screen.seen=true in the shared profile template (usr/share/webapp-manager/firefox/profile/user.js) suppresses the wizard directly. This pref is Zen-specific and silently ignored by every other Firefox-family browser that shares this same template, so it's a no-op for Firefox/LibreWolf/Waterfox/Floorp. Net effect: full per-app profile isolation, preserved, with no manual setup required and no wizard interruption.

Related

Testing

Verified locally on Arch Linux (webapp-manager 1.4.6) with zen-browser-bin (native, non-Flatpak Zen install):

  • "Zen Browser" appears in the browser dropdown when creating/editing a webapp.
  • Created and used several webapps against it; each gets its own isolated profile under ~/.local/share/ice/firefox/<codename>/, no shared state between apps.
  • No welcome-wizard interruption on any newly created profile after the user.js change.
  • Confirmed the two changes here don't affect any other browser type (both are strictly additive / no-op for non-Zen browsers).

agats added 2 commits August 14, 2026 13:53
Zen Browser is a Firefox-based browser distributed as a native binary
(e.g. via AUR's zen-browser-bin, or upstream's own installer/tarball)
in addition to the Flatpak build (app.zen_browser.zen) already
supported as BROWSER_TYPE_ZEN_FLATPAK. Register it using the generic
BROWSER_TYPE_FIREFOX type, the same way LibreWolf, Waterfox, and
Floorp are registered for their native builds, so it gets an isolated
profile created the standard Firefox-family way.
Each webapp gets its own fresh, isolated Firefox-family profile. For Zen
specifically, a fresh profile normally triggers Zen's welcome/setup
screen on first launch. Setting zen.welcome-screen.seen=true in the
shared profile template avoids that. This pref is Zen-specific and
harmless (ignored) for the other Firefox-family browsers that share
this same template.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant