From d3e9b0c8968b76de77872ca394548790454a6f68 Mon Sep 17 00:00:00 2001 From: mir Date: Tue, 28 May 2024 13:34:05 -0800 Subject: [PATCH] move Firefox into its own module and fix extensions --- home.nix | 25 +--------------- modules/firefox.nix | 72 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 24 deletions(-) create mode 100644 modules/firefox.nix diff --git a/home.nix b/home.nix index 3a81748..e679959 100644 --- a/home.nix +++ b/home.nix @@ -5,6 +5,7 @@ with lib.hm.gvariant; imports = [ ./modules/dconf.nix ./modules/shell.nix + ./modules/firefox.nix ]; # Home Manager needs a bit of information about you and the # paths it should manage. @@ -90,30 +91,6 @@ with lib.hm.gvariant; init.defaultBranch = "main"; }; }; - programs.firefox = { - enable = true; - profiles = { - default = { - id = 0; - name = "default"; - isDefault = true; - settings = { - "browser.startup.homepage" = "https://search.marq42.xyz"; - "browser.search.defaultenginename" = "searx"; - "borwser.search.order.1" = "searx"; - }; - search = { - force = true; - default = "searx"; - order = [ "searx" "Google" ]; - }; - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - vimium - ]; - }; - }; - }; # programs.gdb = { # enable = true; # }; diff --git a/modules/firefox.nix b/modules/firefox.nix new file mode 100644 index 0000000..8d72c86 --- /dev/null +++ b/modules/firefox.nix @@ -0,0 +1,72 @@ +{ 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 "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}") + # (extension "tabliss" "extension@tabliss.io") + # (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}") + ]; + # 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 + }; + + 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" ]; + }; + # extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + # ublock-origin + # vimium + # mark-my-search + # ]; + }; + }; + }; + }