old
  1{
  2  pkgs,
  3  pkgs-stable,
  4  ...
  5}: {
  6  catppuccin.firefox.profiles.default.enable = false;
  7
  8  programs.firefox = {
  9    enable = true;
 10    package = pkgs-stable.firefox;
 11    languagePacks = ["zh-CN" "en-US"];
 12    nativeMessagingHosts = with pkgs; [
 13      kdePackages.plasma-browser-integration
 14    ];
 15
 16    policies = {
 17      DisableAppUpdate = true;
 18      DisablePocket = true;
 19      DisableSetDesktopBackground = true;
 20      DisableTelemetry = true;
 21      DontCheckDefaultBrowser = true;
 22      ExtensionUpdate = false;
 23      NoDefaultBookmarks = true;
 24      OfferToSaveLogins = false;
 25      PasswordManagerEnabled = false;
 26    };
 27
 28    profiles.default = {
 29      id = 0;
 30      isDefault = true;
 31      search = {
 32        force = true;
 33        default = "bing";
 34        privateDefault = "duckduckgo";
 35        order = [
 36          "bing"
 37          "google"
 38          "duckduckgo"
 39        ];
 40        engines = {
 41          baidu.metaData.hidden = true;
 42        };
 43      };
 44      extensions.packages = let
 45        my-addons = import ./addons (with pkgs; {
 46          inherit lib fetchurl stdenv;
 47          buildFirefoxXpiAddon = pkgs.nur.repos.rycee.firefox-addons.buildFirefoxXpiAddon;
 48        });
 49      in
 50        with pkgs.nur.repos.rycee.firefox-addons; [
 51          ublock-origin
 52          bitwarden
 53          tampermonkey
 54          rsshub-radar
 55          auto-tab-discard
 56          aria2-integration
 57          firefox-color
 58          plasma-integration
 59          aw-watcher-web
 60          my-addons.lulu-translator
 61        ];
 62      settings = {
 63        # No First Run
 64        "app.normandy.first_run" = false;
 65        "doh-rollout.doneFirstRun" = true;
 66        "toolkit.telemetry.reportingpolicy.firstRun" = false;
 67        "trailhead.firstrun.didSeeAboutWelcome" = true;
 68        "browser.toolbarbuttons.introduced.sidebar-button" = true;
 69        "sidebar.old-sidebar.has-used" = true;
 70        "sidebar.new-sidebar.has-used" = true;
 71        # Language
 72        "general.useragent.locale" = "zh-CN";
 73        "intl.locale.requested" = "zh-CN,en-US";
 74        "browser.translations.mostRecentTargetLanguages" = "zh-Hans";
 75        # No Ads
 76        "browser.urlbar.suggest.topsites" = false;
 77        "browser.urlbar.suggest.trending" = false;
 78        "browser.newtabpage.pinned" = [];
 79        "browser.newtabpage.activity-stream.showSponsored" = false;
 80        "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
 81        # General
 82        "browser.startup.page" = 3; # Open prev session pages
 83        "browser.tabs.unloadOnLowMemory" = true;
 84        "widget.use-xdg-desktop-portal.file-picker" = 1;
 85        # Apperance
 86        "browser.newtabpage.activity-stream.feeds.topsites" = false;
 87        "browser.newtabpage.activity-stream.default.sites" = "";
 88        "browser.toolbars.bookmarks.visibility" = "always";
 89        "sidebar.verticalTabs" = true;
 90        "sidebar.main.tools" = "syncedtabs";
 91        "sidebar.visibility" = "expand-on-hover";
 92        "browser.uiCustomization.state" = {
 93          "placements" = {
 94            "widget-overflow-fixed-list" = [];
 95            "unified-extensions-area" = [];
 96            "nav-bar" = [
 97              "sidebar-button"
 98              "back-button"
 99              "forward-button"
100              "stop-reload-button"
101              "vertical-spacer"
102              "customizableui-special-spring7"
103              "urlbar-container"
104              "customizableui-special-spring2"
105              "unified-extensions-button"
106              "fxa-toolbar-menu-button"
107            ];
108            "toolbar-menubar" = ["menubar-items"];
109            "TabsToolbar" = [];
110            "vertical-tabs" = ["tabbrowser-tabs"];
111            "PersonalToolbar" = ["personal-bookmarks"];
112          };
113          "seen" = ["developer-button"];
114          "dirtyAreaCache" = [];
115        };
116        # Disable Telemetry
117        "toolkit.telemetry.unified" = false;
118        "toolkit.telemetry.enabled" = false;
119        "toolkit.telemetry.server" = "data:,";
120        "toolkit.telemetry.archive.enabled" = false;
121        "toolkit.telemetry.newProfilePing.enabled" = false;
122        "toolkit.telemetry.shutdownPingSender.enabled" = false;
123        "toolkit.telemetry.updatePing.enabled" = false;
124        "toolkit.telemetry.bhrPing.enabled" = false;
125        "toolkit.telemetry.firstShutdownPing.enabled" = false;
126        "toolkit.telemetry.shutdownPingSender.enabledFirstsession" = false;
127        "browser.ping-centre.telemetry" = false;
128        "browser.newtabpage.activity-stream.feeds.telemetry" = false;
129        "browser.newtabpage.activity-stream.telemetry" = false;
130      };
131    };
132  };
133}