Merge with Coded's config

As we're working on similar things, it makes sense to make a single
config with all our stuff together. We've named our coalition "chimera"
as Coded's devices are named after cat breeds and mine are named after
bird species. We'll be using NixOS options to enable us to have
different configurations anywhere we want that

Co-Authored-By: Samuel Shuert <coded@clicks.codes>
Change-Id: Idb102526d84e76edb0bfe7153bd18dfe8566516b
Reviewed-on: https://git.clicks.codes/c/Chimera/NixFiles/+/382
Reviewed-by: Samuel Shuert <coded@clicks.codes>
Tested-by: Skyler Grey <minion@clicks.codes>
diff --git a/modules/home/browser/chromium/default.nix b/modules/home/browser/chromium/default.nix
new file mode 100644
index 0000000..16dd34e
--- /dev/null
+++ b/modules/home/browser/chromium/default.nix
@@ -0,0 +1,33 @@
+{ lib, config, ... }: {
+  options.chimera.browser.chromium = {
+    enable = lib.mkEnableOption "Use chromium browser";
+    extensions = {
+      bitwarden.enable = lib.mkEnableOption "Turn on Bitwarden extension";
+      youtube = {
+        sponsorBlock.enable = lib.mkEnableOption "Turn on Sponsor Block";
+        returnDislike.enable = lib.mkEnableOption "Turn on Return Youtube Dislike";
+        deArrow.enable = lib.mkEnableOption "Turn on De Arrow";
+      };
+      reactDevTools.enable = lib.mkEnableOption "Turn on React Dev Tools";
+      ublockOrigin.enable = lib.mkEnableOption "Turn on uBlock Origin ad blocker";
+    };
+    extraExtensions = lib.mkOption {
+      type = lib.types.listOf (lib.types.either { id = lib.types.str; } { id = lib.types.str; crxPath = lib.types.path; version = lib.types.str; });
+      description = "Extra extensions to add to chromium on launch";
+      default = [];
+    };
+  };
+  config = lib.mkIf config.chimera.browser.chromium.enable ({
+    programs.chromium = {
+      enable = true;
+      extensions =
+        (if config.chimera.browser.chromium.extensions.bitwarden.enable then [{ id = "nngceckbapebfimnlniiiahkandclblb"; }] else []) #Bitwarden
+        ++ (if config.chimera.browser.chromium.extensions.youtube.sponsorBlock.enable then [{ id = "mnjggcdmjocbbbhaepdhchncahnbgone"; }] else []) #Sponsor Block
+        ++ (if config.chimera.browser.chromium.extensions.youtube.returnDislike.enable then [{ id = "gebbhagfogifgggkldgodflihgfeippi"; }] else []) #Return youtube dislike
+        ++ (if config.chimera.browser.chromium.extensions.youtube.deArrow.enable then [{ id = "enamippconapkdmgfgjchkhakpfinmaj"; }] else []) #DeArrow
+        ++ (if config.chimera.browser.chromium.extensions.reactDevTools.enable then [{ id = "fmkadmapgofadopljbjfkapdkoienihi"; }] else []) #React Dev Tools
+        ++ (if config.chimera.browser.chromium.extensions.ublockOrigin.enable then [{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; }] else []) #uBlock Origin
+        ++ config.chimera.browser.chromium.extraExtensions;
+    };
+  });
+}
\ No newline at end of file