diff --git a/lib/foxextensions.nix b/lib/foxextensions.nix index 48603de..24669f5 100644 --- a/lib/foxextensions.nix +++ b/lib/foxextensions.nix @@ -1,7 +1,5 @@ { lib, - dashNixAdditionalProps, - pkgs, name, ... }: let @@ -12,42 +10,49 @@ }; }; in { - options.mods.browser.${name}.extensions = lib.mkOption { - default = [ - (mkExtension "uBlock0@raymondhill.net" "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi") - (mkExtension "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}" "https://addons.mozilla.org/firefox/downloads/latest/user-agent-string-switcher/latest.xpi") - (mkExtension "{d7742d87-e61d-4b78-b8a1-b469842139fa}" "https://addons.mozilla.org/firefox/downloads/latest/vimium-ff/latest.xpi") - (mkExtension "firefox@ghostery.com" "https://addons.mozilla.org/firefox/downloads/latest/ghostery/latest.xpi") - (mkExtension "CanvasBlocker@kkapsner.de" "https://addons.mozilla.org/firefox/downloads/latest/canvasblocker/latest.xpi") - (mkExtension "jid1-KKzOGWgsW3Ao4Q@jetpack" "https://addons.mozilla.org/firefox/downloads/latest/i-dont-care-about-cookies/latest.xpi") - (mkExtension "keepassxc-browser@keepassxc.org" "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi") - (mkExtension "@react-devtools" "https://addons.mozilla.org/firefox/downloads/latest/react-devtools/latest.xpi") - (mkExtension "extension@redux.devtools" "https://addons.mozilla.org/firefox/downloads/latest/reduxdevtools/latest.xpi") - (mkExtension "private-relay@firefox.com" "https://addons.mozilla.org/firefox/downloads/latest/private-relay/latest.xpi") - (mkExtension "addon@darkreader.org" "file://${pkgs.callPackage ../patches/darkreader.nix {inherit lib dashNixAdditionalProps;}}/latest.xpi") - ]; - example = [ - { - "78272b6fa58f4a1abaac99321d503a20@proton.me" = { - install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/proton-pass/latest.xpi"; - installation_mode = "normal_installed"; + options.mods.browser.${name} = { + darkreader = lib.mkOption { + default = true; + example = false; + type = lib.types.bool; + description = "Whether to enable darkreader"; + }; + extensions = lib.mkOption { + default = [ + (mkExtension "uBlock0@raymondhill.net" "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi") + (mkExtension "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}" "https://addons.mozilla.org/firefox/downloads/latest/user-agent-string-switcher/latest.xpi") + (mkExtension "{d7742d87-e61d-4b78-b8a1-b469842139fa}" "https://addons.mozilla.org/firefox/downloads/latest/vimium-ff/latest.xpi") + (mkExtension "firefox@ghostery.com" "https://addons.mozilla.org/firefox/downloads/latest/ghostery/latest.xpi") + (mkExtension "CanvasBlocker@kkapsner.de" "https://addons.mozilla.org/firefox/downloads/latest/canvasblocker/latest.xpi") + (mkExtension "jid1-KKzOGWgsW3Ao4Q@jetpack" "https://addons.mozilla.org/firefox/downloads/latest/i-dont-care-about-cookies/latest.xpi") + (mkExtension "keepassxc-browser@keepassxc.org" "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi") + (mkExtension "@react-devtools" "https://addons.mozilla.org/firefox/downloads/latest/react-devtools/latest.xpi") + (mkExtension "extension@redux.devtools" "https://addons.mozilla.org/firefox/downloads/latest/reduxdevtools/latest.xpi") + (mkExtension "private-relay@firefox.com" "https://addons.mozilla.org/firefox/downloads/latest/private-relay/latest.xpi") + ]; + example = [ + { + "78272b6fa58f4a1abaac99321d503a20@proton.me" = { + install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/proton-pass/latest.xpi"; + installation_mode = "normal_installed"; + }; + } + ]; + type = with lib.types; listOf anything; + description = '' + List of extensions via attrsets: + ```nix + # id + # figure out the id via: + # nix run github:tupakkatapa/mozid -- 'https://addons.mozilla.org/en/firefox/addon/ublock-origin' + "uBlock0@raymondhill.net" = { + # install url + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + # method https://mozilla.github.io/policy-templates/#extensionsettings + installation_mode = "force_installed"; }; - } - ]; - type = with lib.types; listOf anything; - description = '' - List of extensions via attrsets: - ```nix - # id - # figure out the id via: - # nix run github:tupakkatapa/mozid -- 'https://addons.mozilla.org/en/firefox/addon/ublock-origin' - "uBlock0@raymondhill.net" = { - # install url - install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; - # method https://mozilla.github.io/policy-templates/#extensionsettings - installation_mode = "force_installed"; - }; - ``` - ''; + ``` + ''; + }; }; } diff --git a/modules/programs/browser/firefox.nix b/modules/programs/browser/firefox.nix index 5a0abac..6493b79 100644 --- a/modules/programs/browser/firefox.nix +++ b/modules/programs/browser/firefox.nix @@ -103,7 +103,19 @@ in { extraPolicies = config.mods.browser.firefox.configuration // { - ExtensionSettings = builtins.foldl' (acc: ext: acc // ext) {} config.mods.browser.firefox.extensions; + ExtensionSettings = builtins.foldl' (acc: ext: acc // ext) {} (config.mods.browser.firefox.extensions + ++ ( + if (config.mods.browser.firefox.darkreader) + then [ + { + "addon@darkreader.org" = { + install_url = "file://${pkgs.callPackage ../../../patches/darkreader.nix {inherit lib dashNixAdditionalProps;}}/latest.xpi"; + installation_mode = "normal_installed"; + }; + } + ] + else [] + )); }; }; profiles = builtins.listToAttrs config.mods.browser.firefox.profiles; diff --git a/modules/programs/browser/librewolf.nix b/modules/programs/browser/librewolf.nix index 79f67af..a290fe2 100644 --- a/modules/programs/browser/librewolf.nix +++ b/modules/programs/browser/librewolf.nix @@ -97,7 +97,19 @@ in { extraPolicies = config.mods.browser.librewolf.configuration // { - ExtensionSettings = builtins.foldl' (acc: ext: acc // ext) {} config.mods.browser.librewolf.extensions; + ExtensionSettings = builtins.foldl' (acc: ext: acc // ext) {} (config.mods.browser.librewolf.extensions + ++ ( + if (config.mods.browser.firefox.darkreader) + then [ + { + "addon@darkreader.org" = { + install_url = "file://${pkgs.callPackage ../../../patches/darkreader.nix {inherit lib dashNixAdditionalProps;}}/latest.xpi"; + installation_mode = "normal_installed"; + }; + } + ] + else [] + )); }; }; profiles = builtins.listToAttrs config.mods.browser.librewolf.profiles; diff --git a/modules/programs/browser/zen.nix b/modules/programs/browser/zen.nix index 571edf3..5049079 100644 --- a/modules/programs/browser/zen.nix +++ b/modules/programs/browser/zen.nix @@ -130,7 +130,19 @@ in { extraPolicies = config.mods.browser.zen.configuration // { - ExtensionSettings = builtins.foldl' (acc: ext: acc // ext) {} config.mods.browser.zen.extensions; + ExtensionSettings = builtins.foldl' (acc: ext: acc // ext) {} (config.mods.browser.zen.extensions + ++ ( + if (config.mods.browser.firefox.darkreader) + then [ + { + "addon@darkreader.org" = { + install_url = "file://${pkgs.callPackage ../../../patches/darkreader.nix {inherit lib dashNixAdditionalProps;}}/latest.xpi"; + installation_mode = "normal_installed"; + }; + } + ] + else [] + )); }; }; profiles = builtins.listToAttrs config.mods.browser.zen.profiles;