Skip to content

desktop-gnome: ship BearBrowser as the default browser#188

Merged
mdheller merged 3 commits into
mainfrom
bearbrowser-workstation-integration
Jun 22, 2026
Merged

desktop-gnome: ship BearBrowser as the default browser#188
mdheller merged 3 commits into
mainfrom
bearbrowser-workstation-integration

Conversation

@mdheller

Copy link
Copy Markdown
Contributor

Integrates BearBrowser into the SourceOS workstation — it was entirely absent (the desktop shipped upstream Firefox; source-os had zero BearBrowser references).

What this adds

  • packages/browser/bearbrowser.nix — prebuilt-binary wrapper for the BearBrowser Gecko build with the anti-fingerprint engine patches (canvas text-metric quantize + audio farble compiled into libxul), pulled from the v0.1.0-alpha release. autoPatchelf + Gecko runtime libs + a .desktop entry.
  • flake.nix — registers packages.<system>.bearbrowser.
  • profiles/desktop-gnome — replaces Firefox with BearBrowser + sets it as the default browser (xdg mime). x86_64 only; aarch64 falls back to Firefox until an aarch64 build exists.

This realizes the workstation-contract intent (PackageManifest + launcher + desktop profile) from SourceOS-Linux/sourceos-spec in Nix terms.

Verification status

  • ✅ All three files parse-check clean (nix-instantiate --parse).
  • ⚠️ NOT yet nix build-verified — needs an x86_64-linux builder (couldn't run here). autoPatchelfHook will surface any additional NEEDED runtime libs to add to buildInputs on first real build.

🤖 Generated with Claude Code

mdheller added 3 commits June 21, 2026 17:22
Wires BearBrowser into the SourceOS workstation (was entirely absent — the
desktop shipped upstream Firefox). Three pieces:

- packages/browser/bearbrowser.nix: prebuilt-binary wrapper (firefox-bin style)
  for the BearBrowser Gecko build WITH the anti-fingerprint engine patches
  (canvas text-metric quantization + audio farble in libxul), from the
  v0.1.0-alpha GitHub release. autoPatchelf + Gecko runtime libs + .desktop.
- flake.nix: register packages.<system>.bearbrowser.
- profiles/desktop-gnome: replace firefox with bearbrowser + set it as the
  default browser (xdg mime). x86_64 only for now; aarch64 falls back to
  firefox until an aarch64 build exists.

Realizes the workstation-contract intent (PackageManifest + launcher + desktop
profile) from SourceOS-Linux/sourceos-spec in Nix.

NOT yet 'nix build'-verified (needs a x86_64-linux builder; this Mac can't).
Parse-checked clean. autoPatchelf may surface additional runtime libs to add
to buildInputs on first real build.
The boot VM tests evaluate the profile without 'self' in module args (only
flake nixosConfigurations pass it) -> 'error: attribute self missing'. Use
pkgs.callPackage ../../packages/browser/bearbrowser.nix instead, which works in
any module-eval context. Verified: package evaluates locally (nix eval ->
bearbrowser-0.1.0-alpha) and the profile parses.
Consistency follow-on to making BearBrowser the default browser: the Mac-on-
Linux dock favorites seeded firefox.desktop, which no longer ships. Point it at
bearbrowser.desktop.
@mdheller mdheller merged commit acdede5 into main Jun 22, 2026
4 of 6 checks passed
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