diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..2fa5081
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,6 @@
+[gerrit]
+host=ssh.clicks.codes
+port=29418
+project=Chimera/NixFiles.git
+defaultbranch=main
+defaultremote=origin
\ No newline at end of file
diff --git a/flake.lock b/flake.lock
index ebf239a..26198c8 100644
--- a/flake.lock
+++ b/flake.lock
@@ -251,6 +251,21 @@
         "type": "github"
       }
     },
+    "nur": {
+      "locked": {
+        "lastModified": 1707853532,
+        "narHash": "sha256-ioduK+UsEs8YGYB/ZvVObvBXJHU5dgk1wEf5XPgxzsE=",
+        "owner": "nix-community",
+        "repo": "nur",
+        "rev": "26ae54f21cacae653cf9561c9afe5ba9496e80b6",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "nur",
+        "type": "github"
+      }
+    },
     "root": {
       "inputs": {
         "anyrun": "anyrun",
@@ -259,6 +274,7 @@
         "hyprland": "hyprland",
         "nix-index-database": "nix-index-database",
         "nixpkgs": "nixpkgs_2",
+        "nur": "nur",
         "snowfall-lib": "snowfall-lib"
       }
     },
diff --git a/flake.nix b/flake.nix
index afc5748..915c0e0 100644
--- a/flake.nix
+++ b/flake.nix
@@ -30,9 +30,12 @@
       url = "github:saimoomedits/eww-widgets";
       flake = false;
     };
+
+    nur.url = "github:nix-community/nur";
   };
 
-  outputs = { self, nixpkgs, ... }@inputs:
+  outputs =
+    { self, nixpkgs, ... }@inputs:
     inputs.snowfall-lib.mkFlake {
       inherit inputs;
       src = ./.;
@@ -44,21 +47,23 @@
       homes.users."minion@greylag".modules = [
         inputs.hyprland.homeManagerModules.default
         inputs.anyrun.homeManagerModules.default
+        inputs.nur.hmModules.nur
       ];
 
       system.modules.nixos = [
         inputs.hyprland.nixosModules.default
+        inputs.nur.nixosModules.nur  
       ];
 
       snowfall = {
-        namespace = "minion";
+        namespace = "chimera";
 
-        meta.name = "minion";
-        meta.title = "Minion's Nix Configurations";
+        meta.name = "chimera";
+        meta.title = "Coded and Minion's Nix Configurations";
       };
 
       outputs-builder = channels: {
-        formatter = nixpkgs.legacyPackages.${channels.nixpkgs.system}.nixfmt;
+        formatter = nixpkgs.legacyPackages.${channels.nixpkgs.system}.nixfmt-rfc-style;
       };
 
       channels-config = {
diff --git a/homes/x86_64-linux/coded@shorthair/default.nix b/homes/x86_64-linux/coded@shorthair/default.nix
new file mode 100644
index 0000000..d710c95
--- /dev/null
+++ b/homes/x86_64-linux/coded@shorthair/default.nix
@@ -0,0 +1,75 @@
+{
+  # Snowfall Lib provides a customized `lib` instance with access to your flake's library
+  # as well as the libraries available from your flake's inputs.
+  lib,
+  # An instance of `pkgs` with your overlays and packages applied is also available.
+  pkgs,
+  # You also have access to your flake's inputs.
+  inputs,
+
+  # Additional metadata is provided by Snowfall Lib.
+  home, # The home architecture for this host (eg. `x86_64-linux`).
+  target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
+  format, # A normalized name for the home target (eg. `home`).
+  virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
+  host, # The host name for this home.
+
+  # All other arguments come from the home home.
+  config,
+  ...
+}:
+{
+  chimera = {
+    hyprland = {
+      enable = true;
+
+      monitors = [
+        "DP-1,1920x1080@165,0x0,1"
+        "DP-2,1920x1080@165,1920x0,1"
+        "HDMI-A-1,1920x1080@60,960x-1080,1"
+      ];
+
+      hyprpaper = {
+        splash = {
+          enable = true;
+          offset = -0.6;
+        };
+      };
+    };
+    wallpaper = ./wallpaper.png;
+
+    browser = {
+      firefox = {
+        enable = true;
+        extraExtensions = [
+          config.nur.repos.rycee.firefox-addons.simple-tab-groups
+        ];
+      };
+
+      chromium = {
+        enable = true;
+        extensions = {
+          bitwarden.enable = true;
+          youtube = {
+            sponsorBlock.enable = true;
+            returnDislike.enable = true;
+            deArrow.enable = true;
+          };
+          reactdevtools.enable = true;
+          ublockOrigin.enable = true;
+        };
+        extraExtensions = [
+          { id = "gmkiokemhjjdjmpnnjmnpkpfoenpnpne"; } #Lofi Girl
+          { id = "bmnlcjabgnpnenekpadlanbbkooimhnj"; } #PayPal Honey
+          { id = "kekjfbackdeiabghhcdklcdoekaanoel"; } #MAL Sync
+        ];
+      };
+    };
+
+    theme.catppuccin = {
+      enable = true;
+      style = "Macchiato";
+      color = "Blue";
+    };
+  };
+}
diff --git a/homes/x86_64-linux/coded@shorthair/wallpaper.png b/homes/x86_64-linux/coded@shorthair/wallpaper.png
new file mode 100644
index 0000000..e758376
--- /dev/null
+++ b/homes/x86_64-linux/coded@shorthair/wallpaper.png
Binary files differ
diff --git a/homes/x86_64-linux/minion@greylag/default.nix b/homes/x86_64-linux/minion@greylag/default.nix
index 6632942..2496649 100644
--- a/homes/x86_64-linux/minion@greylag/default.nix
+++ b/homes/x86_64-linux/minion@greylag/default.nix
@@ -1,25 +1,71 @@
 {
-    # Snowfall Lib provides a customized `lib` instance with access to your flake's library
-    # as well as the libraries available from your flake's inputs.
-    lib,
-    # An instance of `pkgs` with your overlays and packages applied is also available.
-    pkgs,
-    # You also have access to your flake's inputs.
-    inputs,
+  # Snowfall Lib provides a customized `lib` instance with access to your flake's library
+  # as well as the libraries available from your flake's inputs.
+  lib,
+  # An instance of `pkgs` with your overlays and packages applied is also available.
+  pkgs,
+  # You also have access to your flake's inputs.
+  inputs,
 
-    # Additional metadata is provided by Snowfall Lib.
-    home, # The home architecture for this host (eg. `x86_64-linux`).
-    target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
-    format, # A normalized name for the home target (eg. `home`).
-    virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
-    host, # The host name for this home.
+  # Additional metadata is provided by Snowfall Lib.
+  home, # The home architecture for this host (eg. `x86_64-linux`).
+  target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
+  format, # A normalized name for the home target (eg. `home`).
+  virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
+  host, # The host name for this home.
 
-    # All other arguments come from the home home.
-    config,
-    ...
+  # All other arguments come from the home home.
+  config,
+  ...
 }:
 {
-    home.file.".snowfall.systemname".text = ''
-      greylag
-    '';
+  home.file.".snowfall.systemname".text = ''
+    greylag
+  '';
+
+  chimera = {
+    wallpaper = ./wallpaper.png;
+
+    hyprland.enable = true;
+    hyprland.hyprpaper.splash.enable = true;
+
+    touchpad.enable = true;
+
+    hyprland.monitors = [
+      "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"
+    ];
+
+    theme.catppuccin = {
+      enable = true;
+      style = "Latte";
+      color = "Maroon";
+    };
+
+    browser.chromium = {
+      enable = true;
+      extensions = {
+        ublockOrigin.enable = true;
+        bitwarden.enable = true;
+      };
+    };
+
+    browser.firefox = {
+      enable = true;
+      extensions = {
+        bitwarden.enable = true;
+        youtube = {
+          sponsorBlock.enable = true;
+          returnDislike.enable = true;
+          deArrow.enable = true;
+        };
+        reactDevTools.enable = true;
+        adnauseam.enable = true;
+      };
+      extraExtensions = [
+        config.nur.repos.rycee.firefox-addons.sidebery
+      ];
+    };
+  };
 }
diff --git a/modules/home/hyprpaper/wallpaper.png b/homes/x86_64-linux/minion@greylag/wallpaper.png
similarity index 100%
rename from modules/home/hyprpaper/wallpaper.png
rename to homes/x86_64-linux/minion@greylag/wallpaper.png
Binary files differ
diff --git a/homes/x86_64-linux/skyler@canvasback/default.nix b/homes/x86_64-linux/skyler@canvasback/default.nix
index 35277ab..7691307 100644
--- a/homes/x86_64-linux/skyler@canvasback/default.nix
+++ b/homes/x86_64-linux/skyler@canvasback/default.nix
@@ -1,25 +1,25 @@
 {
-    # Snowfall Lib provides a customized `lib` instance with access to your flake's library
-    # as well as the libraries available from your flake's inputs.
-    lib,
-    # An instance of `pkgs` with your overlays and packages applied is also available.
-    pkgs,
-    # You also have access to your flake's inputs.
-    inputs,
+  # Snowfall Lib provides a customized `lib` instance with access to your flake's library
+  # as well as the libraries available from your flake's inputs.
+  lib,
+  # An instance of `pkgs` with your overlays and packages applied is also available.
+  pkgs,
+  # You also have access to your flake's inputs.
+  inputs,
 
-    # Additional metadata is provided by Snowfall Lib.
-    home, # The home architecture for this host (eg. `x86_64-linux`).
-    target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
-    format, # A normalized name for the home target (eg. `home`).
-    virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
-    host, # The host name for this home.
+  # Additional metadata is provided by Snowfall Lib.
+  home, # The home architecture for this host (eg. `x86_64-linux`).
+  target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
+  format, # A normalized name for the home target (eg. `home`).
+  virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
+  host, # The host name for this home.
 
-    # All other arguments come from the home home.
-    config,
-    ...
+  # All other arguments come from the home home.
+  config,
+  ...
 }:
 {
-    home.file.".snowfall.systemname".text = ''
-      canvasback
-    '';
+  home.file.".snowfall.systemname".text = ''
+    canvasback
+  '';
 }
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/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;
diff --git a/packages/nix-provider/default.nix b/packages/nix-provider/default.nix
new file mode 100644
index 0000000..d80f296
--- /dev/null
+++ b/packages/nix-provider/default.nix
@@ -0,0 +1,2 @@
+{ writeShellScriptBin, ... }:
+writeShellScriptBin "nix-provider" (builtins.readFile ./nix-provider.sh)
diff --git a/packages/nix-provider/nix-provider.sh b/packages/nix-provider/nix-provider.sh
new file mode 100644
index 0000000..4a8bfb7
--- /dev/null
+++ b/packages/nix-provider/nix-provider.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+if [ "$1" = "" ]
+then
+  read -ep "What command are you looking for?: " CMD
+else
+  CMD=$1
+fi
+
+LOCATION=$(command -V "$CMD" 2>&1 | sed -rn "s/.* (.*)$/\1/p")
+
+if [ "$LOCATION" = "found" ] # Not found
+then
+  echo "The command $CMD wasn't found"
+  exit 1
+fi
+
+if [ "$LOCATION" = "builtin" ] # Shell builtin
+then
+  echo "The command $CMD is a shell builtin"
+  exit 0
+fi
+
+RESOLVED_LOCATION=$(readlink -f "$LOCATION")
+
+if [[ ! "$RESOLVED_LOCATION" =~ ^\/nix\/store\/.*-.*-.*$ ]];
+then
+  echo "The command $CMD is at $RESOLVED_LOCATION"
+  exit 0
+fi
+
+PACKAGE=$(echo "$RESOLVED_LOCATION" | sed -rn "s/\/nix\/store\/[^-]*-(.*)-[^-]*/\1/p")
+
+SEARCHED=$(nix search "nixpkgs#$PACKAGE" 2>&1)
+
+if [ "$SEARCHED" = "error: no results for the given search term(s)!" ]
+then
+  echo "The command $CMD is at $RESOLVED_LOCATION"
+  exit 0
+fi
+
+echo "The command $CMD is from:"
+echo "$SEARCHED"
+echo "Which is available at $RESOLVED_LOCATION"
diff --git a/systems/x86_64-linux/greylag/default.nix b/systems/x86_64-linux/greylag/default.nix
index 3b4b618..1d2532e 100644
--- a/systems/x86_64-linux/greylag/default.nix
+++ b/systems/x86_64-linux/greylag/default.nix
@@ -1,10 +1,29 @@
-{ lib, pkgs, inputs, system, target, format, virtual, systems, config, ... }: {
+{
+  lib,
+  pkgs,
+  inputs,
+  system,
+  target,
+  format,
+  virtual,
+  systems,
+  config,
+  ...
+}:
+{
   networking.hostName = "greylag";
   boot.loader.systemd-boot.enable = true;
   boot.loader.efi.canTouchEfiVariables = true;
 
-  boot.initrd.availableKernelModules =
-    [ "xhci_pci" "thunderbolt" "nvme" "uas" "usbhid" "sd_mod" "ext4" ];
+  boot.initrd.availableKernelModules = [
+    "xhci_pci"
+    "thunderbolt"
+    "nvme"
+    "uas"
+    "usbhid"
+    "sd_mod"
+    "ext4"
+  ];
   boot.initrd.kernelModules = [ ];
   boot.kernelModules = [ "kvm-intel" ];
   boot.extraModulePackages = [ ];
@@ -21,52 +40,72 @@
     keyFile = "/key:/dev/mapper/key";
   };
 
-  fileSystems = (lib.mapAttrs (_: share_name: {
-    device = "/dev/disk/by-label/BTRFS0";
-    fsType = "btrfs";
-    options = [ "subvol=shared/${share_name}" "compress=zstd:1" ];
-  }) {
-    "/home/minion/Code" = "@Code";
-    "/var/lib/containers" = "@containers";
-    "/etc/NetworkManager" = "@NetworkManager";
-    "/home/minion/.local/share/containers/storage" = "@personal-containers";
-    "/home/minion/.gtimelog" = "@gtimelog";
-    "/home/minion/Documents" = "@documents";
-  }) // {
-    "/mnt" = {
-      device = "/dev/mapper/key";
-      fsType = "ext4";
-    };
+  fileSystems =
+    (lib.mapAttrs
+      (_: share_name: {
+        device = "/dev/disk/by-label/BTRFS0";
+        fsType = "btrfs";
+        options = [
+          "subvol=shared/${share_name}"
+          "compress=zstd:1"
+        ];
+      })
+      {
+        "/home/minion/Code" = "@Code";
+        "/var/lib/containers" = "@containers";
+        "/etc/NetworkManager" = "@NetworkManager";
+        "/home/minion/.local/share/containers/storage" = "@personal-containers";
+        "/home/minion/.gtimelog" = "@gtimelog";
+        "/home/minion/Documents" = "@documents";
+      }
+    )
+    // {
+      "/mnt" = {
+        device = "/dev/mapper/key";
+        fsType = "ext4";
+      };
 
-    "/" = {
-      device = "/dev/disk/by-label/BTRFS0";
-      fsType = "btrfs";
-      options = [ "subvol=@nixos" "compress=zstd:1" ];
-    };
+      "/" = {
+        device = "/dev/disk/by-label/BTRFS0";
+        fsType = "btrfs";
+        options = [
+          "subvol=@nixos"
+          "compress=zstd:1"
+        ];
+      };
 
-    "/var" = {
-      device = "/dev/disk/by-label/BTRFS0";
-      fsType = "btrfs";
-      options = [ "subvol=@nixos-var" "compress=zstd:1" ];
-    };
+      "/var" = {
+        device = "/dev/disk/by-label/BTRFS0";
+        fsType = "btrfs";
+        options = [
+          "subvol=@nixos-var"
+          "compress=zstd:1"
+        ];
+      };
 
-    "/home" = {
-      device = "/dev/disk/by-label/BTRFS0";
-      fsType = "btrfs";
-      options = [ "subvol=@nixos-home" "compress=zstd:1" ];
-    };
+      "/home" = {
+        device = "/dev/disk/by-label/BTRFS0";
+        fsType = "btrfs";
+        options = [
+          "subvol=@nixos-home"
+          "compress=zstd:1"
+        ];
+      };
 
-    "/nix" = {
-      device = "/dev/disk/by-label/BTRFS0";
-      fsType = "btrfs";
-      options = [ "subvol=@nixos-nix" "compress=zstd:1" ];
-    };
+      "/nix" = {
+        device = "/dev/disk/by-label/BTRFS0";
+        fsType = "btrfs";
+        options = [
+          "subvol=@nixos-nix"
+          "compress=zstd:1"
+        ];
+      };
 
-    "/boot" = {
-      device = "/dev/disk/by-label/ESP";
-      fsType = "vfat";
+      "/boot" = {
+        device = "/dev/disk/by-label/ESP";
+        fsType = "vfat";
+      };
     };
-  };
 
   swapDevices = [ ];
 
@@ -80,6 +119,5 @@
 
   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
-  hardware.cpu.intel.updateMicrocode =
-    lib.mkDefault config.hardware.enableRedistributableFirmware;
+  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 }
diff --git a/systems/x86_64-linux/shorthair/default.nix b/systems/x86_64-linux/shorthair/default.nix
new file mode 100644
index 0000000..61b0ecb
--- /dev/null
+++ b/systems/x86_64-linux/shorthair/default.nix
@@ -0,0 +1,48 @@
+{
+  config,
+  lib,
+  pkgs,
+  modulesPath,
+  ...
+}:
+
+{
+  imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
+
+  boot.initrd.availableKernelModules = [
+    "nvme"
+    "xhci_pci"
+    "ahci"
+    "usb_storage"
+    "usbhid"
+    "sd_mod"
+    "sr_mod"
+  ];
+  boot.initrd.kernelModules = [ "amdgpu" ];
+  boot.kernelModules = [ ];
+  boot.extraModulePackages = [ ];
+
+  boot.initrd = {
+    luks.devices."luks-bf23eee1-7cb7-43b9-822f-a9f49ea0a768".device =
+      "/dev/disk/by-uuid/bf23eee1-7cb7-43b9-822f-a9f49ea0a768";
+    luks.devices."luks-c38bc921-8979-4a25-9520-f3354dee3557".device =
+      "/dev/disk/by-uuid/c38bc921-8979-4a25-9520-f3354dee3557";
+  };
+
+  fileSystems."/" = {
+    device = "/dev/disk/by-uuid/63caf2b5-90d4-49a7-99e9-98dcdd797859";
+    fsType = "ext4";
+  };
+
+  fileSystems."/boot" = {
+    device = "/dev/disk/by-uuid/5B78-4B2D";
+    fsType = "vfat";
+  };
+
+  swapDevices = [ { device = "/dev/disk/by-uuid/3a9212d4-6c39-4d5b-abf0-49294bd991c9"; } ];
+
+  networking.useDHCP = lib.mkDefault true;
+
+  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+  hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
