diff --git a/README.md b/README.md
index 811c0ab..ddf6f24 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ In case you are not familiar with nix/nixos, this is a collection of configurati
 
 ### Features this repository include:
 
-- Consistent base16 theming using [base16-nix](https://github.com/SenchoPens/base16.nix)
+- Consistent base16 theming using [stylix](https://github.com/danth/stylix)
 - [Agenix](https://github.com/ryantm/agenix) & [homeage](https://github.com/jordanisaacs/homeage) based secret management 
 - Sets up all the apps I use, including git, neovim, fish, tmux, starship, xmonad, rofi, polybar, discord, zathura, alacritty & more. 
 
@@ -35,7 +35,7 @@ Here's some things you might want to check out:
 
 - [nixos](http://nixos.org/) - nix based operating system
 - [home-manager](https://github.com/nix-community/home-manager) - manage user configuration using nix
-- [base16-nix](https://github.com/SenchoPens/base16.nix) - base16 module for nix
+- [stylix](https://github.com/danth/stylix) - base16 module for nix
     - [Base16 templates](https://github.com/chriskempson/base16-templates-source) - list of base16 theme templates
     - [Catpuccin](https://github.com/catppuccin/catppuccin) - base16 theme I use
 - [Agenix](https://github.com/ryantm/agenix) & [homeage](https://github.com/jordanisaacs/homeage) - secret management
diff --git a/common/default.nix b/common/default.nix
new file mode 100644
index 0000000..e76a393
--- /dev/null
+++ b/common/default.nix
@@ -0,0 +1,4 @@
+# This directory contains modules which can be loaded on both nixos and home-manager!
+{
+  imports = [ ./fonts.nix ./themes ];
+}
diff --git a/common/fonts.nix b/common/fonts.nix
new file mode 100644
index 0000000..3391641
--- /dev/null
+++ b/common/fonts.nix
@@ -0,0 +1,16 @@
+{ pkgs, ... }: {
+  stylix.fonts = rec {
+    monospace = {
+      name = "FiraCode Nerd Font";
+      package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; };
+    };
+
+    sansSerif = {
+      name = "Fira Sans";
+      package = pkgs.fira;
+    };
+
+    # Why would you not want sansSerif
+    serif = sansSerif;
+  };
+}
diff --git a/common/themes/cag.nix b/common/themes/cag.nix
new file mode 100644
index 0000000..c2f6bbb
--- /dev/null
+++ b/common/themes/cag.nix
@@ -0,0 +1,9 @@
+{
+  stylix = {
+    # image = ./wallpapers/colorful1.png;
+    image = ./wallpapers/colorful2.png;
+    # image = ./wallpapers/colorful3.jpg;
+
+    polarity = "light";
+  };
+}
diff --git a/common/themes/default.nix b/common/themes/default.nix
new file mode 100644
index 0000000..e26f256
--- /dev/null
+++ b/common/themes/default.nix
@@ -0,0 +1,11 @@
+{
+  # Select your current theme here!
+  imports = [
+    # ./rose-pine-dawn.nix 
+    # ./eye.nix
+    ./cag.nix
+  ];
+
+  # Requires me to manually turn targets on!
+  stylix.autoEnable = false;
+}
diff --git a/common/themes/eye.nix b/common/themes/eye.nix
new file mode 100644
index 0000000..75655a7
--- /dev/null
+++ b/common/themes/eye.nix
@@ -0,0 +1,6 @@
+{
+  stylix = {
+    image = ./wallpapers/eye.png;
+    polarity = "dark";
+  };
+}
diff --git a/common/themes/rose-pine-dawn.nix b/common/themes/rose-pine-dawn.nix
new file mode 100644
index 0000000..a7b41cd
--- /dev/null
+++ b/common/themes/rose-pine-dawn.nix
@@ -0,0 +1,6 @@
+{ inputs, ... }: {
+  stylix = {
+    image = ./wallpapers/rosepine_light_field.png;
+    base16Scheme = "${inputs.rosepine-base16}/rose-pine-dawn.yaml";
+  };
+}
diff --git a/common/themes/wallpapers/colorful.png b/common/themes/wallpapers/colorful.png
new file mode 100644
index 0000000..57c508f
Binary files /dev/null and b/common/themes/wallpapers/colorful.png differ
diff --git a/common/themes/wallpapers/colorful2.png b/common/themes/wallpapers/colorful2.png
new file mode 100644
index 0000000..1c5556b
Binary files /dev/null and b/common/themes/wallpapers/colorful2.png differ
diff --git a/common/themes/wallpapers/colorful3.jpg b/common/themes/wallpapers/colorful3.jpg
new file mode 100644
index 0000000..5f2712b
Binary files /dev/null and b/common/themes/wallpapers/colorful3.jpg differ
diff --git a/common/themes/wallpapers/eye.png b/common/themes/wallpapers/eye.png
new file mode 100644
index 0000000..5933943
Binary files /dev/null and b/common/themes/wallpapers/eye.png differ
diff --git a/home/adrielus/features/desktop/common/wallpapers/nix-catppuccin.png b/common/themes/wallpapers/nix-catppuccin.png
similarity index 100%
rename from home/adrielus/features/desktop/common/wallpapers/nix-catppuccin.png
rename to common/themes/wallpapers/nix-catppuccin.png
diff --git a/home/adrielus/features/desktop/common/wallpapers/rosepine_light_field.png b/common/themes/wallpapers/rosepine_light_field.png
similarity index 100%
rename from home/adrielus/features/desktop/common/wallpapers/rosepine_light_field.png
rename to common/themes/wallpapers/rosepine_light_field.png
diff --git a/home/adrielus/features/desktop/common/wallpapers/wall.png b/common/themes/wallpapers/wall.png
similarity index 100%
rename from home/adrielus/features/desktop/common/wallpapers/wall.png
rename to common/themes/wallpapers/wall.png
diff --git a/dotfiles/neovim/ftplugin/tex.lua b/dotfiles/neovim/ftplugin/tex.lua
index 6a4d55f..4f49cfa 100644
--- a/dotfiles/neovim/ftplugin/tex.lua
+++ b/dotfiles/neovim/ftplugin/tex.lua
@@ -85,6 +85,8 @@ local abbreviations = {
   { "div", "\\|" },
   { "ndiv", "\\not\\|\\:" },
   { "perp", "\\perp" },
+  { "abs", "\\abs" }, -- custom abs command
+  { "norm", "\\norm" }, -- custom norm command
   { "iprod", "\\iprod" }, -- custom inner product command
 
   -- words
diff --git a/dotfiles/neovim/lua/my/plugins/themes/catppuccin.lua b/dotfiles/neovim/lua/my/plugins/themes/catppuccin.lua
index cd620ea..15a1e90 100644
--- a/dotfiles/neovim/lua/my/plugins/themes/catppuccin.lua
+++ b/dotfiles/neovim/lua/my/plugins/themes/catppuccin.lua
@@ -4,12 +4,14 @@ local M = {
   "catppuccin/nvim",
   name = "catppuccin",
   lazy = false,
-  enabled = H.theme_contains("Catppuccin"),
+  -- enabled = H.theme_contains("Catppuccin"),
+  enabled = true,
 }
 
 function M.config()
   local catppuccin = require("catppuccin")
-  vim.g.catppuccin_flavour = H.variant("Catppuccin")
+  -- vim.g.catppuccin_flavour = H.variant("Catppuccin")
+  vim.g.catppuccin_flavour = "latte"
 
   catppuccin.setup({
     transparent_background = false,
diff --git a/dotfiles/neovim/lua/my/plugins/vimux.lua b/dotfiles/neovim/lua/my/plugins/vimux.lua
index fd6e7d2..c83c6d7 100644
--- a/dotfiles/neovim/lua/my/plugins/vimux.lua
+++ b/dotfiles/neovim/lua/my/plugins/vimux.lua
@@ -6,7 +6,7 @@ local M = {
   cmd = { "VimuxPromptCommand", "VimuxRunCommand", "VimuxRunLastCommand" },
   -- TODO: only enable when actually inside tmux
   cond = env.vscode.not_active()
-    and env.neovide.not_active()
+    -- and env.neovide.not_active()
     and env.firenvim.not_active(),
 }
 
diff --git a/dotfiles/vscode-snippets/snippets/latex/core.json b/dotfiles/vscode-snippets/snippets/latex/core.json
index d36d105..64bf170 100644
--- a/dotfiles/vscode-snippets/snippets/latex/core.json
+++ b/dotfiles/vscode-snippets/snippets/latex/core.json
@@ -14,6 +14,16 @@
     "description": "Absolute values",
     "body": "\\abs{$1}$0"
   },
+  "Norm": {
+    "prefix": "norm",
+    "description": "Norm of a vector",
+    "body": "\\norm{$1}$0"
+  },
+  "Inner product": {
+    "prefix": "iprod",
+    "description": "Inner product of two vectors",
+    "body": "\\iprod{$1}{$2}$0"
+  },
   "Lemma": {
     "prefix": "lemma",
     "description": "Create a lemma",
diff --git a/flake.lock b/flake.lock
index 76f117e..391b558 100644
--- a/flake.lock
+++ b/flake.lock
@@ -23,6 +23,7 @@
     "base16": {
       "inputs": {
         "nixpkgs": [
+          "stylix",
           "nixpkgs"
         ]
       },
@@ -56,6 +57,28 @@
         "type": "github"
       }
     },
+    "coricamu": {
+      "inputs": {
+        "nixpkgs": [
+          "stylix",
+          "nixpkgs"
+        ],
+        "utils": "utils_2"
+      },
+      "locked": {
+        "lastModified": 1677749800,
+        "narHash": "sha256-xIqxDr4fkOA5R4OudbQoUMS8xvPJNCyGfqugENutSP4=",
+        "owner": "danth",
+        "repo": "coricamu",
+        "rev": "40db414609dc6d72319987d3e9d7b56fe405c28f",
+        "type": "github"
+      },
+      "original": {
+        "owner": "danth",
+        "repo": "coricamu",
+        "type": "github"
+      }
+    },
     "firefox-addons": {
       "inputs": {
         "flake-utils": "flake-utils",
@@ -95,6 +118,22 @@
         "type": "github"
       }
     },
+    "flake-compat_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1673956053,
+        "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
+        "owner": "edolstra",
+        "repo": "flake-compat",
+        "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
+        "type": "github"
+      },
+      "original": {
+        "owner": "edolstra",
+        "repo": "flake-compat",
+        "type": "github"
+      }
+    },
     "flake-utils": {
       "locked": {
         "lastModified": 1629284811,
@@ -146,6 +185,28 @@
         "type": "github"
       }
     },
+    "home-manager_2": {
+      "inputs": {
+        "nixpkgs": [
+          "stylix",
+          "nixpkgs"
+        ],
+        "utils": "utils_3"
+      },
+      "locked": {
+        "lastModified": 1658924727,
+        "narHash": "sha256-Fhh9FK9CvuCLxG1WkWJPoendDeXKI4gHYTfezo1n2Zg=",
+        "owner": "nix-community",
+        "repo": "home-manager",
+        "rev": "0e2f7876d2f2ae98a67d89a8bef8c49332aae5af",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "home-manager",
+        "type": "github"
+      }
+    },
     "homeage": {
       "inputs": {
         "nixpkgs": [
@@ -243,6 +304,22 @@
         "type": "github"
       }
     },
+    "nixpkgs_2": {
+      "locked": {
+        "lastModified": 1659102345,
+        "narHash": "sha256-Vbzlz254EMZvn28BhpN8JOi5EuKqnHZ3ujFYgFcSGvk=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "11b60e4f80d87794a2a4a8a256391b37c59a1ea7",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixpkgs-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "nur": {
       "locked": {
         "lastModified": 1678056369,
@@ -261,7 +338,6 @@
     "root": {
       "inputs": {
         "agenix": "agenix",
-        "base16": "base16",
         "catppuccin-base16": "catppuccin-base16",
         "firefox-addons": "firefox-addons",
         "home-manager": "home-manager",
@@ -271,7 +347,8 @@
         "nixpkgs": "nixpkgs",
         "nur": "nur",
         "rosepine-base16": "rosepine-base16",
-        "slambda": "slambda"
+        "slambda": "slambda",
+        "stylix": "stylix"
       }
     },
     "rosepine-base16": {
@@ -310,6 +387,28 @@
         "type": "github"
       }
     },
+    "stylix": {
+      "inputs": {
+        "base16": "base16",
+        "coricamu": "coricamu",
+        "flake-compat": "flake-compat_2",
+        "home-manager": "home-manager_2",
+        "nixpkgs": "nixpkgs_2"
+      },
+      "locked": {
+        "lastModified": 1678458325,
+        "narHash": "sha256-LppqiGnyIPCHUndi8m6iF/EoC885FXeJ/nbhbydZyTU=",
+        "owner": "danth",
+        "repo": "stylix",
+        "rev": "679a80676840185cbc72a3751ccdac169477c21a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "danth",
+        "repo": "stylix",
+        "type": "github"
+      }
+    },
     "utils": {
       "locked": {
         "lastModified": 1667395993,
@@ -324,6 +423,36 @@
         "repo": "flake-utils",
         "type": "github"
       }
+    },
+    "utils_2": {
+      "locked": {
+        "lastModified": 1642700792,
+        "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "utils_3": {
+      "locked": {
+        "lastModified": 1653893745,
+        "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
     }
   },
   "root": "root",
diff --git a/flake.nix b/flake.nix
index a73d1a0..7c6c42a 100644
--- a/flake.nix
+++ b/flake.nix
@@ -25,8 +25,11 @@
     homeage.inputs.nixpkgs.follows = "nixpkgs";
 
     # Base16-nix
-    base16.url = github:SenchoPens/base16.nix;
-    base16.inputs.nixpkgs.follows = "nixpkgs";
+    # base16.url = github:SenchoPens/base16.nix;
+    # base16.inputs.nixpkgs.follows = "nixpkgs";
+
+    # Stylix
+    stylix.url = "github:danth/stylix";
 
     # Catpuccin base16 color schemes
     catppuccin-base16.url = github:catppuccin/base16;
@@ -64,7 +67,6 @@
 
         # colorscheme = "${inputs.catppuccin-base16}/base16/latte.yaml";
         # colorscheme = "${inputs.catppuccin-base16}/base16/frappe.yaml";
-        colorscheme = "${inputs.rosepine-base16}/rose-pine-dawn.yaml";
       };
     in
     rec {
@@ -102,6 +104,8 @@
               home-manager.users.adrielus = import ./home/adrielus/tethys.nix;
               home-manager.extraSpecialArgs = specialArgs;
               home-manager.useUserPackages = true;
+              stylix.homeManagerIntegration.followSystem = false;
+              stylix.homeManagerIntegration.autoImport = false;
             }
 
             ./hosts/nixos/tethys
diff --git a/home/adrielus/features/cli/tmux/default.nix b/home/adrielus/features/cli/tmux/default.nix
index 82ab711..95cb191 100644
--- a/home/adrielus/features/cli/tmux/default.nix
+++ b/home/adrielus/features/cli/tmux/default.nix
@@ -1,9 +1,11 @@
 { pkgs, config, ... }:
-let base16-tmux = pkgs.fetchFromGitHub {
-  owner = "tinted-theming";
-  repo = "base16-tmux";
-  sha256 = "1p6czpd9f0sbibdsph1hdw4ljp6zzjij2159bks16wbfbg3p1hhx";
-  rev = "3312bb2cbb26db7eeb2d2235ae17d4ffaef5e59b";
+let base16-tmux = config.lib.stylix.colors {
+  templateRepo = pkgs.fetchFromGitHub {
+    owner = "tinted-theming";
+    repo = "base16-tmux";
+    sha256 = "1p6czpd9f0sbibdsph1hdw4ljp6zzjij2159bks16wbfbg3p1hhx";
+    rev = "3312bb2cbb26db7eeb2d2235ae17d4ffaef5e59b";
+  };
 };
 in
 {
@@ -30,7 +32,7 @@ in
       source ${./tmux.conf}
 
       # Theme
-      source ${config.scheme base16-tmux}
+      source ${base16-tmux}
     '';
   };
 }
diff --git a/home/adrielus/features/desktop/common/alacritty.nix b/home/adrielus/features/desktop/common/alacritty.nix
index 782b165..f59005a 100644
--- a/home/adrielus/features/desktop/common/alacritty.nix
+++ b/home/adrielus/features/desktop/common/alacritty.nix
@@ -1,26 +1,17 @@
 { config, pkgs, ... }:
-let base16-alacritty = pkgs.fetchFromGitHub {
-  owner = "aarowill";
-  repo = "base16-alacritty";
-  sha256 = "0zibl9kzazckkyzb6j0iabrl82r1kgwg8ndqpy7dz0kwmj42wfx0";
-  rev = "914727e48ebf3eab1574e23ca0db0ecd0e5fe9d0";
-};
-in
 {
+  stylix.targets.alacritty.enable = true;
+
   programs.alacritty = {
     enable = true;
 
     settings = {
-      import = [ (config.scheme base16-alacritty) ];
-
       window.decorations = "none";
       window.padding = {
         x = 4;
         y = 4;
       };
 
-      fonts.normal.family = config.fontProfiles.monospace.family;
-
       env = { TERM = "tmux-256color"; };
       working_directory = "${config.home.homeDirectory}/Projects/";
     };
diff --git a/home/adrielus/features/desktop/common/discord.nix b/home/adrielus/features/desktop/common/discord.nix
index 9c7283c..a116780 100644
--- a/home/adrielus/features/desktop/common/discord.nix
+++ b/home/adrielus/features/desktop/common/discord.nix
@@ -2,6 +2,6 @@
   programs.discord = {
     enable = true;
     disableUpdateCheck = true;
-    base16Styles.enable = false;
+    enableDevtools = true;
   };
 }
diff --git a/home/adrielus/features/desktop/common/eww/default.nix b/home/adrielus/features/desktop/common/eww/default.nix
index 9a8ab75..6397361 100644
--- a/home/adrielus/features/desktop/common/eww/default.nix
+++ b/home/adrielus/features/desktop/common/eww/default.nix
@@ -1,6 +1,6 @@
 { config, pkgs, ... }:
 let
-  base16-eww = {
+  base16-eww = config.lib.stylix.colors {
     template = builtins.readFile ./template.yuck;
   };
 
@@ -10,7 +10,7 @@ in
   home.packages = [ pkgs.eww ];
   xdg.configFile."eww/eww.yuck".text = ''
     # Color scheme
-    (include ${config.scheme base16-eww})
+    (include ${base16-eww})
 
     # My widgets
     (include ${widgets}/dashboard)
diff --git a/home/adrielus/features/desktop/common/feh.nix b/home/adrielus/features/desktop/common/feh.nix
new file mode 100644
index 0000000..a0a753a
--- /dev/null
+++ b/home/adrielus/features/desktop/common/feh.nix
@@ -0,0 +1,5 @@
+{ config, pkgs, ... }:
+{
+  xsession.initExtra =
+    "${pkgs.feh}/bin/feh --no-fehbg --bg-fill ${config.stylix.image}";
+}
diff --git a/home/adrielus/features/desktop/common/firefox.nix b/home/adrielus/features/desktop/common/firefox.nix
index d02301f..5a47b4e 100644
--- a/home/adrielus/features/desktop/common/firefox.nix
+++ b/home/adrielus/features/desktop/common/firefox.nix
@@ -121,13 +121,31 @@ in
         "Google".metaData.alias = "@g";
       };
     };
-  };
 
-  firefox.apps.asana = {
-    url = "https://app.asana.com/";
-    icon = ./icons/asana.png;
-    displayName = "Asana";
-    id = 1;
-  };
+    apps = {
+      # {{{ Job stuff
+      asana = {
+        url = "https://app.asana.com/";
+        icon = ./icons/asana.png;
+        displayName = "Asana";
+        id = 1;
+      };
 
+      clockodo = {
+        url = "https://my.clockodo.com/en/";
+        icon = ./icons/clockodo.png;
+        displayName = "Clockodo";
+        id = 2;
+      };
+
+      # }}}
+
+      gitlab = {
+        url = "https://gitlab.com";
+        icon = ./icons/gitlab.png;
+        displayName = "Gitlab";
+        id = 3;
+      };
+    };
+  };
 }
diff --git a/home/adrielus/features/desktop/common/fonts.nix b/home/adrielus/features/desktop/common/fonts.nix
deleted file mode 100644
index 804d48f..0000000
--- a/home/adrielus/features/desktop/common/fonts.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ pkgs, ... }: {
-  fontProfiles = {
-    enable = true;
-
-    monospace = {
-      family = "FiraCode Nerd Font";
-      package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; };
-    };
-
-    regular = {
-      family = "Fira Sans";
-      package = pkgs.fira;
-    };
-  };
-}
diff --git a/home/adrielus/features/desktop/common/icons/clockodo.png b/home/adrielus/features/desktop/common/icons/clockodo.png
new file mode 100644
index 0000000..7b710c4
Binary files /dev/null and b/home/adrielus/features/desktop/common/icons/clockodo.png differ
diff --git a/home/adrielus/features/desktop/common/icons/gitlab.png b/home/adrielus/features/desktop/common/icons/gitlab.png
new file mode 100644
index 0000000..d17fce3
Binary files /dev/null and b/home/adrielus/features/desktop/common/icons/gitlab.png differ
diff --git a/home/adrielus/features/desktop/common/polybar/default.nix b/home/adrielus/features/desktop/common/polybar/default.nix
index 7e6f809..c637185 100644
--- a/home/adrielus/features/desktop/common/polybar/default.nix
+++ b/home/adrielus/features/desktop/common/polybar/default.nix
@@ -1,6 +1,6 @@
 { pkgs, lib, paths, config, ... }:
 let
-  base16-polybar = {
+  base16-polybar = config.lib.stylix.colors {
     template = builtins.readFile ./template.mustache;
   };
 
@@ -14,12 +14,12 @@ in
     enable = true;
     extraConfig = ''
       ; Generated theme
-      ${builtins.readFile (config.scheme base16-polybar)}
+      ${builtins.readFile base16-polybar}
 
       ; Consistent fonts
       [fonts]
-      regular = "${config.fontProfiles.regular.family}"
-      monospace = "${config.fontProfiles.monospace.family}"
+      regular = "${config.stylix.fonts.sansSerif.name}"
+      monospace = "${config.stylix.fonts.monospace.name}"
 
       ; Actual config
       ${builtins.readFile ./polybar.ini}
diff --git a/home/adrielus/features/desktop/common/rofi/default.nix b/home/adrielus/features/desktop/common/rofi/default.nix
index e23759a..bb12c61 100644
--- a/home/adrielus/features/desktop/common/rofi/default.nix
+++ b/home/adrielus/features/desktop/common/rofi/default.nix
@@ -1,10 +1,12 @@
 { pkgs, config, ... }:
 let
-  base16-rofi = pkgs.fetchFromGitHub {
-    owner = "tinted-theming";
-    repo = "base16-rofi";
-    sha256 = "03y4ydnd6sijscrrp4qdvckrckscd39r8gyhpzffs60a1w4n76j5";
-    rev = "3f64a9f8d8cb7db796557b516682b255172c4ab4";
+  base16-rofi = config.lib.stylix.colors {
+    templateRepo = pkgs.fetchFromGitHub {
+      owner = "tinted-theming";
+      repo = "base16-rofi";
+      sha256 = "03y4ydnd6sijscrrp4qdvckrckscd39r8gyhpzffs60a1w4n76j5";
+      rev = "3f64a9f8d8cb7db796557b516682b255172c4ab4";
+    };
   };
 in
 {
@@ -16,10 +18,10 @@ in
 
     // Inject font
     configuration {
-      font: "${config.fontProfiles.monospace.family}";
+      font: "${config.stylix.fonts.monospace.name}";
     }
 
     // Theme
-    ${builtins.readFile (config.scheme base16-rofi)}
+    ${builtins.readFile base16-rofi}
   '';
 }
diff --git a/home/adrielus/features/desktop/common/xresources.nix b/home/adrielus/features/desktop/common/xresources.nix
deleted file mode 100644
index cda282f..0000000
--- a/home/adrielus/features/desktop/common/xresources.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ config, pkgs, ... }:
-let base16-xresources = pkgs.fetchFromGitHub {
-  owner = "tinted-theming";
-  repo = "base16-xresources";
-  sha256 = "151zahx18vfrmbll7lwwnb17rn4z0di8n0fi2yr10hg14azddb2r";
-  rev = "6711cf4fa61e903e52ef6eac186b83e04a0397d8";
-};
-in
-{
-  xresources.extraConfig = builtins.readFile (config.scheme base16-xresources);
-}
diff --git a/home/adrielus/features/desktop/common/xwallpaper.nix b/home/adrielus/features/desktop/common/xwallpaper.nix
deleted file mode 100644
index 20e6a44..0000000
--- a/home/adrielus/features/desktop/common/xwallpaper.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ config, ... }:
-let
-  wallpapers = {
-    "Catppuccin Latte" = ./wallpapers/wall.png;
-    "Catppuccin Frappe" = ./wallpapers/nix-catppuccin.png;
-    "Rosé Pine Dawn" = ./wallpapers/rosepine_light_field.png;
-  };
-in
-{
-  home.file.".background-image".source = wallpapers.${config.scheme.scheme};
-}
diff --git a/home/adrielus/features/desktop/common/zathura.nix b/home/adrielus/features/desktop/common/zathura.nix
index 2a08116..7a2d600 100644
--- a/home/adrielus/features/desktop/common/zathura.nix
+++ b/home/adrielus/features/desktop/common/zathura.nix
@@ -1,9 +1,11 @@
 { config, pkgs, ... }:
-let base16-zathura = pkgs.fetchFromGitHub {
-  owner = "doenerkebap";
-  repo = "base16-zathura";
-  sha256 = "1zcrzll13d4lmyzibwdqkkdssyhr3c9s4yxhqigg3azsizk8adb4";
-  rev = "2caef8fff6a5412e05950c6105c5020a6f16ead2";
+let base16-zathura = config.lib.stylix.colors {
+  templateRepo = pkgs.fetchFromGitHub {
+    owner = "doenerkebap";
+    repo = "base16-zathura";
+    sha256 = "1zcrzll13d4lmyzibwdqkkdssyhr3c9s4yxhqigg3azsizk8adb4";
+    rev = "2caef8fff6a5412e05950c6105c5020a6f16ead2";
+  };
 };
 in
 {
@@ -11,13 +13,13 @@ in
     enable = true;
     extraConfig = ''
       # Generated theme
-      ${builtins.readFile (config.scheme base16-zathura)}
+      ${builtins.readFile base16-zathura}
 
       # Open document in fit-width mode by default
       set adjust-open "best-fit"
 
       # Inject font
-      set font "${config.fontProfiles.regular.family}"
+      set font "${config.stylix.fonts.sansSerif.name}"
     '';
   };
 }
diff --git a/home/adrielus/features/desktop/xmonad.nix b/home/adrielus/features/desktop/xmonad.nix
index 0fc65f1..9e75a6a 100644
--- a/home/adrielus/features/desktop/xmonad.nix
+++ b/home/adrielus/features/desktop/xmonad.nix
@@ -3,10 +3,8 @@
     ./common/rofi
     ./common/polybar
     ./common/eww
-    ./common/fonts.nix
-    ./common/xresources.nix
-    ./common/xwallpaper.nix
     ./common/alacritty.nix
+    ./common/feh.nix
   ];
 
   # Other packages I want to install:
@@ -15,4 +13,9 @@
     xclip # Clipboard stuff
     spectacle # Take screenshots
   ];
+
+  stylix.targets = {
+    xresources.enable = true;
+    gtk.enable = true;
+  };
 }
diff --git a/home/adrielus/features/neovim/default.nix b/home/adrielus/features/neovim/default.nix
index 276423a..7920ffe 100644
--- a/home/adrielus/features/neovim/default.nix
+++ b/home/adrielus/features/neovim/default.nix
@@ -52,7 +52,7 @@ let
       "lua/nix/theme.lua"
       ''
         return {
-          name = "${config.scheme.scheme}"
+          name = "${config.lib.stylix.scheme.scheme}"
         }
       '')
 
diff --git a/home/adrielus/global/default.nix b/home/adrielus/global/default.nix
index 71f5395..d5a1fcf 100644
--- a/home/adrielus/global/default.nix
+++ b/home/adrielus/global/default.nix
@@ -1,14 +1,15 @@
-{ inputs, lib, pkgs, config, outputs, colorscheme, ... }:
+{ inputs, lib, pkgs, config, outputs, ... }:
 let
   # Extra modules to import
   imports = [
-    inputs.base16.homeManagerModule
+    inputs.stylix.homeManagerModules.stylix
     inputs.homeage.homeManagerModules.homeage
     inputs.nur.nixosModules.nur
     # inputs.impermanence.nixosModules.home-manager.impermanence
 
     ../features/cli
     ../features/neovim
+    ../../../common
   ];
 
   # Extra overlays to add
@@ -41,9 +42,6 @@ in
     git.enable = true;
   };
 
-  # Set default theme
-  scheme = lib.mkDefault colorscheme;
-
   # Set reasonable defaults for some settings
   home = {
     username = lib.mkDefault "adrielus";
diff --git a/hosts/nixos/common/global/default.nix b/hosts/nixos/common/global/default.nix
index 4c61ee9..97dcb08 100644
--- a/hosts/nixos/common/global/default.nix
+++ b/hosts/nixos/common/global/default.nix
@@ -1,9 +1,9 @@
 # Configuration pieces included on all (nixos) hosts
-{ inputs, outputs, lib, colorscheme, ... }:
+{ inputs, outputs, lib, ... }:
 let
   imports = [
     inputs.agenix.nixosModule
-    inputs.base16.nixosModule
+    inputs.stylix.nixosModules.stylix
     inputs.slambda.nixosModule
     inputs.nur.nixosModules.nur
     # inputs.impermanence.nixosModule
@@ -13,6 +13,7 @@ let
     ./fish.nix
     ./locale.nix
     ./wireless
+    ../../../../common
   ];
 in
 {
@@ -23,8 +24,6 @@ in
     "/etc/ssh/ssh_host_ed25519_key"
   ];
 
-  scheme = lib.mkDefault colorscheme;
-
   nixpkgs = {
     # Add all overlays defined in the overlays directory
     overlays = builtins.attrValues outputs.overlays ++ [
diff --git a/hosts/nixos/common/optional/gdm.nix b/hosts/nixos/common/optional/gdm.nix
deleted file mode 100644
index 92258a0..0000000
--- a/hosts/nixos/common/optional/gdm.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  services.xserver = {
-    enable = true;
-    displayManager.gdm.enable = true;
-  };
-}
-
diff --git a/hosts/nixos/common/optional/lightdm.nix b/hosts/nixos/common/optional/lightdm.nix
new file mode 100644
index 0000000..2631cdb
--- /dev/null
+++ b/hosts/nixos/common/optional/lightdm.nix
@@ -0,0 +1,16 @@
+{
+  services.xserver = {
+    enable = true;
+    displayManager.lightdm = {
+      enable = true;
+
+      greeters.enso = {
+        enable = true;
+        blur = true;
+      };
+    };
+  };
+
+  stylix.targets.lightdm.enable = true;
+}
+
diff --git a/hosts/nixos/common/optional/xmonad/default.nix b/hosts/nixos/common/optional/xmonad/default.nix
index 83ac3e5..ed02de5 100644
--- a/hosts/nixos/common/optional/xmonad/default.nix
+++ b/hosts/nixos/common/optional/xmonad/default.nix
@@ -8,7 +8,7 @@
       enable = true;
       enableContribAndExtras = true;
 
-      config = builtins.readFile (config.scheme {
+      config = builtins.readFile (config.lib.stylix.colors {
         template = builtins.readFile ./Main.hs;
       });
     };
@@ -19,5 +19,10 @@
     # Make xmonad session the default
     displayManager.defaultSession = "none+xmonad";
   };
+
+  # Enable ad-hoc stylix targets:
+  stylix.targets = {
+    gtk.enable = true;
+  };
 }
 
diff --git a/hosts/nixos/tethys/boot.nix b/hosts/nixos/tethys/boot.nix
index 2d48248..1c09f3b 100644
--- a/hosts/nixos/tethys/boot.nix
+++ b/hosts/nixos/tethys/boot.nix
@@ -32,5 +32,5 @@
     };
   };
 
-  boot.loader.grub.base16.enable = true;
+stylix.targets.grub.enable = true;
 }
diff --git a/hosts/nixos/tethys/default.nix b/hosts/nixos/tethys/default.nix
index d0cde0e..c447a31 100644
--- a/hosts/nixos/tethys/default.nix
+++ b/hosts/nixos/tethys/default.nix
@@ -6,7 +6,7 @@
     ../common/optional/pipewire.nix
     ../common/optional/touchpad.nix
     ../common/optional/xserver.nix
-    ../common/optional/gdm.nix
+    ../common/optional/lightdm.nix
     ../common/optional/xmonad
     ../common/optional/slambda.nix
 
@@ -14,6 +14,7 @@
     ./boot.nix
   ];
 
+  # Set the name of this machine!
   networking.hostName = "tethys";
 
   # A few ad-hoc settings
diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix
index 1fd898c..cdfc3f0 100644
--- a/modules/home-manager/default.nix
+++ b/modules/home-manager/default.nix
@@ -3,8 +3,6 @@
 {
   # example = import ./example.nix;
   discord = import ./discord.nix;
-  fonts = import ./fonts.nix;
-  manage-fonts = import ./manage-fonts.nix;
   firefox = import ./firefox;
   satellite-dev = import ./satellite-dev.nix;
 }
diff --git a/modules/home-manager/discord.nix b/modules/home-manager/discord.nix
index 7980433..60b345c 100644
--- a/modules/home-manager/discord.nix
+++ b/modules/home-manager/discord.nix
@@ -1,7 +1,6 @@
 { config, lib, pkgs, ... }:
 let
   cfg = config.programs.discord;
-  colors = config.scheme;
 in
 {
   options.programs.discord = {
@@ -15,7 +14,7 @@ in
       default = false;
     };
 
-    base16Styles.enable = lib.mkOption {
+    enableDevtools = lib.mkOption {
       type = lib.types.bool;
       default = false;
     };
@@ -24,230 +23,15 @@ in
   config = lib.mkIf cfg.enable {
     home.packages = [
       pkgs.discord
-    ] ++
-    (if cfg.base16Styles.enable then [ pkgs.discocss ] else [ ]);
+    ];
 
 
     xdg.configFile."discord/settings.json".text =
       builtins.toJSON
         {
           SKIP_HOST_UPDATE = cfg.disableUpdateCheck;
+          DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING = cfg.enableDevtools;
         };
-
-    # Taken from [here](https://github.com/Misterio77/nix-config/blob/main/home/misterio/features/desktop/common/discord.nix)
-    xdg.configFile."discocss/custom.css" = lib.mkIf cfg.base16Styles.enable {
-      text =
-        ''
-          .theme-light {
-              --header-primary: #${colors.base05};
-              --header-secondary: #${colors.base04};
-              --text-normal: #${colors.base05};
-              --text-muted: #${colors.base04};
-              --text-link: #${colors.base08};
-              --channels-default: #${colors.base05};
-              --interactive-normal: #${colors.base04};
-              --interactive-hover: #${colors.base05};
-              --interactive-active: #${colors.base05};
-              --interactive-muted: #${colors.base03};
-              --background-primary: #${colors.base00};
-              --background-secondary: #${colors.base01};
-              --background-secondary-alt: #${colors.base02};
-              --background-tertiary: #${colors.base01};
-              --background-accent: #${colors.base01};
-              --background-floating: #${colors.base00};
-              --background-mobile-primary: var(--background-primary);
-              --background-mobile-secondary: var(--background-secondary);
-              --background-modifier-selected: var(--background-secondary);
-              --scrollbar-thin-thumb: #${colors.base02};
-              --scrollbar-auto-thumb: #${colors.base02};
-              --scrollbar-auto-track: #${colors.base01};
-              --scrollbar-auto-scrollbar-color-thumb: #${colors.base02};
-              --scrollbar-auto-scrollbar-color-track: #${colors.base01};
-              --focus-primary: #${colors.base08};
-              --channeltextarea-background: #${colors.base01};
-              --deprecated-card-bg: #${colors.base01};
-              --deprecated-quickswitcher-input-background: #${colors.base01};
-              --deprecated-quickswitcher-input-placeholder: #${colors.base05};
-              --background-modifier-hover: var(--background-secondary);
-              --background-modifier-active: var(--background-secondary-alt);
-              --activity-card-background: var(--background-secondary);
-          }
-          body {
-              font-family: ${config.fontProfiles.regular.family}, sans serif;
-          }
-
-          .scroller-1Bvpku {
-              background-color: var(--background-primary);
-          }
-          .scroller-2FKFPG {
-              background-color: var(--background-primary);
-          }
-          .headerPlaying-j0WQBV, .headerStreaming-2FjmGz {
-              background: var(--background-secondary-alt);
-          }
-          .theme-light .headerNormal-T_seeN {
-              background-color: var(--background-primary);
-          }
-          .theme-light .body-3iLsc4, .theme-light .footer-1fjuF6 {
-              background-color: var(--background-primary);
-              color: var(--header-secondary);
-          }
-          .theme-light .quickMessage-1yeL4E {
-              background-color: var(--background-secondary);
-              border-color: var(--background-secondary);
-          }
-          .theme-light .inset-3sAvek {
-              background-color: var(--background-secondary);
-          }
-          .theme-light .userSettingsAccount-2eMFVR .viewBody-2Qz-jg {
-              color: var(--header-primary);
-          }
-          .theme-light .modal-yWgWj- {
-              background-color: var(--background-primary);
-          }
-          .theme-light .footer-2gL1pp {
-              background-color: var(--background-primary);
-          }
-          .theme-light .lookLink-9FtZy-.colorPrimary-3b3xI6 {
-              color: var(--header-primary);
-          }
-          .theme-light .notDetected-33MY4s, .theme-light .notDetected-33MY4s {
-              background-color: var(--background-primary);
-          }
-          .theme-light .notDetected-33MY4s .gameName-1RiWHm, .theme-light .notDetected-33MY4s .gameName-1RiWHm {
-              color: var(--header-primary);
-          }
-          .theme-light .gameName-1RiWHm {
-              color: var(--header-primary);
-          }
-          .theme-light .notDetected-33MY4s .lastPlayed-3bQ7Bo, .theme-light .notDetected-33MY4s .lastPlayed-3bQ7Bo {
-              color: var(--header-primary);
-          }
-          .theme-light .nowPlayingAdd-1Kdmh_, .theme-light .nowPlayingAdd-1Kdmh_ {
-              color: var(--header-primary);
-          }
-          .css-1k00wn6-singleValue {
-              color: var(--header-primary);
-          }
-          .theme-light .codeRedemptionRedirect-1wVR4b {
-              color: var(--header-primary);
-              background-color: var(--background-primary);
-              border-color: var(--background-primary);
-          }
-          .theme-light .emptyStateHeader-248f_b {
-              color: var(--header-primary);
-          }
-          .theme-light .emptyStateSubtext-2hdA9c {
-              color: var(--header-primary);
-          }
-          .theme-light .root-1gCeng {
-              background-color: var(--background-primary);
-          }
-          .theme-light .date-EErlv4 {
-              color: var(--header-primary);
-          }
-          .theme-light .content-8bidB ol, .theme-light .content-8biNdB p, .theme-light .content-8biNdB ul li {
-              color: var(--header-primary);
-          }
-          .headerName-fajvi9, .headerTagUsernameNoNickname-2_H881 {
-              color: var(--header-primary);
-          }
-          .headerTag-2pZJzA {
-              color: var(--header-secondary);
-          }
-          .theme-light .activityProfile-2bJRaP .headerText-1HLrL7, .theme-light .activityUserPopout-2yItg2 .headerText-1HLrL7, .theme-light .activityProfile-2bJRaP .headerText-1HLrL7, .theme-light .activityUserPopout-2yItg2 .headerText-1HLrL7 {
-              color: var(--header-secondary);
-          }
-          .activityName-1IaRLn, .nameNormal-2lqVQK, .nameWrap-3Z4G_9 {
-              color: var(--header-secondary);
-          }
-          .theme-light .activityProfile-2bJRaP .content-3JfFJh, .theme-light .activityProfile-2bJRaP .details-38sfDr, .theme-light .activityProfile-2bJRaP .name-29ETJS, .theme-light .activityUserPopout-2yItg2 .content-3JfFJh, .theme-light .activityUserPopout-2yItg2 .details-38sfDr, .theme-light .activityUserPopout-2yItg2 .name-29ETJS, .theme-light .activityProfile-2bJRaP .content-3JfFJh, .theme-light .activityProfile-2bJRaP .details-38sfDr, .theme-light .activityProfile-2bJRaP .name-29ETJS, .theme-light .activityUserPopout-2yItg2 .content-3JfFJh, .theme-light .activityUserPopout-2yItg2 .details-38sfDr, .theme-light .activityUserPopout-2yItg2 .name-29ETJS {
-              color: var(--header-secondary);
-          }
-          .topSectionPlaying-1J5E4n {
-              background: var(--background-secondary-alt);
-          }
-          .username-3gJmXY {
-              color: var(--header-primary);
-          }
-          .discriminator-xUhQkU {
-              color: var(--header-secondary);
-          }
-          .tabBarItem-1b8RUP.item-PXvHYJ {
-              color: var(--header-secondary) !important;
-              border-color: transparent !important;
-          }
-          .theme-light .keybind-KpFkfr {
-              color: var(--header-primary);
-          }
-          .theme-light .closeButton-1tv5uR {
-              border-color: var(--header-primary);
-          }
-          .barFill-23-gu- {
-              background: var(--text-link);
-          }
-          .focused-3afm-j {
-              background-color: var(--background-secondary) !important;
-              color: var(--text-link) !important;
-          }
-          .colorDefault-2K3EoJ .checkbox-3s5GYZ, .colorDefault-2K3EoJ .radioSelection-1HmrQS {
-              color: var(--text-link);
-          }
-          .colorDefault-2K3EoJ .checkbox-3s5GYZ {
-              color: var(--text-link);
-          }
-          .colorDefault-2K3EoJ .check-1JyqgN {
-              color: var(--background-primary);
-          }
-          .colorDefault-2K3EoJ.focused-3afm-j .checkbox-3s5GYZ {
-              color: var(--background-primary) !important;
-          }
-          .colorDefault-2K3EoJ.focused-3afm-j .check-1JyqgN {
-              color: var(--text-link);
-          }
-          .wrapper-1BJsBx.selected-bZ3Lue .childWrapper-anI2G9, .wrapper-1BJsBx:hover .childWrapper-anI2G9 {
-              color: var(--background-primary);
-              background-color: var(--header-secondary);
-          }
-          .panels-j1Uci_ {
-              background-color: var(--background-primary);
-          }
-          .navButton-2gQCx- {
-              color: var(--interactive-normal);
-          }
-          .navButtonActive-1MkytQ {
-              color: var(--header-primary);
-          }
-          .input-3Xdcic {
-              color: var(--header-primary);
-          }
-          .clickable-2ap7je .header-2o-2hj {
-              background-color: var(--background-primary);
-          }
-          .peopleColumn-29fq28 {
-              background-color: var(--background-tertiary);
-          }
-          .theme-light .outer-1AjyKL.active-1xchHY, .theme-light .outer-1AjyKL.interactive-3B9GmY:hover {
-              background-color: var(--background-primary);
-          }
-
-          .theme-light .popout-38lTFE {
-              background-color: var(--background-primary);
-          }
-
-          .theme-light .scrollerThemed-2oenus.themedWithTrack-q8E3vB>.scroller-2FKFPG::-webkit-scrollbar-track-piece {
-              background-color: var(--background-primary);
-              border: 4px solid var(--background-secondary);
-          }
-
-          .theme-light .scrollerThemed-2oenus.themedWithTrack-q8E3vB>.scroller-2FKFPG::-webkit-scrollbar-thumb {
-              background-color: var(--background-secondary);
-              border-color: var(--background-secondary);
-          }
-          .theme-light .header-sJd8D7 {
-            color: var(--text-normal)
-          }
-        '';
-    };
   };
 }
+
diff --git a/modules/home-manager/firefox/default.nix b/modules/home-manager/firefox/default.nix
index 89815a4..c4c2567 100644
--- a/modules/home-manager/firefox/default.nix
+++ b/modules/home-manager/firefox/default.nix
@@ -1,8 +1,8 @@
 { lib, pkgs, config, ... }:
-let cfg = config.firefox.apps;
+let cfg = config.programs.firefox.apps;
 in
 {
-  options.firefox.apps = lib.mkOption {
+  options.programs.firefox.apps = lib.mkOption {
     type = lib.types.attrsOf
       (lib.types.submodule ({ name, ... }: {
         options = {
diff --git a/modules/home-manager/fonts.nix b/modules/home-manager/fonts.nix
deleted file mode 100644
index 19a0fd4..0000000
--- a/modules/home-manager/fonts.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-# Taken from [here](https://github.com/Misterio77/nix-config/blob/main/modules/home-manager/fonts.nix)
-{ lib, config, ... }:
-
-let
-  mkFontOption = kind: {
-    family = lib.mkOption {
-      type = lib.types.str;
-      default = null;
-      description = "Family name for ${kind} font profile";
-      example = "Fira Code";
-    };
-
-    package = lib.mkOption {
-      type = lib.types.package;
-      default = null;
-      description = "Package for ${kind} font profile";
-      example = "pkgs.fira-code";
-    };
-  };
-
-  cfg = config.fontProfiles;
-in {
-  options.fontProfiles = {
-    enable = lib.mkEnableOption "Whether to enable font profiles";
-    monospace = mkFontOption "monospace";
-    regular = mkFontOption "regular";
-  };
-}
diff --git a/modules/home-manager/manage-fonts.nix b/modules/home-manager/manage-fonts.nix
deleted file mode 100644
index b95f05f..0000000
--- a/modules/home-manager/manage-fonts.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# Actually installs the fonts and whatnot.
-# In a different file so the main module 
-# can also be included in my nixos config.
-{ lib, config, ... }:
-let   cfg = config.fontProfiles;
-  in
-{
-  config = lib.mkIf cfg.enable {
-    fonts.fontconfig.enable = true;
-    home.packages = [ cfg.monospace.package cfg.regular.package ];
-  };
-}
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
index 7ef6c88..238f0cd 100644
--- a/modules/nixos/default.nix
+++ b/modules/nixos/default.nix
@@ -2,5 +2,4 @@
 
 {
   # example = import ./example.nix;
-  grub-theming = import ./grub-theming.nix;
 }
diff --git a/modules/nixos/grub-theming.nix b/modules/nixos/grub-theming.nix
deleted file mode 100644
index 6a434ea..0000000
--- a/modules/nixos/grub-theming.nix
+++ /dev/null
@@ -1,143 +0,0 @@
-{ pkgs, config, lib, ... }:
-
-with config.scheme.withHashtag;
-
-let
-  fontProfiles = {
-    enable = true;
-
-    monospace = {
-      family = "FiraCode Nerd Font";
-      package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; };
-    };
-
-    regular = {
-      family = "Fira Sans";
-      package = pkgs.fira;
-    };
-  };
-
-  # See [this file](https://github.com/danth/stylix/blob/master/stylix/pixel.nix)
-  # Generate a PNG image containing a named color
-  pixel = color:
-    pkgs.runCommand "${color}-pixel.png"
-      {
-        color = config.scheme.withHashtag.${color};
-      } "${pkgs.imagemagick}/bin/convert xc:$color png32:$out";
-
-  # Grub requires fonts to be converted to "PFF2 format"
-  # This function takes a font { name, package } and produces a .pf2 file
-  mkGrubFont = font:
-    pkgs.runCommand "${font.package.name}.pf2"
-      {
-        FONTCONFIG_FILE =
-          pkgs.makeFontsConf { fontDirectories = [ font.package ]; };
-      } ''
-      # Use fontconfig to select the correct .ttf or .otf file based on name
-      font=$(
-        ${pkgs.fontconfig}/bin/fc-match -v "${font.family}" \
-        | grep "file:" | cut -d '"' -f 2
-      )
-
-      # Convert to .pf2
-      ${pkgs.grub2}/bin/grub-mkfont $font --output $out --size 17
-    '';
-
-in
-{
-  options.boot.loader.grub.base16 = {
-    enable = lib.mkOption {
-      description = "Whether to generate base16 grub theme";
-      type = lib.types.bool;
-      default = false;
-    };
-
-    useImage = lib.mkOption {
-      description = "Whether to use your wallpaper image as the GRUB background.";
-      type = lib.types.bool;
-      default = false;
-    };
-  };
-
-  config.boot.loader.grub = lib.mkIf config.boot.loader.grub.base16.enable {
-    backgroundColor = base00;
-
-    # Need to override the NixOS splash, this will match the background
-    splashImage = pixel "base00";
-
-    # This font will be used for the GRUB terminal
-    font = toString (mkGrubFont fontProfiles.monospace);
-
-    # TODO: Include OS icons
-    theme =
-      let font = fontProfiles.regular;
-      in
-      pkgs.runCommand "stylix-grub"
-        {
-          themeTxt = ''
-            desktop-image: "background.png"
-            desktop-image-scale-method: "crop"
-            desktop-color: "${base00}"
-
-            title-text: ""
-
-            terminal-left: "10%"
-            terminal-top: "20%"
-            terminal-width: "80%"
-            terminal-height: "60%"
-
-            + progress_bar {
-              left = 25%
-              top = 80%+20  # 20 pixels below boot menu
-              width = 50%
-              height = 30
-
-              id = "__timeout__"
-              show_text = true
-              font = "${font.family}"
-              text = "@TIMEOUT_NOTIFICATION_MIDDLE@"
-
-              border_color = "${base00}"
-              bg_color = "${base00}"
-              fg_color = "${base0B}"
-              text_color = "${base05}"
-            }
-
-            + boot_menu {
-              left = 25%
-              top = 20%
-              width = 50%
-              height = 60%
-              menu_pixmap_style = "background_*.png"
-
-              item_height = 40
-              item_icon_space = 8
-              item_spacing = 0
-              item_padding = 0
-              item_font = "${font.family}"
-              item_color = "${base05}"
-
-              selected_item_color = "${base01}"
-              selected_item_pixmap_style = "selection_*.png"
-            }
-          '';
-          passAsFile = [ "themeTxt" ];
-        } ''
-        mkdir $out
-        cp $themeTxtPath $out/theme.txt
-
-        ${if config.boot.loader.grub.base16.useImage
-        # Make sure the background image is .png by asking to convert it
-        then
-          # TODO: this doesn't work because I have no wallpaper module
-          "${pkgs.imagemagick}/bin/convert ${config.stylix.image} png32:$out/background.png"
-        else
-          "cp ${pixel "base00"} $out/background.png"}
-
-        cp ${pixel "base01"} $out/background_c.png
-        cp ${pixel "base0B"} $out/selection_c.png
-
-        cp ${mkGrubFont font} $out/sans_serif.pf2
-      '';
-  };
-}