nixos-config/modules/programs/firefox/default.nix

137 lines
6.2 KiB
Nix

{ config, pkgs, ... }:
{
config = {
environment = {
systemPackages = with pkgs; [ unstable.firefox-wayland tor-browser-bundle-bin ];
# Deploy a Firefox policy to set the search engine and do some other things
etc."firefox/policies/policies.json".source = ./policies.json;
sessionVariables = {
# Enable multi-touch...
"MOZ_USE_XINPUT2" = "1";
# ... and Wayland
"MOZ_USE_WAYLAND" = "1";
};
};
home-manager.users."${config.system.singleUser}".programs.firefox = {
enable = true;
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
https-everywhere
ublock-origin
umatrix
decentraleyes
privacy-redirect
];
profiles.default = {
id = 0; # NOTE: This is important
isDefault = true;
name = "Default Profile";
settings = {
"browser.search.suggest.enabled" = false;
"browser.tabs.drawInTitlebar" = true;
"browser.aboutConfig.showWarning" = false;
"browser.crashReports.unsubmittedCheck.autoSubmit" = false;
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
"browser.crashReports.unsubmittedCheck.enabled" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
"browser.newtabpage.enabled" = false;
"browser.newtabpage.enhanced" = false;
"browser.newtabpage.introShown" = true;
"browser.send_pings" = false;
"browser.shell.checkDefaultBrowser" = false; # NixOS is a bit wonky here
"app.shield.optoutstudies.enabled" = false;
"app.normandy.api_url" = "";
"app.normandy.enabled" = false;
"breakpad.reportURL" = "";
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSite" = false;
"signon.autofillForms" = false;
"signon.rememberSignons" = false;
"signon.management.page.breach-alerts.enabled" = false;
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.cachedClientID" = "";
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.hybridContent.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.prompted" = 2;
"toolkit.telemetry.rejected" = true;
"toolkit.telemetry.reportingpolicy.firstRun" = false;
"toolkit.telemetry.server" = "";
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.unifiedIsOptIn" = false;
"toolkit.telemetry.updatePing.enabled" = false;
"webgl.disabled" = true;
"webgl.renderer-string-override" = " ";
"webgl.vendor-string-override" = " ";
"experiments.activeExperiment" = false;
"experiments.enabled" = false;
"experiments.manifest.uri" = "";
"experiments.supported" = false;
"extensions.getAddons.cache.enabled" = false;
"extensions.getAddons.showPane" = false;
"extensions.pocket.enabled" = false;
"extensions.screenshots.upload-disabled" = true;
"extensions.shield-recipe-client.api_url" = "";
"extensions.shield-recipe-client.enabled" = false;
"extensions.webservice.discoverURL" = "";
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"media.autoplay.default" = 2;
"media.eme.enabled" = false;
"media.gmp-widevinecdm.enabled" = false;
"media.navigator.enabled" = false;
"media.peerconnection.enabled" = false;
"media.video_stats.enabled" = false;
"network.IDN_show_punycode" = true;
"network.allow-experiments" = false;
"network.captive-portal-service.enabled" = false;
"network.cookie.cookieBehavior" = 1;
"network.dns.disablePrefetch" = true;
"network.dns.disablePrefetchFromHTTPS" = true;
"network.http.referer.spoofSource" = true;
"network.http.speculative-parallel-limit" = 0;
"network.predictor.enable-prefetch" = false;
"network.predictor.enabled" = false;
"network.prefetch-next" = false;
"network.trr.mode" = 5;
"privacy.donottrackheader.enabled" = true;
"privacy.donottrackheader.value" = 1;
"privacy.trackingprotection.cryptomining.enabled" = true;
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.fingerprinting.enabled" = true;
"privacy.trackingprotection.pbmode.enabled" = true;
"privacy.usercontext.about_newtab_segregation.enabled" = true;
"security.ssl.disable_session_identifiers" = true;
# Hardware Video Acceleration
"media.ffmpeg.vaapi.enabled" = true;
"media.ffvpx.enabled" = false;
"media.rdd-vpx.enabled" = false;
"media.navigator.mediadataencoder_vpx_enabled" = true;
# WebRender
"gfx.webrender.all" = true;
# Better smooth scrolling
"general.smoothScroll.msdPhysics.continuousMotionMaxDeltaMS" = 250;
"general.smoothScroll.msdPhysics.enabled" = true;
"general.smoothScroll.msdPhysics.motionBeginSpringConstant" = 450;
"general.smoothScroll.msdPhysics.regularSpringConstant" = 450;
"general.smoothScroll.msdPhysics.slowdownMinDeltaMS" = 50;
"general.smoothScroll.msdPhysics.slowdownMinDeltaRatio;0" = 4;
"general.smoothScroll.msdPhysics.slowdownSpringConstant" = 5000;
"mousewheel.min_line_scroll_amount" = 22;
"toolkit.scrollbox.horizontalScrollDistance" = 4;
"toolkit.scrollbox.verticalScrollDistance" = 5;
# Misc
"layout.spellcheckDefault" = 0; # I don't use spellcheck
"extensions.activeThemeID" = "firefox-alpenglow@mozilla.org"; # It's a nice theme
};
};
};
};
}