{ config, lib, pkgs, ... }: let cfg = config.my.home.firefox; in { options.my.home.firefox = with lib; { enable = mkEnableOption "firefox configuration"; }; config.programs.firefox = lib.mkIf cfg.enable { enable = true; extensions = with pkgs.nur.repos.rycee.firefox-addons; [ https-everywhere pkgs.nur.repos.rycee.firefox-addons."1password-x-password-manager" consent-o-matic refined-github sponsorblock ublock-origin ]; profiles = { default = { settings = { ## nix handle updates "app.update.auto" = false; "browser.bookmarks.showMobileBookmarks" = false; "browser.compactmode.show" = true; "browser.contentblocking.category" = "strict"; "browser.search.countryCode" = "US"; "browser.search.defaultenginename" = "DuckDuckGo"; "browser.search.isUS" = true; "browser.search.region" = "US"; "browser.search.selectedEngine" = "DuckDuckGo"; ## don't check if it's the default browser "browser.shell.checkDefaultBrowser" = false; "browser.startup.homepage" = "https://duckduckgo.com"; "browser.urlbar.placeholderName" = "DuckDuckGo"; ## keep this with ff 96 "media.ffmpeg.vaapi.enabled" = true; ## remove on ff 96 "media.ffvpx.enabled" = false; ## remove on ff 96 "media.navigator.mediadatadecoder_vpx_enabled" = true; "media.peerconnection.enabled" = true; ## keep this with ff 96 "media.rdd-ffmpeg.enabled" = true; ## remove on ff 96 "media.rdd-vpx.enabled" = false; ## Block third-party cookies "network.cookie.cookieBehavior" = 1; "privacy.donottrackheader.enabled" = true; "privacy.trackingprotection.enabled" = true; "privacy.trackingprotection.socialtracking.enabled" = true; }; userChrome = '' #TabsToolbar { visibility: collapse; } ''; }; }; }; }