From 0d5b95740fba2e759311d4210e6e9ac99fed76ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Schr=C3=B6ter?= Date: Tue, 25 Apr 2023 18:32:26 +0200 Subject: [PATCH] feat(firefox): base config on arkenfox user.js --- home/browsers/firefox.nix | 111 +++++++++----------------------------- 1 file changed, 25 insertions(+), 86 deletions(-) diff --git a/home/browsers/firefox.nix b/home/browsers/firefox.nix index a2ee096..bba999a 100644 --- a/home/browsers/firefox.nix +++ b/home/browsers/firefox.nix @@ -5,96 +5,35 @@ let firefox-addons = pkgs.nur.repos.rycee.firefox-addons // (import ./firefoxAddons.nix { inherit pkgs lib; }); - prefer-dark-theme = - config.gtk.gtk3.extraConfig.gtk-application-prefer-dark-theme; + inherit (import ../modules/firefox/common.nix { inherit config lib pkgs; }) + mkConfig; + arkenfoxConfig = + builtins.readFile "${pkgs.nur.repos.slaier.arkenfox-userjs}/user.js"; + + # Relax some arkenfox settings, to get a less strict + # alternative to Mullvad Browser to fallback on. sharedSettings = { - # Privacy & Security Improvements - "browser.contentblocking.category" = "strict"; - "browser.urlbar.speculativeConnect.enabled" = false; - "dom.security.https_only_mode" = true; - "media.eme.enabled" = false; # disables DRM - # causes CORS error on waves.exchange when set to 2 - "network.http.referer.XOriginPolicy" = 1; - "network.http.referer.XOriginTrimmingPolicy" = 2; - "network.IDN_show_punycode" = true; - # forces ui.systemUsesDarkTheme to false - # "privacy.resistFingerprinting" = true; - # "webgl.disabled" = true; - - # Disable Telemetry - "browser.newtabpage.activity-stream.feeds.telemetry" = false; - "browser.newtabpage.activity-stream.telemetry" = false; - "browser.ping-centre.telemetry" = false; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.bhrPing.enabled" = false; - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.hybridContent.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; - "toolkit.telemetry.reportingpolicy.firstRun" = false; - "toolkit.telemetry.shutdownPingSender.enabled" = false; - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.updatePing.enabled" = false; - "datareporting.healthreport.uploadEnabled" = false; - "datareporting.healthreport.service.enabled" = false; - "datareporting.policy.dataSubmissionEnabled" = false; - - # Disable Personalisation & Sponsored Content - "browser.discovery.enabled" = false; - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = - false; - "browser.newtabpage.activity-stream.feeds.snippets" = false; - - # Disable Experiments & Studies - "experiments.activeExperiment" = false; - "experiments.enabled" = false; - "experiments.supported" = false; - "network.allow-experiments" = false; - "app.normandy.enabled" = false; - "app.shield.optoutstudies.enabled" = false; - - # Search - "browser.search.defaultenginename" = "DuckDuckGo"; - "browser.search.selectedEngine" = "DuckDuckGo"; - - # Disable DNS over HTTPS (done system-wide) - "network.trr.mode" = 5; - - # Theme - "browser.theme.toolbar-theme" = 0; - "ui.systemUsesDarkTheme" = prefer-dark-theme; - "extensions.activeThemeID" = concatStrings [ - "firefox-compact-" - (if prefer-dark-theme then "dark" else "light") - "@mozilla.org" - ]; - "devtools.theme" = if prefer-dark-theme then "dark" else "light"; - - # i18n - "intl.accept_languages" = "en-GB, en"; - "intl.regional_prefs.use_os_locales" = true; - - # dev tools - "devtools.inspector.color-scheme-simulation.enabled" = true; - "devtools.inspector.showAllAnonymousContent" = true; - - # Other - "browser.uitour.enabled" = false; + # Enable restoring sessions "browser.startup.page" = 3; - "browser.toolbars.bookmarks.visibility" = "newtab"; - "browser.tabs.inTitlebar" = 1; - "browser.aboutConfig.showWarning" = false; - "signon.rememberSignons" = false; - "services.sync.engine.passwords" = false; - "extensions.update.enabled" = false; - "extensions.update.autoUpdateDefault" = false; + + # Don't delete data on shutdown (cookies, sessions, windows, ...) + "privacy.sanitize.sanitizeOnShutdown" = false; + + # Don't do default browser check + "browser.shell.checkDefaultBrowser" = false; + + # Disable Pocket "extensions.pocket.enabled" = false; }; + # use extraConfig to load arkenfox user.js before settings + sharedExtraConfig = '' + ${arkenfoxConfig} + + ${mkConfig sharedSettings} + ''; + commonExtensions = with firefox-addons; [ ublock-origin bitwarden @@ -110,12 +49,12 @@ in { profiles = { private = { id = 0; - settings = sharedSettings; + extraConfig = sharedExtraConfig; # extensions = commonExtensions ++ (with firefox-addons; [ metamask ]); }; work = { id = 1; - settings = sharedSettings; + extraConfig = sharedExtraConfig; # extensions = commonExtensions # ++ (with firefox-addons; [ react-devtools reduxdevtools ]); };