feat(firefox): add the desktop Firefox browser module (task 0032) #25

Merged
alexion merged 8 commits from task-0032-firefox-browser into main 2026-07-24 09:03:34 -04:00
2 changed files with 10 additions and 0 deletions
Showing only changes of commit e42101e08b - Show all commits

View File

@@ -32,3 +32,6 @@ The policy path gives up build-time reproducibility of the extension binaries, a
- First launch after a fresh build requires network to fetch the add-ons. - First launch after a fresh build requires network to fetch the add-ons.
An offline first boot comes up with the extensions not yet present, populating them once online. An offline first boot comes up with the extensions not yet present, populating them once online.
- Moving to a pinned-package posture later would mean changing the browser variant as well, since the two are coupled — the reason this is captured as a decision rather than a detail. - Moving to a pinned-package posture later would mean changing the browser variant as well, since the two are coupled — the reason this is captured as a decision rather than a detail.
- The no-pinned-package rule scopes to the three functional extensions, which is where the signature-enforcement conflict bites.
Nord chrome theming comes from the Stylix Firefox Color add-on, a signed add-on that Stylix pins and manages, so it loads on stock mainline Firefox and adds no flake input of ours.
That is a bounded, deliberate exception, not a reversal: it is what lets the browser be themed from the shared Stylix scheme without hand-written chrome CSS.

View File

@@ -47,6 +47,10 @@ in
profiles.default = { profiles.default = {
isDefault = true; isDefault = true;
# The Nord chrome theme is a declared extension setting, so home-manager
# owns the extension-settings store, overwriting runtime changes to it.
extensions.force = true;
settings = { settings = {
# Sponsored surfaces the policies above do not reach. # Sponsored surfaces the policies above do not reach.
"browser.urlbar.suggest.quicksuggest.sponsored" = false; "browser.urlbar.suggest.quicksuggest.sponsored" = false;
@@ -75,9 +79,12 @@ in
}; };
# Nord chrome from the shared Stylix scheme, against the one profile. # Nord chrome from the shared Stylix scheme, against the one profile.
# colorTheme recolours the toolbar and tabs, which the target does not do
# on its own, through the Stylix-managed Firefox Color add-on.
stylix.targets.firefox = { stylix.targets.firefox = {
enable = true; enable = true;
profileNames = [ "default" ]; profileNames = [ "default" ];
colorTheme.enable = true;
}; };
# Links opened from other applications land in Firefox. # Links opened from other applications land in Firefox.