diff --git a/.claude/adr/0005-stock-firefox-policy-extensions.md b/.claude/adr/0005-stock-firefox-policy-extensions.md index 7a9efbc..cce789e 100644 --- a/.claude/adr/0005-stock-firefox-policy-extensions.md +++ b/.claude/adr/0005-stock-firefox-policy-extensions.md @@ -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. 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. +- 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. diff --git a/modules/desktop/firefox.nix b/modules/desktop/firefox.nix index 6ce4431..7152921 100644 --- a/modules/desktop/firefox.nix +++ b/modules/desktop/firefox.nix @@ -75,9 +75,12 @@ in }; # 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 = { enable = true; profileNames = [ "default" ]; + colorTheme.enable = true; }; # Links opened from other applications land in Firefox.