diff --git a/homes/x86_64-linux/jo/default.nix b/homes/x86_64-linux/jo/default.nix index 3d7ccf8..24a84b6 100644 --- a/homes/x86_64-linux/jo/default.nix +++ b/homes/x86_64-linux/jo/default.nix @@ -12,6 +12,19 @@ puzzlevision = { themes.catppuccin.enable = true; apps.zed.enable = true; + apps.firefox = { + enable = true; + extensions = [ + "uBlock0@raymondhill.net" + "ATBC@EasonWong" + "languagetool-webextension@languagetool.org" + "firefox-enpass@enpass.io" + "firefox@tampermonkey.net" + "wappalyzer@crunchlabz.com" + "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}" + "{d49033ac-8969-488c-afb0-5cdb73957f41}" + ]; + }; }; sops.secrets.wakatime-cfg = { @@ -27,7 +40,6 @@ enpass ## WEB - firefox ungoogled-chromium ## EDITORS diff --git a/modules/home/apps/firefox/default.nix b/modules/home/apps/firefox/default.nix new file mode 100644 index 0000000..1278ccc --- /dev/null +++ b/modules/home/apps/firefox/default.nix @@ -0,0 +1,39 @@ +{ + lib, + self, + config, + ... +}: +let + inherit (self) namespace; + inherit (self.lib) mkOpt; + inherit (lib) mkEnableOption types mkIf; + + cfg = config.${namespace}.apps.firefox; +in +{ + options.${namespace}.apps.firefox = { + enable = mkEnableOption "the Firefox browser."; + extensions = mkOpt (types.listOf types.str) [ + "uBlock0@raymondhill.net" + ] "List of extension slugs to install"; + }; + + config = mkIf cfg.enable { + programs.firefox = { + enable = true; + policies = { + ExtensionSettings = builtins.foldl' ( + acc: id: + acc + // { + ${id} = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi"; + installation_mode = "force_installed"; + }; + } + ) { } cfg.extensions; + }; + }; + }; +}