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/anyrun/default.nix b/modules/home/anyrun/default.nix
index 2edf952..837324c 100644
--- a/modules/home/anyrun/default.nix
+++ b/modules/home/anyrun/default.nix
@@ -1,4 +1,10 @@
-{ inputs, pkgs, system, ...}: {
+{
+  inputs,
+  pkgs,
+  system,
+  ...
+}:
+{
   programs.anyrun = {
     enable = true;
     config = {
@@ -12,4 +18,4 @@
       ];
     };
   };
-}
\ No newline at end of file
+}
diff --git a/modules/home/audio/default.nix b/modules/home/audio/default.nix
new file mode 100644
index 0000000..3d7903b
--- /dev/null
+++ b/modules/home/audio/default.nix
@@ -0,0 +1,5 @@
+{ pkgs, ... }: {
+  home.packages = [
+    pkgs.helvum
+  ];
+}
\ No newline at end of file
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
diff --git a/modules/home/browser/firefox/default.nix b/modules/home/browser/firefox/default.nix
new file mode 100644
index 0000000..d1aa88f
--- /dev/null
+++ b/modules/home/browser/firefox/default.nix
@@ -0,0 +1,33 @@
+{ lib, config, ... }: {
+  options.chimera.browser.firefox = {
+    enable = lib.mkEnableOption "Use firefox 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";
+      adnauseam.enable = lib.mkEnableOption "Turn on AdNauseam ad blocker";
+    };
+    extraExtensions = lib.mkOption {
+      type = lib.types.listOf lib.types.package;
+      description = "Extra extensions to add to firefox";
+    };
+  };
+  config = lib.mkIf config.chimera.browser.firefox.enable ({
+    programs.firefox = {
+      enable = true;
+      profiles.chimera.extensions = (if config.chimera.browser.firefox.extensions.bitwarden.enable then [ config.nur.repos.rycee.firefox-addons.bitwarden ] else [])
+        ++ (if config.chimera.browser.firefox.extensions.youtube.sponsorBlock.enable then [ config.nur.repos.rycee.firefox-addons.sponsorblock ] else [])
+        ++ (if config.chimera.browser.firefox.extensions.youtube.returnDislike.enable then [ config.nur.repos.rycee.firefox-addons.return-youtube-dislikes ] else [])
+        ++ (if config.chimera.browser.firefox.extensions.youtube.deArrow.enable then [ config.nur.repos.rycee.firefox-addons.dearrow ] else [])
+        ++ (if config.chimera.browser.firefox.extensions.reactDevTools.enable then [ config.nur.repos.rycee.firefox-addons.react-devtools ] else [])
+        ++ (if config.chimera.browser.firefox.extensions.ublockOrigin.enable then [ config.nur.repos.rycee.firefox-addons.ublock-origin ] else [])
+        ++ (if config.chimera.browser.firefox.extensions.adnauseam.enable then [ config.nur.repos.rycee.firefox-addons.adnauseam ] else [])
+        ++ config.chimera.browser.firefox.extraExtensions;
+    };
+  });
+}
\ No newline at end of file
diff --git a/modules/home/catppuccin/default.nix b/modules/home/catppuccin/default.nix
new file mode 100644
index 0000000..3389ba1
--- /dev/null
+++ b/modules/home/catppuccin/default.nix
@@ -0,0 +1,1419 @@
+{ lib, config, ... }:
+{
+  options.chimera.theme.catppuccin = {
+    enable = lib.mkEnableOption "Whether to use Catppuccin themes";
+    style = lib.mkOption {
+      type = lib.types.enum [
+        "Latte"
+        "Frappe"
+        "Macchiato"
+        "Mocha"
+      ];
+      description = "Catppuccin style to use";
+    };
+    color = lib.mkOption {
+      type = lib.types.enum [
+        "Rosewater"
+        "Flamingo"
+        "Pink"
+        "Mauve"
+        "Red"
+        "Maroon"
+        "Peach"
+        "Yellow"
+        "Green"
+        "Teal"
+        "Sky"
+        "Sapphire"
+        "Blue"
+        "Lavender"
+        "Text"
+        "Subtext1"
+        "Subtext0"
+        "Overlay2"
+        "Overlay1"
+        "Overlay0"
+        "Surface2"
+        "Surface1"
+        "Surface0"
+        "Base"
+        "Mantle"
+        "Crust"
+      ];
+      description = "Catppuccin color to use";
+    };
+  };
+
+  config = lib.mkIf config.chimera.theme.catppuccin.enable (
+    let
+      catppuccinColors = {
+        Latte = {
+          Rosewater = {
+            hex = "#dc8a78";
+            rgb = {
+              r = 220;
+              g = 138;
+              b = 120;
+            };
+            hsl = {
+              h = 11;
+              s = 59;
+              l = 67;
+            };
+          };
+          Flamingo = {
+            hex = "#dd7878";
+            rgb = {
+              r = 221;
+              g = 120;
+              b = 120;
+            };
+            hsl = {
+              h = 0;
+              s = 60;
+              l = 67;
+            };
+          };
+          Pink = {
+            hex = "#ea76cb";
+            rgb = {
+              r = 234;
+              g = 118;
+              b = 203;
+            };
+            hsl = {
+              h = 316;
+              s = 73;
+              l = 69;
+            };
+          };
+          Mauve = {
+            hex = "#8839ef";
+            rgb = {
+              r = 136;
+              g = 57;
+              b = 239;
+            };
+            hsl = {
+              h = 266;
+              s = 85;
+              l = 58;
+            };
+          };
+          Red = {
+            hex = "#d20f39";
+            rgb = {
+              r = 210;
+              g = 15;
+              b = 57;
+            };
+            hsl = {
+              h = 347;
+              s = 87;
+              l = 44;
+            };
+          };
+          Maroon = {
+            hex = "#e64553";
+            rgb = {
+              r = 230;
+              g = 69;
+              b = 83;
+            };
+            hsl = {
+              h = 355;
+              s = 76;
+              l = 59;
+            };
+          };
+          Peach = {
+            hex = "#fe640b";
+            rgb = {
+              r = 254;
+              g = 100;
+              b = 11;
+            };
+            hsl = {
+              h = 22;
+              s = 99;
+              l = 52;
+            };
+          };
+          Yellow = {
+            hex = "#df8e1d";
+            rgb = {
+              r = 223;
+              g = 142;
+              b = 29;
+            };
+            hsl = {
+              h = 35;
+              s = 77;
+              l = 49;
+            };
+          };
+          Green = {
+            hex = "#40a02b";
+            rgb = {
+              r = 64;
+              g = 160;
+              b = 43;
+            };
+            hsl = {
+              h = 109;
+              s = 58;
+              l = 40;
+            };
+          };
+          Teal = {
+            hex = "#179299";
+            rgb = {
+              r = 23;
+              g = 146;
+              b = 153;
+            };
+            hsl = {
+              h = 183;
+              s = 74;
+              l = 35;
+            };
+          };
+          Sky = {
+            hex = "#04a5e5";
+            rgb = {
+              r = 4;
+              g = 165;
+              b = 229;
+            };
+            hsl = {
+              h = 197;
+              s = 97;
+              l = 46;
+            };
+          };
+          Sapphire = {
+            hex = "#209fb5";
+            rgb = {
+              r = 32;
+              g = 159;
+              b = 181;
+            };
+            hsl = {
+              h = 189;
+              s = 70;
+              l = 42;
+            };
+          };
+          Blue = {
+            hex = "#1e66f5";
+            rgb = {
+              r = 30;
+              g = 102;
+              b = 245;
+            };
+            hsl = {
+              h = 220;
+              s = 91;
+              l = 54;
+            };
+          };
+          Lavender = {
+            hex = "#7287fd";
+            rgb = {
+              r = 114;
+              g = 135;
+              b = 253;
+            };
+            hsl = {
+              h = 231;
+              s = 97;
+              l = 72;
+            };
+          };
+          Text = {
+            hex = "#4c4f69";
+            rgb = {
+              r = 76;
+              g = 79;
+              b = 105;
+            };
+            hsl = {
+              h = 234;
+              s = 16;
+              l = 35;
+            };
+          };
+          Subtext1 = {
+            hex = "#5c5f77";
+            rgb = {
+              r = 92;
+              g = 95;
+              b = 119;
+            };
+            hsl = {
+              h = 233;
+              s = 13;
+              l = 41;
+            };
+          };
+          Subtext0 = {
+            hex = "#6c6f85";
+            rgb = {
+              r = 108;
+              g = 111;
+              b = 133;
+            };
+            hsl = {
+              h = 233;
+              s = 10;
+              l = 47;
+            };
+          };
+          Overlay2 = {
+            hex = "#7c7f93";
+            rgb = {
+              r = 124;
+              g = 127;
+              b = 147;
+            };
+            hsl = {
+              h = 232;
+              s = 10;
+              l = 53;
+            };
+          };
+          Overlay1 = {
+            hex = "#8c8fa1";
+            rgb = {
+              r = 140;
+              g = 143;
+              b = 161;
+            };
+            hsl = {
+              h = 231;
+              s = 10;
+              l = 59;
+            };
+          };
+          Overlay0 = {
+            hex = "#9ca0b0";
+            rgb = {
+              r = 156;
+              g = 160;
+              b = 176;
+            };
+            hsl = {
+              h = 228;
+              s = 11;
+              l = 65;
+            };
+          };
+          Surface2 = {
+            hex = "#acb0be";
+            rgb = {
+              r = 172;
+              g = 176;
+              b = 190;
+            };
+            hsl = {
+              h = 227;
+              s = 12;
+              l = 71;
+            };
+          };
+          Surface1 = {
+            hex = "#bcc0cc";
+            rgb = {
+              r = 188;
+              g = 192;
+              b = 204;
+            };
+            hsl = {
+              h = 225;
+              s = 14;
+              l = 77;
+            };
+          };
+          Surface0 = {
+            hex = "#ccd0da";
+            rgb = {
+              r = 204;
+              g = 208;
+              b = 218;
+            };
+            hsl = {
+              h = 223;
+              s = 16;
+              l = 83;
+            };
+          };
+          Base = {
+            hex = "#eff1f5";
+            rgb = {
+              r = 239;
+              g = 241;
+              b = 245;
+            };
+            hsl = {
+              h = 220;
+              s = 23;
+              l = 95;
+            };
+          };
+          Mantle = {
+            hex = "#e6e9ef";
+            rgb = {
+              r = 230;
+              g = 233;
+              b = 239;
+            };
+            hsl = {
+              h = 220;
+              s = 22;
+              l = 92;
+            };
+          };
+          Crust = {
+            hex = "#dce0e8";
+            rgb = {
+              r = 220;
+              g = 224;
+              b = 232;
+            };
+            hsl = {
+              h = 220;
+              s = 21;
+              l = 89;
+            };
+          };
+        };
+        Frappe = {
+          Rosewater = {
+            hex = "#f2d5cf";
+            rgb = {
+              r = 242;
+              g = 213;
+              b = 207;
+            };
+            hsl = {
+              h = 10;
+              s = 57;
+              l = 88;
+            };
+          };
+          Flamingo = {
+            hex = "#eebebe";
+            rgb = {
+              r = 238;
+              g = 190;
+              b = 190;
+            };
+            hsl = {
+              h = 0;
+              s = 59;
+              l = 84;
+            };
+          };
+          Pink = {
+            hex = "#f4b8e4";
+            rgb = {
+              r = 244;
+              g = 184;
+              b = 228;
+            };
+            hsl = {
+              h = 316;
+              s = 73;
+              l = 84;
+            };
+          };
+          Mauve = {
+            hex = "#ca9ee6";
+            rgb = {
+              r = 202;
+              g = 158;
+              b = 230;
+            };
+            hsl = {
+              h = 277;
+              s = 59;
+              l = 76;
+            };
+          };
+          Red = {
+            hex = "#e78284";
+            rgb = {
+              r = 231;
+              g = 130;
+              b = 132;
+            };
+            hsl = {
+              h = 359;
+              s = 68;
+              l = 71;
+            };
+          };
+          Maroon = {
+            hex = "#ea999c";
+            rgb = {
+              r = 234;
+              g = 153;
+              b = 156;
+            };
+            hsl = {
+              h = 358;
+              s = 66;
+              l = 76;
+            };
+          };
+          Peach = {
+            hex = "#ef9f76";
+            rgb = {
+              r = 239;
+              g = 159;
+              b = 118;
+            };
+            hsl = {
+              h = 20;
+              s = 79;
+              l = 70;
+            };
+          };
+          Yellow = {
+            hex = "#e5c890";
+            rgb = {
+              r = 229;
+              g = 200;
+              b = 144;
+            };
+            hsl = {
+              h = 40;
+              s = 62;
+              l = 73;
+            };
+          };
+          Green = {
+            hex = "#a6d189";
+            rgb = {
+              r = 166;
+              g = 209;
+              b = 137;
+            };
+            hsl = {
+              h = 96;
+              s = 44;
+              l = 68;
+            };
+          };
+          Teal = {
+            hex = "#81c8be";
+            rgb = {
+              r = 129;
+              g = 200;
+              b = 190;
+            };
+            hsl = {
+              h = 172;
+              s = 39;
+              l = 65;
+            };
+          };
+          Sky = {
+            hex = "#99d1db";
+            rgb = {
+              r = 153;
+              g = 209;
+              b = 219;
+            };
+            hsl = {
+              h = 189;
+              s = 48;
+              l = 73;
+            };
+          };
+          Sapphire = {
+            hex = "#85c1dc";
+            rgb = {
+              r = 133;
+              g = 193;
+              b = 220;
+            };
+            hsl = {
+              h = 199;
+              s = 55;
+              l = 69;
+            };
+          };
+          Blue = {
+            hex = "#8caaee";
+            rgb = {
+              r = 140;
+              g = 170;
+              b = 238;
+            };
+            hsl = {
+              h = 222;
+              s = 74;
+              l = 74;
+            };
+          };
+          Lavender = {
+            hex = "#babbf1";
+            rgb = {
+              r = 186;
+              g = 187;
+              b = 241;
+            };
+            hsl = {
+              h = 239;
+              s = 66;
+              l = 84;
+            };
+          };
+          Text = {
+            hex = "#c6d0f5";
+            rgb = {
+              r = 198;
+              g = 208;
+              b = 245;
+            };
+            hsl = {
+              h = 227;
+              s = 70;
+              l = 87;
+            };
+          };
+          Subtext1 = {
+            hex = "#b5bfe2";
+            rgb = {
+              r = 181;
+              g = 191;
+              b = 226;
+            };
+            hsl = {
+              h = 227;
+              s = 44;
+              l = 80;
+            };
+          };
+          Subtext0 = {
+            hex = "#a5adce";
+            rgb = {
+              r = 165;
+              g = 173;
+              b = 206;
+            };
+            hsl = {
+              h = 228;
+              s = 29;
+              l = 73;
+            };
+          };
+          Overlay2 = {
+            hex = "#949cbb";
+            rgb = {
+              r = 148;
+              g = 156;
+              b = 187;
+            };
+            hsl = {
+              h = 228;
+              s = 22;
+              l = 66;
+            };
+          };
+          Overlay1 = {
+            hex = "#838ba7";
+            rgb = {
+              r = 131;
+              g = 139;
+              b = 167;
+            };
+            hsl = {
+              h = 227;
+              s = 17;
+              l = 58;
+            };
+          };
+          Overlay0 = {
+            hex = "#737994";
+            rgb = {
+              r = 115;
+              g = 121;
+              b = 148;
+            };
+            hsl = {
+              h = 229;
+              s = 13;
+              l = 52;
+            };
+          };
+          Surface2 = {
+            hex = "#626880";
+            rgb = {
+              r = 98;
+              g = 104;
+              b = 128;
+            };
+            hsl = {
+              h = 228;
+              s = 13;
+              l = 44;
+            };
+          };
+          Surface1 = {
+            hex = "#51576d";
+            rgb = {
+              r = 81;
+              g = 87;
+              b = 109;
+            };
+            hsl = {
+              h = 227;
+              s = 15;
+              l = 37;
+            };
+          };
+          Surface0 = {
+            hex = "#414559";
+            rgb = {
+              r = 65;
+              g = 69;
+              b = 89;
+            };
+            hsl = {
+              h = 230;
+              s = 16;
+              l = 30;
+            };
+          };
+          Base = {
+            hex = "#303446";
+            rgb = {
+              r = 48;
+              g = 52;
+              b = 70;
+            };
+            hsl = {
+              h = 229;
+              s = 19;
+              l = 23;
+            };
+          };
+          Mantle = {
+            hex = "#292c3c";
+            rgb = {
+              r = 41;
+              g = 44;
+              b = 60;
+            };
+            hsl = {
+              h = 231;
+              s = 19;
+              l = 20;
+            };
+          };
+          Crust = {
+            hex = "#232634";
+            rgb = {
+              r = 35;
+              g = 38;
+              b = 52;
+            };
+            hsl = {
+              h = 229;
+              s = 20;
+              l = 17;
+            };
+          };
+        };
+        Macchiato = {
+          Rosewater = {
+            hex = "#f4dbd6";
+            rgb = {
+              r = 244;
+              g = 219;
+              b = 214;
+            };
+            hsl = {
+              h = 10;
+              s = 58;
+              l = 90;
+            };
+          };
+          Flamingo = {
+            hex = "#f0c6c6";
+            rgb = {
+              r = 240;
+              g = 198;
+              b = 198;
+            };
+            hsl = {
+              h = 0;
+              s = 58;
+              l = 86;
+            };
+          };
+          Pink = {
+            hex = "#f5bde6";
+            rgb = {
+              r = 245;
+              g = 189;
+              b = 230;
+            };
+            hsl = {
+              h = 316;
+              s = 74;
+              l = 85;
+            };
+          };
+          Mauve = {
+            hex = "#c6a0f6";
+            rgb = {
+              r = 198;
+              g = 160;
+              b = 246;
+            };
+            hsl = {
+              h = 267;
+              s = 83;
+              l = 80;
+            };
+          };
+          Red = {
+            hex = "#ed8796";
+            rgb = {
+              r = 237;
+              g = 135;
+              b = 150;
+            };
+            hsl = {
+              h = 351;
+              s = 74;
+              l = 73;
+            };
+          };
+          Maroon = {
+            hex = "#ee99a0";
+            rgb = {
+              r = 238;
+              g = 153;
+              b = 160;
+            };
+            hsl = {
+              h = 355;
+              s = 71;
+              l = 77;
+            };
+          };
+          Peach = {
+            hex = "#f5a97f";
+            rgb = {
+              r = 245;
+              g = 169;
+              b = 127;
+            };
+            hsl = {
+              h = 21;
+              s = 86;
+              l = 73;
+            };
+          };
+          Yellow = {
+            hex = "#eed49f";
+            rgb = {
+              r = 238;
+              g = 212;
+              b = 159;
+            };
+            hsl = {
+              h = 40;
+              s = 70;
+              l = 78;
+            };
+          };
+          Green = {
+            hex = "#a6da95";
+            rgb = {
+              r = 166;
+              g = 218;
+              b = 149;
+            };
+            hsl = {
+              h = 105;
+              s = 48;
+              l = 72;
+            };
+          };
+          Teal = {
+            hex = "#8bd5ca";
+            rgb = {
+              r = 139;
+              g = 213;
+              b = 202;
+            };
+            hsl = {
+              h = 171;
+              s = 47;
+              l = 69;
+            };
+          };
+          Sky = {
+            hex = "#91d7e3";
+            rgb = {
+              r = 145;
+              g = 215;
+              b = 227;
+            };
+            hsl = {
+              h = 189;
+              s = 59;
+              l = 73;
+            };
+          };
+          Sapphire = {
+            hex = "#7dc4e4";
+            rgb = {
+              r = 125;
+              g = 196;
+              b = 228;
+            };
+            hsl = {
+              h = 199;
+              s = 66;
+              l = 69;
+            };
+          };
+          Blue = {
+            hex = "#8aadf4";
+            rgb = {
+              r = 138;
+              g = 173;
+              b = 244;
+            };
+            hsl = {
+              h = 220;
+              s = 83;
+              l = 75;
+            };
+          };
+          Lavender = {
+            hex = "#b7bdf8";
+            rgb = {
+              r = 183;
+              g = 189;
+              b = 248;
+            };
+            hsl = {
+              h = 234;
+              s = 82;
+              l = 85;
+            };
+          };
+          Text = {
+            hex = "#cad3f5";
+            rgb = {
+              r = 202;
+              g = 211;
+              b = 245;
+            };
+            hsl = {
+              h = 227;
+              s = 68;
+              l = 88;
+            };
+          };
+          Subtext1 = {
+            hex = "#b8c0e0";
+            rgb = {
+              r = 184;
+              g = 192;
+              b = 224;
+            };
+            hsl = {
+              h = 228;
+              s = 39;
+              l = 80;
+            };
+          };
+          Subtext0 = {
+            hex = "#a5adcb";
+            rgb = {
+              r = 165;
+              g = 173;
+              b = 203;
+            };
+            hsl = {
+              h = 227;
+              s = 27;
+              l = 72;
+            };
+          };
+          Overlay2 = {
+            hex = "#939ab7";
+            rgb = {
+              r = 147;
+              g = 154;
+              b = 183;
+            };
+            hsl = {
+              h = 228;
+              s = 20;
+              l = 65;
+            };
+          };
+          Overlay1 = {
+            hex = "#8087a2";
+            rgb = {
+              r = 128;
+              g = 135;
+              b = 162;
+            };
+            hsl = {
+              h = 228;
+              s = 15;
+              l = 57;
+            };
+          };
+          Overlay0 = {
+            hex = "#6e738d";
+            rgb = {
+              r = 110;
+              g = 115;
+              b = 141;
+            };
+            hsl = {
+              h = 230;
+              s = 12;
+              l = 49;
+            };
+          };
+          Surface2 = {
+            hex = "#5b6078";
+            rgb = {
+              r = 91;
+              g = 96;
+              b = 120;
+            };
+            hsl = {
+              h = 230;
+              s = 14;
+              l = 41;
+            };
+          };
+          Surface1 = {
+            hex = "#494d64";
+            rgb = {
+              r = 73;
+              g = 77;
+              b = 100;
+            };
+            hsl = {
+              h = 231;
+              s = 16;
+              l = 34;
+            };
+          };
+          Surface0 = {
+            hex = "#363a4f";
+            rgb = {
+              r = 54;
+              g = 58;
+              b = 79;
+            };
+            hsl = {
+              h = 230;
+              s = 19;
+              l = 26;
+            };
+          };
+          Base = {
+            hex = "#24273a";
+            rgb = {
+              r = 36;
+              g = 39;
+              b = 58;
+            };
+            hsl = {
+              h = 232;
+              s = 23;
+              l = 18;
+            };
+          };
+          Mantle = {
+            hex = "#1e2030";
+            rgb = {
+              r = 30;
+              g = 32;
+              b = 48;
+            };
+            hsl = {
+              h = 233;
+              s = 23;
+              l = 15;
+            };
+          };
+          Crust = {
+            hex = "#181926";
+            rgb = {
+              r = 24;
+              g = 25;
+              b = 38;
+            };
+            hsl = {
+              h = 236;
+              s = 23;
+              l = 12;
+            };
+          };
+        };
+        Mocha = {
+          Rosewater = {
+            hex = "#f5e0dc";
+            rgb = {
+              r = 245;
+              g = 224;
+              b = 220;
+            };
+            hsl = {
+              h = 10;
+              s = 56;
+              l = 91;
+            };
+          };
+          Flamingo = {
+            hex = "#f2cdcd";
+            rgb = {
+              r = 242;
+              g = 205;
+              b = 205;
+            };
+            hsl = {
+              h = 0;
+              s = 59;
+              l = 88;
+            };
+          };
+          Pink = {
+            hex = "#f5c2e7";
+            rgb = {
+              r = 245;
+              g = 194;
+              b = 231;
+            };
+            hsl = {
+              h = 316;
+              s = 72;
+              l = 86;
+            };
+          };
+          Mauve = {
+            hex = "#cba6f7";
+            rgb = {
+              r = 203;
+              g = 166;
+              b = 247;
+            };
+            hsl = {
+              h = 267;
+              s = 84;
+              l = 81;
+            };
+          };
+          Red = {
+            hex = "#f38ba8";
+            rgb = {
+              r = 243;
+              g = 139;
+              b = 168;
+            };
+            hsl = {
+              h = 343;
+              s = 81;
+              l = 75;
+            };
+          };
+          Maroon = {
+            hex = "#eba0ac";
+            rgb = {
+              r = 235;
+              g = 160;
+              b = 172;
+            };
+            hsl = {
+              h = 350;
+              s = 65;
+              l = 77;
+            };
+          };
+          Peach = {
+            hex = "#fab387";
+            rgb = {
+              r = 250;
+              g = 179;
+              b = 135;
+            };
+            hsl = {
+              h = 23;
+              s = 92;
+              l = 75;
+            };
+          };
+          Yellow = {
+            hex = "#f9e2af";
+            rgb = {
+              r = 249;
+              g = 226;
+              b = 175;
+            };
+            hsl = {
+              h = 41;
+              s = 86;
+              l = 83;
+            };
+          };
+          Green = {
+            hex = "#a6e3a1";
+            rgb = {
+              r = 166;
+              g = 227;
+              b = 161;
+            };
+            hsl = {
+              h = 115;
+              s = 54;
+              l = 76;
+            };
+          };
+          Teal = {
+            hex = "#94e2d5";
+            rgb = {
+              r = 148;
+              g = 226;
+              b = 213;
+            };
+            hsl = {
+              h = 170;
+              s = 57;
+              l = 73;
+            };
+          };
+          Sky = {
+            hex = "#89dceb";
+            rgb = {
+              r = 137;
+              g = 220;
+              b = 235;
+            };
+            hsl = {
+              h = 189;
+              s = 71;
+              l = 73;
+            };
+          };
+          Sapphire = {
+            hex = "#74c7ec";
+            rgb = {
+              r = 116;
+              g = 199;
+              b = 236;
+            };
+            hsl = {
+              h = 199;
+              s = 76;
+              l = 69;
+            };
+          };
+          Blue = {
+            hex = "#89b4fa";
+            rgb = {
+              r = 137;
+              g = 180;
+              b = 250;
+            };
+            hsl = {
+              h = 217;
+              s = 92;
+              l = 76;
+            };
+          };
+          Lavender = {
+            hex = "#b4befe";
+            rgb = {
+              r = 180;
+              g = 190;
+              b = 254;
+            };
+            hsl = {
+              h = 232;
+              s = 97;
+              l = 85;
+            };
+          };
+          Text = {
+            hex = "#cdd6f4";
+            rgb = {
+              r = 205;
+              g = 214;
+              b = 244;
+            };
+            hsl = {
+              h = 226;
+              s = 64;
+              l = 88;
+            };
+          };
+          Subtext1 = {
+            hex = "#bac2de";
+            rgb = {
+              r = 186;
+              g = 194;
+              b = 222;
+            };
+            hsl = {
+              h = 227;
+              s = 35;
+              l = 80;
+            };
+          };
+          Subtext0 = {
+            hex = "#a6adc8";
+            rgb = {
+              r = 166;
+              g = 173;
+              b = 200;
+            };
+            hsl = {
+              h = 228;
+              s = 24;
+              l = 72;
+            };
+          };
+          Overlay2 = {
+            hex = "#9399b2";
+            rgb = {
+              r = 147;
+              g = 153;
+              b = 178;
+            };
+            hsl = {
+              h = 228;
+              s = 17;
+              l = 64;
+            };
+          };
+          Overlay1 = {
+            hex = "#7f849c";
+            rgb = {
+              r = 127;
+              g = 132;
+              b = 156;
+            };
+            hsl = {
+              h = 230;
+              s = 13;
+              l = 55;
+            };
+          };
+          Overlay0 = {
+            hex = "#6c7086";
+            rgb = {
+              r = 108;
+              g = 112;
+              b = 134;
+            };
+            hsl = {
+              h = 231;
+              s = 11;
+              l = 47;
+            };
+          };
+          Surface2 = {
+            hex = "#585b70";
+            rgb = {
+              r = 88;
+              g = 91;
+              b = 112;
+            };
+            hsl = {
+              h = 233;
+              s = 12;
+              l = 39;
+            };
+          };
+          Surface1 = {
+            hex = "#45475a";
+            rgb = {
+              r = 69;
+              g = 71;
+              b = 90;
+            };
+            hsl = {
+              h = 234;
+              s = 13;
+              l = 31;
+            };
+          };
+          Surface0 = {
+            hex = "#313244";
+            rgb = {
+              r = 49;
+              g = 50;
+              b = 68;
+            };
+            hsl = {
+              h = 237;
+              s = 16;
+              l = 23;
+            };
+          };
+          Base = {
+            hex = "#1e1e2e";
+            rgb = {
+              r = 30;
+              g = 30;
+              b = 46;
+            };
+            hsl = {
+              h = 240;
+              s = 21;
+              l = 15;
+            };
+          };
+          Mantle = {
+            hex = "#181825";
+            rgb = {
+              r = 24;
+              g = 24;
+              b = 37;
+            };
+            hsl = {
+              h = 240;
+              s = 21;
+              l = 12;
+            };
+          };
+          Crust = {
+            hex = "#11111b";
+            rgb = {
+              r = 17;
+              g = 17;
+              b = 27;
+            };
+            hsl = {
+              h = 240;
+              s = 23;
+              l = 9;
+            };
+          };
+        };
+      };
+    in
+    {
+      chimera.theme.colors = catppuccinColors.${config.chimera.theme.catppuccin.style} // {
+        Highlight =
+          catppuccinColors.${config.chimera.theme.catppuccin.style}.${config.chimera.theme.catppuccin.color};
+      };
+    }
+  );
+}
diff --git a/modules/home/eww/config/eww.scss b/modules/home/eww/config/eww.scss
index eae0b3c..ad16c17 100644
--- a/modules/home/eww/config/eww.scss
+++ b/modules/home/eww/config/eww.scss
@@ -1,61 +1,82 @@
 * {
     all: unset; //Unsets everything so you can style everything from scratch
-}
-
-.bar {
-    background-color: #ccd0da;
-    color: #4c4f69;
+  }
+  
+  $surface-color: #CCD0DA;
+  $contrast-color: #4C4F69;
+  $accent-color: #F27878;
+  
+  .bar {
+    background-color: $surface-color;
+    color: $contrast-color;
     border-radius: 10px;
-    padding: 10px 15px;
+    padding: 5px 15px;
     margin: 0 20px;
     margin-top: 20px;
-}
-
-// Styles on classes (see eww.yuck for more information)
-
-.sidestuff slider {
+  }
+  
+  // Styles on classes (see eww.yuck for more information)
+  
+  .sidestuff slider {
     all: unset;
-    color: #ffd5cd;
-}
-
-.metric scale trough highlight {
+    color: $surface-color;
+  }
+  
+  .radio button {
     all: unset;
-    background-color: #D35D6E;
-    color: #000000;
+    min-width: 25px;
+    min-height: 25px;
+    margin-right: 10px;
+    border-radius: 100%;
+  }
+  
+  .radio button.unblocked {
+    background-color: $accent-color;
+  }
+  
+  .radio button.blocked {
+    background-color: $contrast-color;
+  }
+  
+  .metric scale trough highlight {
+    all: unset;
+    background-color: $accent-color;
+    color: $contrast-color;
     border-radius: 10px;
-}
-
-.metric scale trough {
+  }
+  
+  .metric scale trough {
     all: unset;
-    background-color: #4e4e4e;
+    background-color: $contrast-color;
     border-radius: 50px;
     min-height: 3px;
     min-width: 50px;
     margin-left: 10px;
     margin-right: 20px;
-}
-
-.metric scale trough highlight {
+  }
+  
+  .metric scale trough highlight {
     all: unset;
-    background-color: #D35D6E;
-    color: #000000;
+    background-color: $accent-color;
+    color: $contrast-color;
     border-radius: 10px;
-}
-
-.metric scale trough {
+  }
+  
+  .metric scale trough {
     all: unset;
-    background-color: #4e4e4e;
+    background-color: $contrast-color;
     border-radius: 50px;
     min-height: 3px;
     min-width: 50px;
     margin-left: 10px;
     margin-right: 20px;
-}
-
-.label-ram {
+  }
+  
+  .label-ram {
     font-size: large;
-}
-
-.workspaces button:hover {
-    color: #D35D6E;
-}
\ No newline at end of file
+  }
+  
+  .workspaces button:hover {
+    color: $accent-color;
+  }
+  
\ No newline at end of file
diff --git a/modules/home/eww/config/eww.yuck b/modules/home/eww/config/eww.yuck
index 598646e..a7695ac 100644
--- a/modules/home/eww/config/eww.yuck
+++ b/modules/home/eww/config/eww.yuck
@@ -9,14 +9,38 @@
   (box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
     (metric :label "🔊"
       :value volume
-    :onchange "amixer -D pulse sset Master {}%")
-    (metric :label "īĄš"
+    :onchange "nix run nixpkgs#pamixer -- --set-volume {}")
+    (radio)
+    (sysinfo)
+  time))
+
+(defwidget radio []
+  (box :class "radio" :orientation "h" :space-evenly false :halign "end"
+    (button :class bluetooth 
+      :onclick { bluetooth == "inactive" ? "bluetoothctl power on" : "bluetoothctl power off"}
+      "īŠ“")
+    (button :class wifi 
+      :onclick { wifi == "disabled" ? "nmcli radio wifi on" : "nmcli radio wifi off"}
+      "🛜")
+  )
+)
+
+(defwidget sysinfo []
+  (box :class "sysinfo"
+    ; (metric :label { battery_status == "Normal" ? "🔋" : "đŸĒĢ" }
+    ;   :value battery_cap
+    ; :onchange "")
+    (metric :label "🐏"
       :value {EWW_RAM.used_mem_perc}
     :onchange "")
     (metric :label "💾"
       :value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
     :onchange "")
-  time))
+    (metric :label "🕓"
+      :value cpu_usage_percent
+    :onchange "")
+  )
+)
 
 (defwidget workspaces []
   (box :class "workspaces"
@@ -24,21 +48,24 @@
     :space-evenly true
     :halign "start"
     :spacing 10
-    (button :onclick "wmctrl -s 0" 1)
-    (button :onclick "wmctrl -s 1" 2)
-    (button :onclick "wmctrl -s 2" 3)
-    (button :onclick "wmctrl -s 3" 4)
-    (button :onclick "wmctrl -s 4" 5)
-    (button :onclick "wmctrl -s 5" 6)
-    (button :onclick "wmctrl -s 6" 7)
-    (button :onclick "wmctrl -s 7" 8)
-    (button :onclick "wmctrl -s 8" 9)))
+    (button :onclick "hyprctl dispatch workspace 1" 1)
+    (button :onclick "hyprctl dispatch workspace 2" 2)
+    (button :onclick "hyprctl dispatch workspace 3" 3)
+    (button :onclick "hyprctl dispatch workspace 4" 4)
+    (button :onclick "hyprctl dispatch workspace 5" 5)
+    (button :onclick "hyprctl dispatch workspace 6" 6)
+    (button :onclick "hyprctl dispatch workspace 7" 7)
+    (button :onclick "hyprctl dispatch workspace 8" 8)
+    (button :onclick "hyprctl dispatch workspace 9" 9)
+    (button :onclick "hyprctl dispatch workspace 0" 0)
+  ))
 
 (defwidget music []
   (box :class "music"
     :orientation "h"
     :space-evenly false
     :halign "center"
+    :onclick ""
   {music != "" ? "đŸŽĩ${music}" : ""}))
 
 
@@ -53,18 +80,34 @@
       :value value
     :onchange onchange)))
 
-
-
 (deflisten music :initial ""
-"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
+"nix run nixpkgs#playerctl -- --follow metadata --format '{{ title }}' || true")
+
+(defpoll bluetooth :interval "1s"
+"rfkill -o TYPE,SOFT list -n | grep bluetooth | sed -E 's/bluetooth\s+//g'")
+
+(defpoll wifi :interval "1s"
+"rfkill -o TYPE,SOFT list -n | grep wlan | sed -E 's/wlan\s+//g'")
 
 (defpoll volume :interval "1s"
-"scripts/getvol")
+"nix run nixpkgs#pamixer -- --get-volume")
 
-(defpoll time :interval "10s"
-"date '+%H:%M %b %d, %Y'")
+(defpoll battery_cap :interval "5m"
+"cat /sys/class/power_supply/BAT*/capacity"
+)
 
-(defwindow bar-eDP1
+(defpoll battery_status :interval "1s"
+"cat /sys/class/power_supply/BAT*/status"
+)
+
+(defpoll cpu_usage_percent :interval "5s"
+"bash scripts/cpu_usage"
+)
+
+(defpoll time :interval "1s"
+"date '+%H:%M:%S  %b %d, %Y'")
+
+(defwindow bar-primary
   :monitor 0
   :windowtype "dock"
   :geometry (geometry :x "0%"
@@ -74,25 +117,3 @@
   :anchor "top center")
   :exclusive true
   (bar))
-
-(defwindow bar-HDMI-A-1
-  :monitor 0
-  :windowtype "dock"
-  :geometry (geometry :x "0%"
-    :y "0%"
-    :width "100%"
-    :height "10px"
-  :anchor "top center")
-  :exclusive true
-  (bar))
-
-(defwindow bar-DP7
-  :monitor 0
-  :windowtype "dock"
-  :geometry (geometry :x "0%"
-    :y "0%"
-    :width "100%"
-    :height "10px"
-  :anchor "top center")
-  :exclusive true
-  (bar))
\ No newline at end of file
diff --git a/modules/home/eww/config/scripts/cpu_usage b/modules/home/eww/config/scripts/cpu_usage
new file mode 100644
index 0000000..62d9af7
--- /dev/null
+++ b/modules/home/eww/config/scripts/cpu_usage
@@ -0,0 +1,7 @@
+CPU=$(sed -n 's/^cpu\s//p' /proc/stat);
+TOTAL=$(($(T=0; for VAL in $CPU; do T=($((T))+$((VAL))); done; echo $T)));
+IDLE=${CPU[4]};
+IDLE_FRAC=$(echo $(($IDLE.00/$TOTAL)));
+IN_USE=$(echo $(( 1.00 - $IDLE_FRAC )));
+NUM=$(( $IN_USE * 100 ));
+echo $NUM
\ No newline at end of file
diff --git a/modules/home/eww/default.nix b/modules/home/eww/default.nix
index 2159bfe..b9a60be 100644
--- a/modules/home/eww/default.nix
+++ b/modules/home/eww/default.nix
@@ -1,7 +1,20 @@
-{ inputs, pkgs, ... }: {
+{ inputs, pkgs, ... }:
+{
   programs.eww = {
     enable = true;
     package = pkgs.eww-wayland;
     configDir = ./config;
   };
-}
\ No newline at end of file
+
+  /* bluetoothctl
+     wpa_cli
+     pamixer
+     rfkill -> util-linux
+     cat
+     bash
+     date
+  */
+  # wpa_cli disable_network
+
+  # $RUN_wpa_cli
+}
diff --git a/modules/home/gestures/default.nix b/modules/home/gestures/default.nix
index 6abbbe4..73bdb83 100644
--- a/modules/home/gestures/default.nix
+++ b/modules/home/gestures/default.nix
@@ -1,11 +1,14 @@
-{ lib, config, ... }: {
-  options.minion.touchpadGestures.enable = lib.mkEnableOption "Enable touchpad gestures";
+{ lib, config, ... }:
+{
+  options.chimera.touchpad.enable = lib.mkEnableOption "Enable touchpad gestures";
 
-  config = lib.mkIf config.minion.touchpadGestures.enable {
+  config = lib.mkIf config.chimera.touchpad.enable {
     services.fusuma.enable = true;
 
     systemd.user.startServices = "sd-switch";
 
-    systemd.user.services.fusuma.Unit.X-Restart-Triggers = [ config.xdg.configFile."fusuma/config.yaml".source ];
+    systemd.user.services.fusuma.Unit.X-Restart-Triggers = [
+      config.xdg.configFile."fusuma/config.yaml".source
+    ];
   };
-}
\ No newline at end of file
+}
diff --git a/modules/home/hyprland/default.nix b/modules/home/hyprland/default.nix
index a2f8b88..ce1a300 100644
--- a/modules/home/hyprland/default.nix
+++ b/modules/home/hyprland/default.nix
@@ -1,93 +1,164 @@
-{ pkgs, config, inputs, system, ... }: let
+{
+  pkgs,
+  config,
+  inputs,
+  system,
+  lib,
+  ...
+}:
+let
   lock = "${pkgs.waylock}/bin/waylock";
-in {
+in
+{
+  options.chimera.hyprland = {
+    enable = lib.mkEnableOption "Use hyprland as your window manager";
+
+    monitors = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+      description = "List of default monitors to set";
+      default = [ ];
+    };
+  };
+
+  /* general = {
+       gaps_in = 5;
+       gaps_out = 20;
+
+       border_size = 1;
+       "col.active_border" = "rgba(71AEF5EE)";
+       "col.inactive_border" = "rgba(C4C4C4EE)";
+
+       layout = "dwindle";
+     };
+
+     dwindle = {
+       pseudotile = true;
+       smart_split = true;
+     };
+
+     master = {
+       allow_small_split = true;
+       new_is_master = true;
+     };
+
+     decoration = {
+       rounding = 7;
+
+       drop_shadow = true;
+       shadow_range = 4;
+       shadow_render_power = 3;
+       "col.shadow" = "rgba(1a1a1aee)";
+     };
+  */
 
   # TODO: Eww, SwayNC, hyprland-per-window-layout, waylock, hy3, anyrun, hypr-empty
 
-  home.packages = [ pkgs.hyprpicker ];
+  config = lib.mkIf config.chimera.hyprland.enable {
+    home.packages = [ pkgs.hyprpicker ];
 
-  minion.touchpadGestures.enable = true;
+    services.fusuma.settings.swipe = lib.mkIf config.chimera.touchpad.enable (
+      let
+        hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
+        jq = "${pkgs.jq}/bin/jq";
+        awk = "${pkgs.gawk}/bin/awk";
+      in
+      {
+        "3".up.command = "${hyprctl} dispatch fullscreen 0";
+        "3".down.command = "${hyprctl} dispatch fullscreen 0";
+        "4".down.command = lock;
+        "3".left.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1+1}')";
+        "3".right.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1-1}')";
+      }
+    );
 
-  services.fusuma.settings.swipe = let 
-    hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
-    jq = "${pkgs.jq}/bin/jq";
-    awk = "${pkgs.gawk}/bin/awk";
-  in {
-    "3".up.command = "${hyprctl} dispatch fullscreen 0";
-    "3".down.command = "${hyprctl} dispatch fullscreen 0";
-    "4".down.command = lock;
-    "3".left.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1+1}')";
-    "3".right.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1-1}')";
-  };
+    wayland.windowManager.hyprland = {
+      enable = true;
 
-  wayland.windowManager.hyprland = {
-    enable = true;
+      xwayland.enable = true;
+      systemd.enable = true;
 
-    xwayland.enable = true;
-    systemd.enable = true;
+      settings =
+        let
+          mod = "SUPER";
+          terminal = "${pkgs.kitty}/bin/kitty";
+          menu = "${inputs.anyrun.packages.${system}.anyrun}/bin/anyrun";
+        in
+        {
+          misc = {
+            disable_hyprland_logo = true;
+            disable_splash_rendering = true;
+          };
 
-    settings = let
-      mod = "SUPER";
-      terminal = "${pkgs.kitty}/bin/kitty";
-      menu = "${inputs.anyrun.packages.${system}.anyrun}/bin/anyrun";
-    in {
-      misc = {
-        disable_hyprland_logo = true;
-        disable_splash_rendering = true;
-      };
+          exec-once = "${pkgs.hyprpaper}/bin/hyprpaper";
 
-      exec-once = "${pkgs.hyprpaper}/bin/hyprpaper";
+          monitor = config.chimera.hyprland.monitors ++ [ ",preferred,auto,1" ];
 
-      monitor = [
-        "eDP-1,preferred,0x0,1"
-        "desc:Dell Inc. DELL P2715Q V7WP95AV914L,preferred,2256x-1956,1,transform,1"
-        "desc:AOC 2460G5 0x00023C3F,preferred,336x-1080,1"
-        ",preferred,auto,1" # https://wiki.hyprland.org/Configuring/Monitors/
-      ];
+          decoration = {
+            rounding = 7;
+          };
 
-      input = {
-        kb_layout = "us";
-        kb_variant = "dvorak";
-        natural_scroll = true;
+          input = {
+            kb_layout = "us";
+            kb_variant = "dvorak";
+            natural_scroll = true;
 
-        touchpad = {
-          natural_scroll = true;
-        };
-      };
+            touchpad = {
+              natural_scroll = true;
+            };
+          };
 
-      xwayland = {
-        force_zero_scaling = true;
-      };
+          xwayland = {
+            force_zero_scaling = true;
+          };
 
-      bind = [
-        "${mod}, Q, killactive"
-        "${mod}, SPACE, togglefloating"
-        "${mod}, RETURN, exec, ${terminal}"
-        "${mod}, down, movefocus, d"
-        "${mod}, up, movefocus, u"
-        "${mod}, right, movefocus, r"
-        "${mod}, left, movefocus, l"
-        "${mod}, L, exec, ${lock}"
-        "${mod}, D, exec, ${menu}"
-      ] ++ (
-        builtins.concatLists (builtins.genList (
-            x: let
-              ws = let
-                c = (x + 1) / 10;
-              in
-                builtins.toString (x + 1 - (c * 10));
-            in [
-              "${mod}, ${ws}, workspace, ${toString (x + 1)}"
-              "${mod} SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+          dwindle = {
+            pseudotile = true;
+            smart_split = true;
+          };
+
+          master = {
+            allow_small_split = true;
+            new_is_master = true;
+          };
+
+          windowrulev2 = [ "opacity 1.0 0.85,title:(.*)" ];
+
+          bind =
+            [
+              "${mod}, Q, killactive"
+              "${mod}, SPACE, togglefloating"
+              "${mod}, RETURN, exec, ${terminal}"
+              "${mod}, down, movefocus, d"
+              "${mod}, up, movefocus, u"
+              "${mod}, right, movefocus, r"
+              "${mod}, left, movefocus, l"
+              "${mod}, L, exec, ${lock}"
+              "${mod}, D, exec, ${menu}"
             ]
-          )
-          10)
-      );
+            ++ (builtins.concatLists (
+              builtins.genList
+                (
+                  x:
+                  let
+                    ws =
+                      let
+                        c = (x + 1) / 10;
+                      in
+                      builtins.toString (x + 1 - (c * 10));
+                  in
+                  [
+                    "${mod}, ${ws}, workspace, ${toString (x + 1)}"
+                    "${mod} SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+                  ]
+                )
+                10
+            ));
 
-      bindm = [
-        "${mod}, mouse:272, movewindow"
-        "${mod}, mouse:273, resizewindow"
-      ];
+          bindm = [
+            "${mod}, mouse:272, movewindow"
+            "${mod}, mouse:273, resizewindow"
+          ];
+        };
     };
   };
-}
\ No newline at end of file
+}
diff --git a/modules/home/hyprpaper/default.nix b/modules/home/hyprpaper/default.nix
index c378a21..27d149a 100644
--- a/modules/home/hyprpaper/default.nix
+++ b/modules/home/hyprpaper/default.nix
@@ -1,9 +1,31 @@
-{ ... }: {
-  config.xdg.configFile."hypr/hyprpaper.conf".source = builtins.toFile "hyprpaper.conf" ''
-    preload = ${./wallpaper.png}
+{ config, lib, ... }:
+{
+  options.chimera = {
+    wallpaper = lib.mkOption {
+      type = lib.types.path;
+      description = "Wallpaper of your choosing";
+    };
+    hyprland.hyprpaper.splash = {
+      enable = lib.mkEnableOption "Enable the hyprland splash text";
+      offset = lib.mkOption {
+        type = lib.types.float;
+        description = "Set the splash offset";
+        default = 2.0;
+      };
+    };
+  };
 
-    wallpaper=,${./wallpaper.png}
+  # TODO: wallpapers path[] -> gen wallpaper lines...
+  config.xdg.configFile."hypr/hyprpaper.conf".source = lib.mkIf config.chimera.hyprland.enable (
+    builtins.toFile "hyprpaper.conf" ''
+      preload = ${config.chimera.wallpaper}
 
-    splash = true
-  '';
+      wallpaper=,${config.chimera.wallpaper}
+
+      splash = ${builtins.toString config.chimera.hyprland.hyprpaper.splash.enable}
+      splash_offset = ${builtins.toString config.chimera.hyprland.hyprpaper.splash.offset}
+
+      ipc = off
+    ''
+  );
 }
diff --git a/modules/home/hyprpaper/wallpaper.png b/modules/home/hyprpaper/wallpaper.png
deleted file mode 100644
index 409ae38..0000000
--- a/modules/home/hyprpaper/wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/modules/home/manual/default.nix b/modules/home/manual/default.nix
index 8709a09..ca5804a 100644
--- a/modules/home/manual/default.nix
+++ b/modules/home/manual/default.nix
@@ -1,4 +1,9 @@
-{ config, lib, pkgs, ... }:
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
 
 {
   manual.manpages.enable = true;
diff --git a/modules/home/nix-index/default.nix b/modules/home/nix-index/default.nix
index 1345dc7..7ff8acb 100644
--- a/modules/home/nix-index/default.nix
+++ b/modules/home/nix-index/default.nix
@@ -1,4 +1,9 @@
-{ config, lib, pkgs, ... }:
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
 
 {
   xdg.enable = true;
diff --git a/modules/home/stateVersion/default.nix b/modules/home/stateVersion/default.nix
index 2e40de6..7d073d6 100644
--- a/modules/home/stateVersion/default.nix
+++ b/modules/home/stateVersion/default.nix
@@ -1,4 +1,9 @@
-{ config, lib, pkgs, ... }:
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
 
 {
   home.stateVersion = "24.05";
diff --git a/modules/home/theme/default.nix b/modules/home/theme/default.nix
new file mode 100644
index 0000000..5fdb405
--- /dev/null
+++ b/modules/home/theme/default.nix
@@ -0,0 +1,56 @@
+{
+  pkgs,
+  config,
+  lib,
+  ...
+}:
+{
+  options.chimera.theme = {
+    cursor = null;
+    colors =
+      let
+        themeColor = {
+          hex = lib.types.str;
+          rgb = {
+            r = lib.types.numbers 0 255;
+            g = lib.types.numbers 0 255;
+            b = lib.types.numbers 0 255;
+          };
+          hsl = {
+            h = lib.types.numbers 0 360;
+            s = lib.types.numbers 0 100;
+            l = lib.types.numbers 0 100;
+          };
+        };
+      in
+      {
+        Rosewater = lib.mkOption { type = themeColor; };
+        Flamingo = lib.mkOption { type = themeColor; };
+        Pink = lib.mkOption { type = themeColor; };
+        Mauve = lib.mkOption { type = themeColor; };
+        Red = lib.mkOption { type = themeColor; };
+        Maroon = lib.mkOption { type = themeColor; };
+        Peach = lib.mkOption { type = themeColor; };
+        Yellow = lib.mkOption { type = themeColor; };
+        Green = lib.mkOption { type = themeColor; };
+        Teal = lib.mkOption { type = themeColor; };
+        Sky = lib.mkOption { type = themeColor; };
+        Sapphire = lib.mkOption { type = themeColor; };
+        Blue = lib.mkOption { type = themeColor; };
+        Lavender = lib.mkOption { type = themeColor; };
+        Text = lib.mkOption { type = themeColor; };
+        Subtext1 = lib.mkOption { type = themeColor; };
+        Subtext0 = lib.mkOption { type = themeColor; };
+        Overlay2 = lib.mkOption { type = themeColor; };
+        Overlay1 = lib.mkOption { type = themeColor; };
+        Overlay0 = lib.mkOption { type = themeColor; };
+        Surface2 = lib.mkOption { type = themeColor; };
+        Surface1 = lib.mkOption { type = themeColor; };
+        Surface0 = lib.mkOption { type = themeColor; };
+        Base = lib.mkOption { type = themeColor; };
+        Mantle = lib.mkOption { type = themeColor; };
+        Crust = lib.mkOption { type = themeColor; };
+        Highlight = lib.mkOption { type = themeColor; };
+      };
+  };
+}
diff --git a/modules/home/tinycarton/default.nix b/modules/home/tinycarton/default.nix
new file mode 100644
index 0000000..ede0121
--- /dev/null
+++ b/modules/home/tinycarton/default.nix
@@ -0,0 +1,4 @@
+{ pkgs, ... }:
+{
+  home.packages = [ pkgs.chimera.nix-provider ];
+}
diff --git a/modules/nixos/audio/default.nix b/modules/nixos/audio/default.nix
index 7ded3fb..0c1bfcd 100644
--- a/modules/nixos/audio/default.nix
+++ b/modules/nixos/audio/default.nix
@@ -1,4 +1,5 @@
-{ ... }: {
+{ ... }:
+{
   services.pipewire = {
     enable = true;
     alsa = {
@@ -6,5 +7,21 @@
       support32Bit = true;
     };
     pulse.enable = true;
+    jack.enable = true;
   };
+
+  environment.etc."pipewire/pipewire.conf.d/VirtualAudioDevice.conf".text = ''
+    context.objects = [
+      {
+        factory = adapter
+        args = {
+          factory.name = support.null-audio-sink
+          node.name = Microphone-Proxy
+          node.description = Microphone
+          media.class = Audio/Source/Virtual
+          audio.posistion = MONO
+        }
+      }
+    ]
+  '';
 }
diff --git a/modules/nixos/bluetooth/default.nix b/modules/nixos/bluetooth/default.nix
new file mode 100644
index 0000000..d2a2666
--- /dev/null
+++ b/modules/nixos/bluetooth/default.nix
@@ -0,0 +1,4 @@
+{ ... }: {
+  hardware.bluetooth.enable = true;
+  hardware.bluetooth.powerOnBoot = true;
+}
\ No newline at end of file
diff --git a/modules/nixos/browsers/default.nix b/modules/nixos/browsers/default.nix
index 33078e1..1d72a8d 100644
--- a/modules/nixos/browsers/default.nix
+++ b/modules/nixos/browsers/default.nix
@@ -1,3 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
   environment.systemPackages = [ pkgs.firefox ];
-}
\ No newline at end of file
+}
diff --git a/modules/nixos/dns/default.nix b/modules/nixos/dns/default.nix
new file mode 100644
index 0000000..ee63eb8
--- /dev/null
+++ b/modules/nixos/dns/default.nix
@@ -0,0 +1,29 @@
+{ ... }:
+{
+  services = {
+    dnsmasq = {
+      enable = true;
+      settings = {
+        server = [
+          "1.1.1.1"
+          "1.0.0.1"
+        ];
+        local = "/local/";
+        domain = "local";
+        expand-hosts = true;
+      };
+    };
+    avahi = {
+      enable = true;
+      nssmdns4 = true;
+      nssmdns6 = true;
+      ipv4 = true;
+      ipv6 = true;
+      publish = {
+        enable = true;
+        addresses = true;
+        workstation = true;
+      };
+    };
+  };
+}
diff --git a/modules/nixos/editors/default.nix b/modules/nixos/editors/default.nix
index df773e6..4c12f30 100644
--- a/modules/nixos/editors/default.nix
+++ b/modules/nixos/editors/default.nix
@@ -1,4 +1,5 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
   environment.systemPackages = [
     pkgs.emacs
     pkgs.neovim
diff --git a/modules/nixos/git/default.nix b/modules/nixos/git/default.nix
index 9366bdf..8a64e0d 100644
--- a/modules/nixos/git/default.nix
+++ b/modules/nixos/git/default.nix
@@ -1,3 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
   environment.systemPackages = [ pkgs.git ];
-}
\ No newline at end of file
+}
diff --git a/modules/nixos/graphics/default.nix b/modules/nixos/graphics/default.nix
index 55a5ea4..27635c1 100644
--- a/modules/nixos/graphics/default.nix
+++ b/modules/nixos/graphics/default.nix
@@ -1,10 +1,9 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
   hardware.opengl = {
     enable = true;
     driSupport = true;
     driSupport32Bit = true;
-    extraPackages = [
-      pkgs.vaapiVdpau
-    ];
+    extraPackages = [ pkgs.vaapiVdpau ];
   };
 }
diff --git a/modules/nixos/home-manager/default.nix b/modules/nixos/home-manager/default.nix
index 9c96dd3..26a9c50 100644
--- a/modules/nixos/home-manager/default.nix
+++ b/modules/nixos/home-manager/default.nix
@@ -1,5 +1,4 @@
-{ inputs, system, ... }: {
-  environment.systemPackages = [
-    inputs.home-manager.defaultPackage.${system}
-  ];
-}
\ No newline at end of file
+{ inputs, system, ... }:
+{
+  environment.systemPackages = [ inputs.home-manager.defaultPackage.${system} ];
+}
diff --git a/modules/nixos/hyprland/default.nix b/modules/nixos/hyprland/default.nix
index 90e38ce..40f30df 100644
--- a/modules/nixos/hyprland/default.nix
+++ b/modules/nixos/hyprland/default.nix
@@ -1,5 +1,6 @@
-{ ... }: {
+{ ... }:
+{
   programs.hyprland.enable = true;
 
   users.users.minion.extraGroups = [ "input" ];
-}
\ No newline at end of file
+}
diff --git a/modules/nixos/nix/default.nix b/modules/nixos/nix/default.nix
index 307d6ea..dff4f4f 100644
--- a/modules/nixos/nix/default.nix
+++ b/modules/nixos/nix/default.nix
@@ -1,4 +1,5 @@
-{ ... }: {
+{ ... }:
+{
   system.stateVersion = "24.05";
   console.keyMap = "dvorak";
 
@@ -15,6 +16,9 @@
       "anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
     ];
 
-    experimental-features = [ "nix-command" "flakes" ];
+    experimental-features = [
+      "nix-command"
+      "flakes"
+    ];
   };
 }
diff --git a/modules/nixos/terminals/default.nix b/modules/nixos/terminals/default.nix
index 3b44e0b..b28aa04 100644
--- a/modules/nixos/terminals/default.nix
+++ b/modules/nixos/terminals/default.nix
@@ -1,5 +1,4 @@
-{ pkgs, ... }: {
-  environment.systemPackages = [
-    pkgs.kitty
-  ];
-}
\ No newline at end of file
+{ pkgs, ... }:
+{
+  environment.systemPackages = [ pkgs.kitty ];
+}
diff --git a/modules/nixos/users/default.nix b/modules/nixos/users/default.nix
index 5e4b0c1..58c28df 100644
--- a/modules/nixos/users/default.nix
+++ b/modules/nixos/users/default.nix
@@ -1,4 +1,5 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
   users.users.minion = {
     isNormalUser = true;
     extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
@@ -9,5 +10,5 @@
     initialPassword = "nixos";
   };
 
-  security.pam.services.waylock = {};
+  security.pam.services.waylock = { };
 }
diff --git a/modules/nixos/wifi/default.nix b/modules/nixos/wifi/default.nix
index fcd6ccf..f0d5d1e 100644
--- a/modules/nixos/wifi/default.nix
+++ b/modules/nixos/wifi/default.nix
@@ -1,4 +1,5 @@
-{ ... }: {
+{ ... }:
+{
   networking.wireless = {
     enable = true;
     userControlled.enable = true;