146 lines
6.5 KiB
Nix
146 lines
6.5 KiB
Nix
{ inputs, config, lib, pkgs, ... }:
|
|
|
|
let
|
|
cfg = config.ptw.programs.firefox;
|
|
in {
|
|
options.ptw.programs.firefox = {
|
|
enable = lib.mkEnableOption "Configure Firefox using HomeManager";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
environment = {
|
|
systemPackages = with pkgs; [ 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_ENABLE_WAYLAND" = "1";
|
|
};
|
|
};
|
|
|
|
home-manager.users."${config.ptw.system.singleUser}".programs.firefox = {
|
|
enable = true;
|
|
profiles.default = {
|
|
id = 0; # NOTE: This is important
|
|
isDefault = true;
|
|
name = "Default Profile";
|
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
|
#https-everywhere
|
|
ublock-origin
|
|
umatrix
|
|
decentraleyes
|
|
privacy-redirect
|
|
];
|
|
|
|
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;
|
|
# UI
|
|
"ui.key.menuAccessKeyFocuses" = false;
|
|
# 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
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|