prefs-js-to-nix is a small CLI for anyone managing their Firefox or Thunderbird configuration with Nix, using Home Manager or similar. It does what it says on the tin, converting user_pref
calls to Nix attributes. For example, given a file like this:
❯ cat ~/.mozilla/firefox/*/prefs.js
// Mozilla User Preferences
// [omitted]
user_pref("app.normandy.first_run", false);
user_pref("app.normandy.migrationsApplied", 12);
// [omitted]
user_pref("toolkit.telemetry.previousBuildID", "20250806102122");
user_pref("toolkit.telemetry.reportingpolicy.firstRun", false);
You get output like this:
❯ src/prefsjs2nix.js < ~/.mozilla/firefox/*/prefs.js
{
"app.normandy.first_run" = false;
"app.normandy.migrationsApplied" = 12;
# omitted
"toolkit.telemetry.previousBuildID" = "20250806102122";
"toolkit.telemetry.reportingpolicy.firstRun" = false;
}