{ pkgs, ... }: { programs = { firefox = { enable = true; package = pkgs.firefox; languagePacks = [ "en-GB" ]; policies = { "DisplayMenuBar" = true; "ExtensionSettings" = with builtins; let extension = shortId: uuid: { name = uuid; value = { install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi"; installation_mode = "normal_installed"; }; }; in listToAttrs [ # Security / Privacy (extension "ublock-origin" "uBlock0@raymondhill.net") (extension "keepassxc-browser" "keepassxc-browser@keepassxc.org") (extension "cookie-autodelete" "CookieAutoDelete@kennydo.com") # Annoyances (extension "dont-accept-webp" "dont-accept-webp@jeffersonscher.com") (extension "sponsorblock" "sponsorBlocker@ajay.app") (extension "bandcamp-player-volume-control" "{308ec088-284a-40fe-ae14-7c917526f694}") # UI / CSS (extension "darkreader" "addon@darkreader.org") (extension "rsspreview" "{7799824a-30fe-4c67-8b3e-7094ea203c94}") (extension "tree-style-tab" "treestyletab@piro.sakura.ne.jp") (extension "traduzir-paginas-web" "{036a55b4-5e72-4d05-a06c-cba2dfcc134a}") # Additional Functionality (extension "betterttv" "firefox@betterttv.net") (extension "multi-account-containers" "@testpilot-containers") (extension "gumbo-twitch-companion" "{59a39734-1e66-452e-a7b8-cc79f72062f0}") (extension "joplin-web-clipper" "{8419486a-54e9-11e8-9401-ac9e17909436}") (extension "tab-reloader" "jid0-bnmfwWw2w2w4e4edvcdDbnMhdVg@jetpack") (extension "tab-session-manager" "Tab-Session-Manager@sienori") (extension "user-agent-string-switcher" "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}") (extension "violentmonkey" "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}") ]; # To add additional extensions, find it on addons.mozilla.org, find # the short ID in the url (like https://addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/) # Then, download the XPI by filling it in to the install_url template, unzip it, # run `jq .browser_specific_settings.gecko.id manifest.json` or # `jq .applications.gecko.id manifest.json` to get the UUID }; profiles.default = import ./firefox-profile.nix // { id = 0; name = "default"; isDefault = true; }; }; }; }