{ lib, config, pkgs, nur, inputs, ... }: # very good info in https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265 # most of this file is pasted from that thread { programs.firefox = { enable = true; package = pkgs.wrapFirefox pkgs.firefox-unwrapped { extraPolicies = { DisableTelemetry = true; # add policies here... /* ---- PREFERENCES ---- */ # Set preferences shared by all profiles. Preferences = { "browser.contentblocking.category" = { Value = "strict"; Status = "locked"; }; # add global preferences here... }; }; }; policies = { 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 [ # (extension "tree-style-tab" "treestyletab@piro.sakura.ne.jp") (extension "ublock-origin" "uBlock0@raymondhill.net") # (extension "umatrix" "uMatrix@raymondhill.net") (extension "libredirect" "7esoorv3@alefvanoon.anonaddy.me") (extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}") (extension "mark-my-search" "{3c87dcad-dbbd-4be1-b07b-b6d0739b0aec}") (extension "vimium" "{d7742d87-e61d-4b78-b8a1-b469842139fa}") (extension "beautiful-alpen-blue" "{b96cf6da-f1b1-4b9d-9e69-98e7da9dd7c3}") ]; # 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 # mir note: or just go to about:debugging#/runtime/this-firefox and copy the first field "Extension ID" }; profiles = { default = { id = 0; name = "default"; isDefault = true; settings = { "browser.startup.homepage" = "https://search.marq42.xyz"; "browser.search.defaultenginename" = "searx"; "browser.search.order.1" = "searx"; }; search = { force = true; default = "searx"; order = [ "searx" "Google" ]; }; # userChrome = '' # !important @import "~/.mozilla/safari-userchrome.css"; # ''; }; }; }; home.file.".mozilla/safari-userchrome.css".source = builtins.fetchurl { url = "https://gist.githubusercontent.com/janoamaral/5c0a6e944ca31d2a6a51712d0c453d48/raw/6e1f0d1e3e31400d467302da3198c3e9c3caa647/userChrome.css"; sha256 = "19hbf9kf93ggryabbxz5h9nsm2ymzjg369b8bld818a515cx4vhc"; }; }