93 lines
4.5 KiB
Nix
93 lines
4.5 KiB
Nix
{ 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"
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|