summaryrefslogtreecommitdiff
path: root/modules/home-manager/personal/programs/firefox/extensions/default.nix
diff options
context:
space:
mode:
authorquentin@aristote.fr <quentin@aristote.fr>2026-10-13 11:12:18 +0200
committerquentin@aristote.fr <quentin@aristote.fr>2026-10-13 11:12:18 +0200
commit691c3c5d7d0b4a18db0ff78b8dd53e703220b2da (patch)
tree4f6fedba83075cb02980ecbb97d7cd8de1212a74 /modules/home-manager/personal/programs/firefox/extensions/default.nix
parent6723575ee409940ff6faee40fd6d602c03edc047 (diff)
downloadmy-nixpkgs-master.tar.gz
my-nixpkgs-master.tar.bz2
my-nixpkgs-master.tar.xz
home: firefox: extensions: declare settingsHEADmaster
Diffstat (limited to 'modules/home-manager/personal/programs/firefox/extensions/default.nix')
-rw-r--r--modules/home-manager/personal/programs/firefox/extensions/default.nix104
1 files changed, 104 insertions, 0 deletions
diff --git a/modules/home-manager/personal/programs/firefox/extensions/default.nix b/modules/home-manager/personal/programs/firefox/extensions/default.nix
new file mode 100644
index 0000000..f30ced8
--- /dev/null
+++ b/modules/home-manager/personal/programs/firefox/extensions/default.nix
@@ -0,0 +1,104 @@
+{
+ config,
+ lib,
+ ...
+}:
+let
+ extensions = {
+ canvasblocker = {
+ id = "CanvasBlocker@kkapsner.de";
+ # default settings look fine
+ };
+
+ url-in-title-keepass = {
+ id = "{45cf9154-a39d-4c84-93e7-840362a3d8d0}";
+ # no settings
+ };
+
+ clearurls = {
+ id = "{74145f27-f039-47ce-a470-a662b129930a}";
+ # default settings are fine and
+ # contain data that should be updated automatically
+ };
+
+ temporary-containers = {
+ id = "{c607c8df-14a7-4f28-894f-29e8722976af}";
+ # exported settings
+ settings = lib.fromJSON (builtins.readFile ./temporary-containers.json);
+ };
+
+ floccus = {
+ id = "floccus@handmadeideas.org";
+ # to replace with hm-managed bookmarks
+ };
+
+ darkreader = {
+ id = "addon@darkreader.org";
+ # no settings stored in browser-extension-data/
+ };
+
+ ublock-origin = {
+ id = "uBlock0@raymondhill.net";
+ settings = lib.fromJSON (builtins.readFile ./ublock-origin.json);
+ };
+
+ firefox-color = {
+ id = "FirefoxColor@mozilla.com";
+ settings.theme.colors =
+ let
+ mkBgColor = lib.mkForce (
+ with config.lib.stylix.colors;
+ {
+ r = base00-rgb-r;
+ g = base00-rgb-g;
+ b = base00-rgb-b;
+ }
+ );
+ in
+ {
+ frame = mkBgColor;
+ sidebar_border = mkBgColor;
+ popup_border = mkBgColor;
+ tab_baground_separator = mkBgColor;
+ tab_line = mkBgColor;
+ toolbar_field_border_focus = mkBgColor;
+ };
+ };
+ };
+in
+{
+ programs.firefox = {
+ policies.ExtensionSettings = {
+ "*".installation_mode = "blocked";
+ }
+ // lib.mapAttrs' (name: { id, ... }: {
+ name = id;
+ value = {
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi";
+ installation_mode = "force_installed";
+ updates_disabled = true;
+ };
+ }) extensions;
+
+ profiles.default.extensions.settings = lib.mapAttrs' (
+ _:
+ {
+ id,
+ settings ? { },
+ }:
+ {
+ name = id;
+ value =
+ if settings != { } then
+ {
+ force = true;
+ inherit settings;
+ }
+ else
+ {
+ force = false;
+ };
+ }
+ ) extensions;
+ };
+}