nixos/modules/apps/55_firefox.nix

94 lines
4.5 KiB
Nix
Raw Normal View History

2025-06-20 11:59:24 -07:00
{ config, pkgs, firefox-addons, ... }:
let
autoconfigCfg = pkgs.writeText "autoconfig.cfg" ''
var {classes:Cc,interfaces:Ci,utils:Cu} = Components;
/* set new tab page */
try {
ChromeUtils.defineESModuleGetters(this, {
AboutNewTab: "resource:///modules/AboutNewTab.sys.mjs",
});
var newTabURL = "https://mainframe.local/mainframe.html";
AboutNewTab.newTabURL = newTabURL;
} catch(e){Cu.reportError(e);} // report errors in the Browser Console
'';
autoconfigJs = pkgs.writeText "autoconfig.js" ''
pref("general.config.filename", "autoconfig.cfg");
pref("general.config.obscure_value", 0);
pref("general.config.sandbox_enabled", false);
'';
firefoxWithAutoconfig = pkgs.firefox.overrideAttrs (oldAttrs: {
buildCommand = oldAttrs.buildCommand + ''
# Copy autoconfig files to the Firefox installation
cp ${autoconfigJs} $out/lib/firefox/defaults/pref/autoconfig.js
cp ${autoconfigCfg} $out/lib/firefox/autoconfig.cfg
'';
});
in {
config = {
home-manager.users.${config.user} = { pkgs, ... }: {
programs.firefox = {
enable = true;
package = firefoxWithAutoconfig;
profiles.default = {
settings = {
"browser.startup.homepage" = "https://mainframe.local/mainframe.html";
"sidebar.verticalTabs" = true;
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"toolkit.telemetry.server" = "127.0.0.1";
"toolkit.telemetry.server_owner" = "localhost";
"extensions.pocket.enabled" = false;
"extensions.screenshots.disabled" = true;
"browser.topsites.contile.enabled" = false;
"browser.formfill.enable" = false;
"browser.search.suggest.enabled" = false;
"browser.search.suggest.enabled.private" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
};
extensions.packages = with firefox-addons; [
noscript
ublock-origin
sponsorblock
];
};
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
};
};
};
};
}