Skip to content

feat(browser): add opt-in Google Chrome Beta support#5999

Open
kvncrw wants to merge 2 commits into
basecamp:devfrom
kvncrw:feat/chrome-beta-opt-in
Open

feat(browser): add opt-in Google Chrome Beta support#5999
kvncrw wants to merge 2 commits into
basecamp:devfrom
kvncrw:feat/chrome-beta-opt-in

Conversation

@kvncrw
Copy link
Copy Markdown

@kvncrw kvncrw commented May 29, 2026

Summary

Adds an opt-in way to install and use Google Chrome Beta (google-chrome-beta from the AUR) as a selectable browser in Omarchy, alongside the existing chrome/brave/edge/firefox/zen choices.

This does not change the default browser. omarchy-chromium remains the default for everyone. Chrome Beta only appears as an additional choice a user explicitly opts into via Setup > Install > Browser > Chrome Beta (or omarchy install browser chrome-beta). Nobody who doesn't ask for it is affected.

Motivation

A growing number of Omarchy users run AI coding agents that drive a browser programmatically — via Playwright or the Chrome DevTools Protocol (CDP) — for tasks like end-to-end testing, scraping, and agentic web automation. That workload has a hard requirement that ordinary browsing doesn't: the local browser has to stay close to upstream Chromium.

Concretely:

  • DevTools Protocol surface. Automation tools target a moving CDP surface. A browser that tracks upstream closely exposes the newer CDP domains/commands those tools expect; a lagging stable build silently lacks them, producing confusing "method not found" / "unsupported" failures.
  • --remote-debugging-port reliability under Wayland. Headless and remote-controlled launches on Wayland are sensitive to the exact Chromium build and its packaging. The upstream-tracking Google channel behaves predictably here, where distro-patched builds sometimes don't.
  • Version-skew against Playwright's expected revision. Playwright pins an expected browser revision. Running a stable distro Chromium that lags upstream — or carries downstream packaging patches — is a common source of flaky, hard-to-debug automation, because the driver and the browser disagree about capabilities.

A stable distro Chromium is the right default for daily browsing, but for the automation use case it's frequently either behind upstream or patched in ways that make headless/remote-controlled use flaky. An opt-in Chrome Beta gives those users a browser that "just works" for automation without imposing a beta channel on everyone else.

Chrome Beta (not Dev/Canary) is deliberately chosen: it tracks upstream closely enough to solve the skew problem while still being stable enough for real use.

What changed

Wiring mirrors the existing chrome channel exactly — no new patterns introduced:

File Change
bin/omarchy-install-browser New chrome-beta case: installs AUR google-chrome-beta, writes ~/.config/chrome-beta-flags.conf (the flags file the Chrome Beta wrapper actually reads), reuses the shared /etc/opt/chrome/policies/managed policy dir, applies the current theme color.
bin/omarchy-remove-browser New chrome-beta case. Both chrome and chrome-beta now guard removal of the shared color.json so removing one Chrome channel doesn't strip the managed policy while the other channel is still installed (same shared-dir guard pattern already used for Brave / Brave Origin).
bin/omarchy-default-browser Maps chrome-betagoogle-chrome-beta.desktop (both directions).
bin/omarchy-theme-set-browser Refreshes a running google-chrome-beta so theme color changes apply live.
bin/omarchy-menu Adds Chrome Beta to the Install, Remove, and Default Browser submenus. The *"Chrome Beta"* glob arm is ordered before *Chrome* (same specific-before-general ordering already used for Brave Origin vs Brave).

Command metadata (omarchy:args / usage strings) updated to include chrome-beta.

How a user opts in

Via the menu:

Super (Omarchy menu) > Install > Browser > Chrome Beta

Or directly:

omarchy install browser chrome-beta

The install prints Chrome Beta browser installed. Make it the default via Setup > Defaults > Browser. — it intentionally leaves the default browser untouched. Setting it as default (optional) is a separate explicit step:

omarchy default browser chrome-beta

Removal:

omarchy remove browser chrome-beta

Testing

  • bash test/omarchy-cli-test.sh — full suite passes (including the metadata/route assertions).
  • bash -n clean on all five modified scripts.
  • Verified omarchy install browser --help and the usage strings surface chrome-beta.

Opened as a draft for maintainer review of the approach before finalizing.

kvncrw added 2 commits May 29, 2026 17:03
Add `chrome-beta` as an optional, opt-in browser alongside the existing
chrome/brave/edge/firefox/zen choices. This does NOT change the default
browser (omarchy-chromium); it only adds a selectable install/remove
target and an XDG default-browser mapping for users who explicitly choose
it via Setup > Install > Browser > Chrome Beta.

Motivation: users running AI coding agents that drive a browser via
Playwright / Chrome DevTools Protocol (CDP) need a browser that tracks
upstream Chromium closely - newer DevTools Protocol surface, reliable
--remote-debugging-port behavior under Wayland, and fewer version-skew
issues against Playwright's expected browser revision. Chrome Beta gives
those users a browser that "just works" for automation without imposing
a beta channel on everyone.

Wiring mirrors the existing `chrome` channel:
- omarchy-install-browser: new `chrome-beta` case installs the AUR
  `google-chrome-beta` package, writes chrome-beta-flags.conf, reuses the
  shared /etc/opt/chrome managed-policy dir, and applies the theme color.
- omarchy-remove-browser: new `chrome-beta` case; both chrome and
  chrome-beta now guard removal of the shared color.json so removing one
  channel does not strip the policy while the other is still installed.
- omarchy-default-browser: maps chrome-beta <-> google-chrome-beta.desktop.
- omarchy-theme-set-browser: refreshes a running google-chrome-beta.
- omarchy-menu: adds Chrome Beta to the install, remove, and default
  browser submenus (specific glob arm ordered before *Chrome*).
@kvncrw kvncrw marked this pull request as ready for review May 29, 2026 22:38
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.

1 participant