From 3cdf7718d511f21e99bdfcc029de41dd2eddc965 Mon Sep 17 00:00:00 2001 From: nevaforget Date: Thu, 24 Sep 2026 15:32:36 +0200 Subject: [PATCH] fix(browsers): switch to the German pack, and off what the first run showed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit languagePacks installs the pack and the policy reports it as active, but the interface stayed English: installing is not switching, the same split the theme already had. Firefox does not fall back to LANG either, although de_DE.UTF-8 reaches the process. RequestedLocales is what switches to it. Three settings from the same first run: address autofill, payment autofill, and the three Firefox Suggest switches. The autofill pair are preferences. Suggest is a policy instead, because its preferences already ship as false and the profile sets no user value while the switches were on — something enables them at runtime, which a preference set as a default does not survive. ImproveSuggest is named rather than left to follow from the other two, so the data collection cannot come back if Suggest is ever turned on again. --- DECISIONS.md | 15 +++++++++++++++ modules/browsers.nix | 28 ++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/DECISIONS.md b/DECISIONS.md index cd90d78..964028f 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -70,6 +70,21 @@ `let` binding because both read it. Verified at eval that the module's own ExtensionSettings entry for the German language pack survives alongside the two added ones — the option is a JSON-format type, so attribute sets merge per key. + The language pack turned out to have the very same split, which only showed on + the machine: `languagePacks` installs it and the policy reports it as active, + but the interface stayed English, and Firefox does not fall back to `LANG` + either. `RequestedLocales = [ "de" ]` is what switches to it. + + The first run on the machine turned up three more, all of them settings the + browser presents as switches: address autofill, payment autofill, and the + three Firefox Suggest switches. The autofill pair are plain preferences. + Suggest needed the `FirefoxSuggest` policy instead, for a reason worth + keeping: its preferences already ship as `false` and the profile sets no user + value, yet the switches were on — something turns them on at runtime, and a + preference set as a default does not hold against that. `ImproveSuggest`, the + data collection behind Suggest, is stated rather than left to follow from the + other two, so it cannot return if Suggest is ever switched back on. + Two of the settings are starting points rather than fixed states, which the policies cannot change: DisplayBookmarksToolbar sets the toolbar's initial state and the View menu still brings it back, and Homepage without `Locked` diff --git a/modules/browsers.nix b/modules/browsers.nix index dd19c87..ae75cc0 100644 --- a/modules/browsers.nix +++ b/modules/browsers.nix @@ -38,6 +38,13 @@ in # this, Firefox starts on the default look with Catppuccin sitting unused # in the add-on manager. "extensions.activeThemeID" = catppuccinThemeId; + + # The two autofill switches in the privacy settings, "Save and fill + # addresses" and "Save and fill payment methods". Each carries a capture + # half as a child preference, so one switch covers both storing and + # filling. Betterfox leaves these alone; Firefox ships them on. + "extensions.formautofill.addresses.enabled" = false; + "extensions.formautofill.creditCards.enabled" = false; }; # normal_installed rather than force_installed: both add-ons stay removable. @@ -57,6 +64,27 @@ in }; }; + # languagePacks installs the German pack, it does not switch to it — the + # same split as the theme above. Firefox does not derive this from LANG + # either: without the policy the interface stays English with the pack + # sitting installed and active. + RequestedLocales = [ "de" ]; + + # The three suggestion switches in the search settings. Their preferences + # ship as false and no user value sets them, so something enables them at + # runtime — the policy is what holds against that. From Firefox 146 on, + # WebSuggestions switches Suggest off as a whole; this is 156. + # + # ImproveSuggest is the data collection behind it: what gets typed into + # the address bar goes to Mozilla to improve the suggestions. It is stated + # rather than left to follow from the other two, so it does not come back + # if Suggest is ever turned on again. + FirefoxSuggest = { + WebSuggestions = false; + SponsoredSuggestions = false; + ImproveSuggest = false; + }; + SearchEngines.Default = "DuckDuckGo"; OfferToSaveLogins = false;