diff --git a/home-modules/browser.nix b/home-modules/browser.nix index 1a6685b..d462ab3 100644 --- a/home-modules/browser.nix +++ b/home-modules/browser.nix @@ -1,6 +1,70 @@ -{ pkgs, ... }: +{ lib, pkgs, ... }: +let + firefoxApplicationId = "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"; + firefoxAddons = pkgs.nur.repos.rycee.firefox-addons; + zenQolExtensions = with firefoxAddons; [ + ublock-origin + onepassword-password-manager + sponsorblock + youtube-recommended-videos + darkreader + vimium + return-youtube-dislikes + react-devtools + firefox-color + pay-by-privacy + bypass-paywalls-clean + translate-web-pages + user-agent-string-switcher + wappalyzer + control-panel-for-twitter + copy-selected-tabs-to-clipboard + dearrow + violentmonkey + tst-indent-line + ]; + # Extra Tor extensions reduce anonymity; keep this to the selected subset. + torQolExtensions = with firefoxAddons; [ + ublock-origin + sponsorblock + youtube-recommended-videos + return-youtube-dislikes + dearrow + translate-web-pages + violentmonkey + bypass-paywalls-clean + react-devtools + wappalyzer + ]; + installTorExtension = + addon: + let + xpi = "${addon}/share/mozilla/extensions/${firefoxApplicationId}/${addon.addonId}.xpi"; + in + '' + install -Dm444 "${xpi}" \ + "$out/share/tor-browser/distribution/extensions/${addon.addonId}.xpi" + install -Dm444 "${xpi}" \ + "$out/share/tor-browser/TorBrowser/Data/Browser/profile.default/extensions/${addon.addonId}.xpi" + ''; + torBrowser = + (pkgs.tor-browser.override { + extraPrefs = '' + // Prefer Tor Browser's Safer mode by default without locking the UI. + defaultPref("browser.security_level.security_slider", 2); + defaultPref("browser.security_level.security_custom", false); + ''; + }).overrideAttrs + (old: { + installPhase = (old.installPhase or "") + '' + ${lib.concatMapStringsSep "\n" installTorExtension torQolExtensions} + ''; + }); +in { + home.packages = [ torBrowser ]; + programs.zen-browser = { enable = true; policies = { @@ -106,27 +170,7 @@ } } ''; - extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - onepassword-password-manager - sponsorblock - youtube-recommended-videos - darkreader - vimium - return-youtube-dislikes - react-devtools - firefox-color - pay-by-privacy - bypass-paywalls-clean - translate-web-pages - user-agent-string-switcher - wappalyzer - control-panel-for-twitter - copy-selected-tabs-to-clipboard - dearrow - violentmonkey - tst-indent-line - ]; + extensions.packages = zenQolExtensions; search = { default = "SearXNG"; privateDefault = "SearXNG"; diff --git a/home-modules/packages.nix b/home-modules/packages.nix index ff29bef..6448364 100644 --- a/home-modules/packages.nix +++ b/home-modules/packages.nix @@ -164,7 +164,6 @@ in qbittorrent-enhanced signal-desktop slack - tor-browser vesktop vlc zulip