Files
sydnix/users/crumb/programs/firefox.nix
Madeleine Sydney 04a23ded90 feat(crumb): Configure Firefox
- Set search engines.
- Install extensions
- Set basic Firefox settings.
- Bump home-manager to use updated `programs.firefox` API.  Namely,
  `programs.firefox.profiles.NAME.extensions`.
2025-03-07 13:30:27 -07:00

123 lines
3.9 KiB
Nix

{ config, lib, pkgs, inputs, ... }@args:
let
pkgs' = import inputs.nixpkgs {
system = args.system;
overlays = [ inputs.nur.overlays.default ];
};
in {
programs.firefox = {
enable = true;
# Available language codes can be found on the releases page:
# https://releases.mozilla.org/pub/firefox/releases/134.0.2/linux-x86_64/xpi/.
# The string `134.0.2` may be substituted for any other Firefox release
# number.
languagePacks = [
"en-US"
"en-GB"
];
# Available options can be found at https://mozilla.github.io/policy-templates/.
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = false;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
# Weird advertiser shit.
FirefoxSuggest = {
WebSuggestions = false;
SponsoredSuggestions = false;
ImproveSuggest = false;
Locked = false;
};
# Weird advertiser shit.
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
# Firefox has an in-built screenshot tool that I do not need.
DisableFirefoxScreenshots = true;
# Disable pop-up windows that appear after installation and updates.
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
# You think you're so important, don't you, Firefox?
DontCheckDefaultBrowser = true;
# Only tabs not yet visiting a page. Alternatives: `always`, `never`,
# `newtab`.
DisplayBookmarksToolbar = "newtab";
# Alternatives: `always`, `never`, `default-on`, `default-on`.
DisplayMenuBar = "default-off";
# Alternative: `unified`, `separate`.
SearchBar = "unified";
};
profiles."msyds" = {
bookmarks = [];
# Check about:support for extension/add-on ID strings.
extensions = {
# Override non-declared settings.
force = true;
packages = with pkgs'.nur.repos.rycee.firefox-addons; [
ublock-origin
darkreader
privacy-badger
vimium
kagi-search
duckduckgo-privacy-essentials
edit-with-emacs
copy-as-org-mode
clearurls
];
};
search = {
# Override non-declared settings.
force = true;
# Precedence of search engines.
order = [ "Kagi" "DuckDuckGo" ];
default = "Kagi";
privateDefault = "DuckDuckGo";
engines = {
"Nixpkgs" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon =
"${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "!np" ];
};
};
};
# See `about:config` in Firefox for available settings.
settings = {
# Disable suggestions.
"browser.search.suggest.enabled" = false;
# Enable dark theme for non-website UI; the URL bar and such.
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
"browser.theme.content-theme" = 0;
"browser.theme.toolbar-theme" = 0;
# Disable sponsored suggestions.
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.urlbar.sponsoredTopSites" = false;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored"
= false;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites"
= false;
};
};
};
}