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/.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;
+}