{ config, pkgs, identity, dotfilesPath, ...}: { programs.home-manager.enable = true; home.packages = with pkgs; [ firefox ]; programs.firefox = { enable = true; configPath = "${config.xdg.configHome}/mozilla/firefox"; profiles = { default = { id = 0; name = "default"; isDefault = true; settings = { "browser.startup.homepage" = "https://kagi.com"; "browser.search.defaultenginename" = "Kagi"; "browser.search.order.1" = "Kagi"; }; search = { force = true; default = "Kagi"; order = [ "Kagi" ]; engines = { "Kagi" = { urls = [{ template = "https://kagi.com/search?q={searchTerms}"; }]; icon = "https://kagi.com/favicon.ico"; # updateInterval = 24 * 60 * 60 * 1000; # every day }; # "Bing".metaData.hidden = true; # "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias }; }; userChrome = builtins.readFile ../.config/mozilla/userChrome.css; # TODO: I don't particularly like how this manages the extensions wrt permissions, so I just do this # manually rn # extensions = { # packages = with pkgs.nur.repos.rycee.firefox-addons; [ # ublock-origin # bitwarden # youtube enhancer # tab counter plus, https://addons.mozilla.org/en-US/firefox/addon/tab-counter-plus/ # return youtube dislike # facebook container # firefox multi account containers (MAC) # # # deferred on these ones for now: # singlefile # # ]; settings = { # Make userChrome load "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Defaults I dont want to trigger again "browser.bookmarks.addedImportButton" = true; "browser.bookmarks.restore_default_bookmarks" = false; "browser.engagement.fxa-toolbar-menu-button.has-used" = true; "browser.download.panel.shown" = true; "browser.toolbarbuttons.introduced.sidebar-button" = true; "identity.fxaccounts.toolbar.syncSetup.panelAccessed" = true; "toolkit.telemetry.reportingpolicy.firstRun" = false; "trailhead.firstrun.didSeeAboutWelcome" = true; # Content blocking "browser.contentblocking.category" = "strict"; # Disable all the suggestions "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; # URL bar suggestions that are not helpful "browser.urlbar.suggest.quicksuggest.sponsored" = false; # "browser.urlbar.suggest.quicksuggest.all" = false; # "browser.newtabpage.activity-stream.showWeather" = false; # Home page stuff "browser.newtabpage.activity-stream.widgets.weather.enabled" = false; # (v169; wasnt in v155) "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; # "browser.newtabpage.activity-stream.showSponsored" = false; # "browser.newtabpage.activity-stream.showSponsoredCheckboxes" = false; # (v169; wasnt in v155) "browser.newtabpage.activity-stream.showSearch" = false; # "browser.newtabpage.activity-stream.feeds.topsites" = false; # "browser.newtabpage.activity-stream.feeds.section.topstories" = false; # "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; # Recommend things as you browse (features and extension) "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;# # ...except this one "browser.urlbar.suggest.searches" = true; # Stop sending random data somewhere "datareporting.policy.dataSubmissionEnabled" = false; # ((apparently this is a "master switch" for the following, https://github.com/arkenfox/user.js/issues/1979#issuecomment-3092426359)) "datareporting.usage.uploadEnabled" = false; # (this is "Send daily usage ping to Mozilla") "datareporting.healthreport.uploadEnabled" = false; # (this is "Send technical and interaction data to Mozilla") # Do not update between major version "nimbus.rollouts.enabled" = false; # (this is "Allow Firefox to run Feature Studies" in the settings, Nimbus is Firefox's experimentation system https://firefox-source-docs.mozilla.org/toolkit/components/nimbus/docs/index.html) # (this is "Allow Firefox to improve features, performance, and stability between updates") # Ignore all the annoying autofill stuff, do not store it with Firefox "signon.autofillForms" = false; "signon.rememberSignons" = false; "signon.management.page.breach-alerts.enabled" = false; "signon.generation.enabled" = false; "extensions.formautofill.creditCards.enabled" = false; "extensions.formautofill.addresses.enabled" = false; #"extensions.formautofill.creditCards.reauth.optout" = "..."; Unused if not autofilling # ...except these are useful "dom.forms.autocomplete.formautofill" = true; # New sidebar (closer to tree-style-tabs) "sidebar.revamp" = true; "sidebar.verticalTabs" = true; "sidebar.verticalTabs.dragToPinPromo.dismissed" = true; "sidebar.new-sidebar.has-used" = true; # Eventually... # user_pref("doh-rollout.doneFirstRun", true); # user_pref("doh-rollout.home-region", "US"); # user_pref("doh-rollout.mode", 2); # user_pref("doh-rollout.self-enabled", true); # user_pref("doh-rollout.uri", "https://mozilla.cloudflare-dns.com/dns-query"); # user_pref("extensions.activeThemeID", "default-theme@mozilla.org"); # user_pref("extensions.ui.dictionary.hidden", true); # user_pref("extensions.ui.lastCategory", "addons://discover/"); # user_pref("extensions.ui.locale.hidden", true); # user_pref("extensions.ui.mlmodel.hidden", true); # user_pref("extensions.ui.sitepermission.hidden", true); # user_pref("extensions.webcompat.enable_shims", true); # user_pref("extensions.webcompat.perform_injections", true); # user_pref("extensions.webextensions.uuids", "{\"formautofill@mozilla.org\":\"06c055d2-0ab7-4150-94da-2684a4047fac\",\"newtab@mozilla.org\":\"cc7ff77f-048a-4eaf-b2b6-18dca9002f17\",\"pictureinpicture@mozilla.org\":\"6df88524-2ed7-4db1-9180-3923173df2c1\",\"addons-search-detection@mozilla.com\":\"49e85db1-e088-4aa2-98fd-832e71b8e196\",\"webcompat@mozilla.org\":\"9a310967-e580-48bf-b3e8-4eafebbc122d\",\"default-theme@mozilla.org\":\"980e9514-427a-40bd-ad9e-7780aa15af72\"}"); # user_pref("privacy.trackingprotection.emailtracking.enabled", true); # user_pref("privacy.trackingprotection.enabled", true); # user_pref("privacy.trackingprotection.socialtracking.enabled", true); #TODO: One thing I did not find a setting for was the "Restore old windows and tabs on open" option }; }; }; }; }