diff --git a/README.md b/README.md
index 82c64ca..6cdd7f5 100644
--- a/README.md
+++ b/README.md
@@ -28,3 +28,26 @@ Here's some things you might want to check out:
 
 - My [neovim config](./dotfiles/neovim)
 - The [flake](./flake.nix) entrypoint for this repository
+
+### Links to everything used here:
+
+> Well, this does not include links to every plugin I used for every proram here, you can see more details in the respective configurations
+
+- [nixos](http://nixos.org/) - nix based operating system
+- [home-manager](https://github.com/nix-community/home-manager) - manager user configuration using nix
+- [base16-nix](https://github.com/SenchoPens/base16.nix) - base16 module for nix
+    - [Base16 templates](https://github.com/chriskempson/base16-templates-source) - list of base16 template themes
+    - [Catpuccin](https://github.com/catppuccin/catppuccin) - base16 theme I use
+- [Agenix](https://github.com/ryantm/agenix) & [homeage](https://github.com/jordanisaacs/homeage) - secret management
+- [Xmonad](https://xmonad.org/) - window manager
+    - [Polybar](https://github.com/polybar/polybar) - desktop bar
+    - [Rofi](https://github.com/davatorium/rofi) - program launcher
+- [Neovim](https://neovim.io/) - my editor
+  - [Neovide](https://neovide.dev/index.html) - neovide gui client
+  - [Vimclip](https://github.com/hrantzsch/vimclip) - vim anywhere!
+- [Tmux](https://github.com/tmux/tmux/wiki) - terminal multiplexer
+- [Alacritty](https://github.com/alacritty/alacritty) - terminal emulator
+- [Fish](https://fishshell.com/) - user friendly shell
+  - [Starship](https://starship.rs/) - shell prompt
+- [Zathura](https://pwmt.org/projects/zathura/) - pdf viewer
+- [Ranger](https://github.com/ranger/ranger) - file manager
diff --git a/dotfiles/neovim/lua/my/plugins/catppuccin.lua b/dotfiles/neovim/lua/my/plugins/catppuccin.lua
index 8171318..ffec862 100644
--- a/dotfiles/neovim/lua/my/plugins/catppuccin.lua
+++ b/dotfiles/neovim/lua/my/plugins/catppuccin.lua
@@ -5,7 +5,7 @@ local M = {
 
 function M.config()
   local catppuccin = require("catppuccin")
-  vim.g.catppuccin_flavour = os.getenv("CATPPUCCIN_FLAVOUR")
+  vim.g.catppuccin_flavour = os.getenv("CATPPUCCIN_FLAVOUR") or "latte"
 
   catppuccin.setup({ transparent_background = false, integrations = { nvimtree = true } })
 
diff --git a/dotfiles/neovim/lua/my/plugins/init.lua b/dotfiles/neovim/lua/my/plugins/init.lua
index 96a363a..8305832 100644
--- a/dotfiles/neovim/lua/my/plugins/init.lua
+++ b/dotfiles/neovim/lua/my/plugins/init.lua
@@ -12,6 +12,12 @@ return {
     cond = env.vscode.not_active(),
   },
 
+  {
+    "Fymyte/rasi.vim",
+    ft = "rasi",
+    cond = env.vscode.not_active(),
+  },
+
   {
     "teal-language/vim-teal",
     ft = "teal",
diff --git a/flake.nix b/flake.nix
index aa74a8a..66f9093 100644
--- a/flake.nix
+++ b/flake.nix
@@ -85,6 +85,7 @@
               home-manager.extraSpecialArgs = specialArgs;
               home-manager.useUserPackages = true;
             }
+
             ./hosts/nixos/tethys
           ];
         };
@@ -102,4 +103,16 @@
         };
       };
     };
+
+  # {{{ Caching and whatnot
+  nixConfig = {
+    extra-substituters = [
+      "https://nix-community.cachix.org" # I think I need this for neovim-nightly?
+    ];
+
+    extra-trusted-public-keys = [
+      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
+    ];
+  };
+  # }}}
 }
diff --git a/home/adrielus/features/cli/default.nix b/home/adrielus/features/cli/default.nix
index 9a6361e..16bde62 100644
--- a/home/adrielus/features/cli/default.nix
+++ b/home/adrielus/features/cli/default.nix
@@ -23,5 +23,6 @@
     neofetch # Display system information
     unzip # For working with .zip files
     unrar # For extracting shit from rars
+    sloc # Useless but fun line of code counter
   ];
 }
diff --git a/home/adrielus/features/desktop/common/alacritty.nix b/home/adrielus/features/desktop/common/alacritty.nix
new file mode 100644
index 0000000..45b0f85
--- /dev/null
+++ b/home/adrielus/features/desktop/common/alacritty.nix
@@ -0,0 +1,28 @@
+{ config, pkgs, ... }:
+let base16-alacritty = pkgs.fetchFromGitHub {
+  owner = "aarowill";
+  repo = "base16-alacritty";
+  sha256 = "0zibl9kzazckkyzb6j0iabrl82r1kgwg8ndqpy7dz0kwmj42wfx0";
+  rev = "914727e48ebf3eab1574e23ca0db0ecd0e5fe9d0";
+};
+in
+{
+  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 = "xterm-256color"; };
+      working_directory = "${config.home.homeDirectory}/Projects/";
+    };
+  };
+}
diff --git a/home/adrielus/features/desktop/common/firefox.nix b/home/adrielus/features/desktop/common/firefox.nix
new file mode 100644
index 0000000..1148eef
--- /dev/null
+++ b/home/adrielus/features/desktop/common/firefox.nix
@@ -0,0 +1,107 @@
+{ pkgs, ... }:
+let
+  mkBasicSearchEngine = { aliases, url, param }: {
+    urls = [{
+      template = url;
+      params = [
+        { name = param; value = "{searchTerms}"; }
+      ];
+    }];
+
+    definedAliases = aliases;
+  };
+
+  mkNixPackagesEngine = { aliases, type }:
+    let basicEngine = mkBasicSearchEngine
+      {
+        aliases = aliases;
+        url = "https://search.nixos.org/${type}";
+        param = "query";
+      };
+    in
+    basicEngine // {
+      icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+    };
+in
+{
+  programs.firefox = {
+    enable = true;
+    profiles.adrielus = {
+      # Unique user id
+      id = 0;
+
+      # Make this the default user
+      isDefault = true;
+
+      # Forcefully replace the search configuration 
+      search.force = true;
+
+      # Set default search engine
+      search.default = "Google";
+
+      # Specify custom search engines
+      search.engines = {
+        "Nix Packages" = mkNixPackagesEngine {
+          aliases = [ "@np" "@nix-packages" ];
+          type = "packages";
+        };
+
+        "Nix options" = mkNixPackagesEngine {
+          aliases = [ "@no" "@nix-options" ];
+          type = "options";
+        };
+
+        # Purescript packages
+        "Pursuit" = mkBasicSearchEngine {
+          url = "https://pursuit.purescript.org/search";
+          param = "s";
+          aliases = [ "@ps" "@pursuit" ];
+        };
+
+        "Wikipedia" = mkBasicSearchEngine {
+          url = "https://en.wikipedia.org/wiki/Special:Search";
+          param = "search";
+          aliases = [ "@wk" "@wikipedia" ];
+        };
+
+        "Github" = mkBasicSearchEngine {
+          url = "https://github.com/search";
+          param = "q";
+          aliases = [ "@gh" "@github" ];
+        };
+
+        "Youtube" = mkBasicSearchEngine {
+          url = "https://www.youtube.com/results";
+          param = "search_query";
+          aliases = [ "@yt" "@youtube" ];
+        };
+
+        "Noita wiki" = mkBasicSearchEngine {
+          url = "https://noita.wiki.gg/index.php";
+          param = "search";
+          aliases = [ "@noita" ];
+        };
+
+        "Rain world wiki" = mkBasicSearchEngine {
+          url = "https://rainworld.miraheze.org/w/index.php";
+          param = "search";
+          aliases = [ "@rw" "@rain-world" ];
+        };
+
+        "Factorio wiki" = mkBasicSearchEngine {
+          url = "https://wiki.factorio.com/index.php";
+          param = "search";
+          aliases = [ "@fw" "@factorio-wiki" ];
+        };
+
+        "Factorio mod portal" = mkBasicSearchEngine {
+          url = "https://mods.factorio.com/";
+          param = "query";
+          aliases = [ "@fm" "@factorio-mods" ];
+        };
+
+        "Google".metaData.alias = "@g";
+      };
+    };
+  };
+}
diff --git a/home/adrielus/features/desktop/common/polybar/default.nix b/home/adrielus/features/desktop/common/polybar/default.nix
index 3794606..3b1e9c9 100644
--- a/home/adrielus/features/desktop/common/polybar/default.nix
+++ b/home/adrielus/features/desktop/common/polybar/default.nix
@@ -17,15 +17,15 @@ in
     enable = true;
     extraConfig = ''
       ; Generated theme
-      include-file = ${config.scheme base16-polybar}
+      ${builtins.readFile (config.scheme base16-polybar)}
 
       ; Consistent fonts
       [fonts]
-      regular = ${config.fontProfiles.regular.family}
-      monospace = ${config.fontProfiles.monospace.family}
+      regular = "${config.fontProfiles.regular.family}"
+      monospace = "${config.fontProfiles.monospace.family}"
 
       ; Actual config
-      include-file = ${./polybar.ini}
+      ${builtins.readFile ./polybar.ini}
     '';
   };
 
diff --git a/home/adrielus/features/desktop/common/polybar/polybar.ini b/home/adrielus/features/desktop/common/polybar/polybar.ini
index 1fe00fe..6c19ff6 100644
--- a/home/adrielus/features/desktop/common/polybar/polybar.ini
+++ b/home/adrielus/features/desktop/common/polybar/polybar.ini
@@ -73,13 +73,13 @@ icon-default = 
 format = <label-state>
 
 label-active = %icon%
-label-active-background = ${color.base05} 
-label-active-foreground = ${color.base00}
+label-active-background = ${colors.base05} 
+label-active-foreground = ${colors.base00}
 label-active-padding = 2
 
 label-urgent = %icon%
-label-urgent-background = ${color.base09}
-label-urgent-foreground = ${color.base00}
+label-urgent-background = ${colors.base09}
+label-urgent-foreground = ${colors.base00}
 label-urgent-padding = 2
 
 label-occupied = %icon%
@@ -88,7 +88,7 @@ label-occupied-padding = 2
 label-empty = 
 
 [bar/main]
-font-0 = ${fonts.monospace}:style=Regular
+font-0 = ${fonts.monospace}
 
 modules-left =  date battery
 modules-center =  ewmh 
@@ -102,9 +102,9 @@ module-margin = 2
 height=4%
 
 border-top-size = 1
-border-top-color = ${color.base05}
+border-top-color= ${colors.base05}
 
-background = ${color.base00}
-foreground = ${color.base05}
+background = ${colors.base00}
+foreground = ${colors.base05}
 
 bottom = true
diff --git a/home/adrielus/features/desktop/common/rofi/config.rasi b/home/adrielus/features/desktop/common/rofi/config.rasi
index 7291cb4..71998d1 100644
--- a/home/adrielus/features/desktop/common/rofi/config.rasi
+++ b/home/adrielus/features/desktop/common/rofi/config.rasi
@@ -12,84 +12,10 @@ configuration {
   display-run: "   Run ";
   display-window: " 﩯  Window";
   display-Network: " 󰤨  Network";
-  sidebar-mode: true;
-}
-
-listview {
-  columns: 1;
-}
-
-* {
-  width: 600;
-}
-
-element-text, element-icon , mode-switcher {
-  background-color: inherit;
-  text-color:       inherit;
 }
 
 window {
   border: 3px;
-
   height: 50%;
   width: 50%;
 }
-
-inputbar {
-  children: [prompt,entry];
-  border-radius: 5px;
-  padding: 2px;
-}
-
-prompt {
-  padding: 6px;
-  border-radius: 3px;
-  margin: 20px 0px 0px 20px;
-}
-
-textbox-prompt-colon {
-  expand: false;
-  str: ":";
-}
-
-entry {
-  padding: 6px;
-  margin: 20px 0px 0px 10px;
-}
-
-listview {
-  border: 0px 0px 0px;
-  padding: 6px 0px 0px;
-  margin: 10px 0px 0px 20px;
-  columns: 2;
-  lines: 5;
-}
-
-element {
-  padding: 5px;
-}
-
-element-icon {
-  size: 25px;
-}
-
-mode-switcher {
-  spacing: 0;
-}
-
-button {
-  padding: 10px;
-  vertical-align: 0.5; 
-  horizontal-align: 0.5;
-}
-
-message {
-  margin: 2px;
-  padding: 2px;
-  border-radius: 5px;
-}
-
-textbox {
-  padding: 6px;
-  margin: 20px 0px 0px 20px;
-}
diff --git a/home/adrielus/features/desktop/common/rofi/default.nix b/home/adrielus/features/desktop/common/rofi/default.nix
index 7c35d20..e23759a 100644
--- a/home/adrielus/features/desktop/common/rofi/default.nix
+++ b/home/adrielus/features/desktop/common/rofi/default.nix
@@ -16,7 +16,7 @@ in
 
     // Inject font
     configuration {
-      font = ${config.fontProfiles.monospace.family};
+      font: "${config.fontProfiles.monospace.family}";
     }
 
     // Theme
diff --git a/home/adrielus/features/desktop/common/wakatime/wakatime_config.age b/home/adrielus/features/desktop/common/wakatime/wakatime_config.age
index 43f5729..573c5a0 100644
Binary files a/home/adrielus/features/desktop/common/wakatime/wakatime_config.age and b/home/adrielus/features/desktop/common/wakatime/wakatime_config.age differ
diff --git a/home/adrielus/features/desktop/common/wallpapers/wall.png b/home/adrielus/features/desktop/common/wallpapers/wall.png
new file mode 100644
index 0000000..394fc9c
Binary files /dev/null and b/home/adrielus/features/desktop/common/wallpapers/wall.png differ
diff --git a/home/adrielus/features/desktop/common/xresources.nix b/home/adrielus/features/desktop/common/xresources.nix
new file mode 100644
index 0000000..cda282f
--- /dev/null
+++ b/home/adrielus/features/desktop/common/xresources.nix
@@ -0,0 +1,11 @@
+{ 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
new file mode 100644
index 0000000..6311f54
--- /dev/null
+++ b/home/adrielus/features/desktop/common/xwallpaper.nix
@@ -0,0 +1,3 @@
+{
+  home.file.".background-image".source = ./wallpapers/wall.png;
+}
diff --git a/home/adrielus/features/desktop/xmonad.nix b/home/adrielus/features/desktop/xmonad.nix
index a8b76fb..4fc22fd 100644
--- a/home/adrielus/features/desktop/xmonad.nix
+++ b/home/adrielus/features/desktop/xmonad.nix
@@ -1,3 +1,17 @@
-{
-  imports = [ ./common/rofi ./common/polybar ./common/fonts.nix ];
+{ pkgs, ... }: {
+  imports = [
+    ./common/rofi
+    ./common/polybar
+    ./common/fonts.nix
+    ./common/xresources.nix
+    ./common/xwallpaper.nix
+    ./common/alacritty.nix
+  ];
+
+  # Other packages I want to install:
+  home.packages = with pkgs; [
+    vimclip # Vim anywhere!
+    xclip # Clipboard stuff
+    spectacle # Take screenshots
+  ];
 }
diff --git a/home/adrielus/features/neovim/default.nix b/home/adrielus/features/neovim/default.nix
index 405b907..b1d20e3 100644
--- a/home/adrielus/features/neovim/default.nix
+++ b/home/adrielus/features/neovim/default.nix
@@ -43,8 +43,8 @@ let
 
   extraRuntime = [
     (if devMode
-      then symlink "${paths.dotfiles}/vscode-snippets"
-      else ../../../../dotfiles/vscode-snippets)
+    then symlink "${paths.dotfiles}/vscode-snippets"
+    else ../../../../dotfiles/vscode-snippets)
   ];
 
   # Wraps a neovim client, providing the dependencies
@@ -57,7 +57,7 @@ let
   # - NVIM_EXTRA_RUNTIME provides extra directories to add to the runtimepath. 
   #   I cannot just install those dirs using the builtin package support because 
   #   my package manager (lazy.nvim) disables those.
-  wrapClient = { base, name }:
+  wrapClient = { base, name, extraArgs ? "" }:
     pkgs.symlinkJoin {
       inherit (base) name meta;
       paths = [ base ];
@@ -66,12 +66,17 @@ let
         wrapProgram $out/bin/${name} \
           --prefix PATH : ${lib.makeBinPath extraPackages} \
           --set INSIDE_NEOVIDE ${if name == "neovide" then "1" else "0"} \
-          --set NVIM_EXTRA_RUNTIME ${lib.strings.concatStringsSep "," extraRuntime}
+          --set NVIM_EXTRA_RUNTIME ${lib.strings.concatStringsSep "," extraRuntime} \
+          ${extraArgs}
       '';
     };
 
   neovim = wrapClient { base = pkgs.neovim-nightly; name = "nvim"; };
-  neovide = wrapClient { base = pkgs.neovide; name = "neovide"; };
+  neovide = wrapClient {
+    base = pkgs.neovide;
+    name = "neovide";
+    extraArgs = "--set NEOVIDE_MULTIGRID true";
+  };
 in
 {
   # Do not manage neovim via nix
@@ -82,6 +87,8 @@ in
       symlink "${paths.dotfiles}/neovim" else
       ../../../../dotfiles/neovim;
 
+  home.sessionVariables.EDITOR = "nvim";
+
   home.packages = [
     neovim
     neovide
diff --git a/home/adrielus/tethys.nix b/home/adrielus/tethys.nix
index 84f2fa6..1297778 100644
--- a/home/adrielus/tethys.nix
+++ b/home/adrielus/tethys.nix
@@ -4,5 +4,19 @@
     ./features/desktop/xmonad.nix
     ./features/desktop/common/discord.nix
     ./features/desktop/common/zathura.nix
+    ./features/desktop/common/firefox.nix
+  ];
+
+  home.packages = with pkgs; [
+    signal-desktop # Signal client
+    zoom-us # Zoom client 🤮
+    obsidian # Notes
+    peek # GIF recorder
+    vlc # Video player
+    gimp # Image editing
+    libreoffice # Free office suite
+
+    # obs-studio # video recorder
+    # lmms # music software
   ];
 }
diff --git a/hosts/nixos/common/global/default.nix b/hosts/nixos/common/global/default.nix
index 97218eb..1261f28 100644
--- a/hosts/nixos/common/global/default.nix
+++ b/hosts/nixos/common/global/default.nix
@@ -11,6 +11,10 @@
     ./wireless
   ];
 
+  age.identityPaths = [
+    "/etc/ssh/ssh_host_ed25519_key"
+  ];
+
   nixpkgs = {
     # Add all overlays defined in the overlays directory
     overlays = builtins.attrValues outputs.overlays ++ [
diff --git a/hosts/nixos/common/global/nix.nix b/hosts/nixos/common/global/nix.nix
index 1470a33..fea353c 100644
--- a/hosts/nixos/common/global/nix.nix
+++ b/hosts/nixos/common/global/nix.nix
@@ -40,20 +40,6 @@
       # TODO: what is a trusted user?
       trusted-users = [ "root" "@wheel" ];
 
-      # {{{ Caching and whatnot
-      substituters = [
-        "https://cache.nixos.org" # Default nixos cache
-        "https://nix-community.cachix.org" # I think I need this for neovim-nightly?
-        "https://cm-idris2-pkgs.cachix.org" # Idris packages
-        "https://danth.cachix.org" # stylix
-      ];
-
-      trusted-public-keys = [
-        "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
-        "cm-idris2-pkgs.cachix.org-1:YB2oJSEsD5oMJjAESxolC2GQtE6B5I6jkWhte2gtXjk="
-        "danth.cachix.org-1:wpodfSL7suXRc/rJDZZUptMa1t4MJ795hemRN0q84vI="
-      ];
-      # }}}
     };
   };
 }
diff --git a/hosts/nixos/common/global/wireless/default.nix b/hosts/nixos/common/global/wireless/default.nix
index c45bf1c..57c4d75 100644
--- a/hosts/nixos/common/global/wireless/default.nix
+++ b/hosts/nixos/common/global/wireless/default.nix
@@ -19,19 +19,11 @@
       enable = true;
       group = "network";
     };
-
-    # TODO: look into what this does
-    extraConfig = ''
-      update_config=1
-    '';
   };
 
   # Ensure group exists
   users.groups.network = { };
 
-  # Convenient alias for connecting to wifi
-  environment.shellAliases.wifi = "sudo nmcli con up id";
-
   # Persist imperative config
   # environment.persistence = {
   #   "/persist".files = [
diff --git a/hosts/nixos/common/global/wireless/wifi_passwords.age b/hosts/nixos/common/global/wireless/wifi_passwords.age
index 182addc..62d7912 100644
--- a/hosts/nixos/common/global/wireless/wifi_passwords.age
+++ b/hosts/nixos/common/global/wireless/wifi_passwords.age
@@ -1,7 +1,10 @@
 age-encryption.org/v1
--> ssh-ed25519 UUF9JQ Qc1AgNo+N/kjGhMVHa/QDPt5nRCtuC8BvNdxuwHHKRA
-ZnOW8dIH2Sd5WDlvVA27hpp5AVHieJXIpwCmtg+dcp0
--> rD3(ZZw-grease ZvlDZ7| G|:Xj NsbyfDh L\'
-hZeXb1QaqOPfJKTKYdB60pMyHt6G42sIEmfzNqRI/w
---- RFPqwBq0YPAoxa/g0gEmJmWTiYH6c77ZYR0snUIx0vE
-�����S�_!���s�_i?�>���ry�V�|��^��:��>���LˉQ�~����3W�O9e�(��<�y�C J��Rqr�
\ No newline at end of file
+-> ssh-ed25519 UUF9JQ q9tidRTxf+4VeDopyrO7y970Qm94iwUPsQTVK+/YGjQ
+YvjmIkVFwkIUk7OhQ1MglvcNGgXna2SgRSfMJtfOAkE
+-> ssh-ed25519 qgVaDQ REcJWqJalQylWOSOVJT1jAJtQp6qnbztcyxo/2BDdE8
+nnbnzYKKE99thYzXzODD/rSQggJgOV5Cl8ZniDfCsGY
+-> L>-grease #efvc '0l?X`-h
+F5xodFT3Tp+VpLJvE2R5PVkb43tm4VfbvTKLVIW0AuZ/wZWIedDinZx9i+gfWUsk
+5U8rU6Ki3DdbOICZ
+--- Cwoa81XsipVdO0hj9QeV60dYjHwEoS9FoDRSQ8/56oQ
+����f�ցLoYs5i�L;���Ɣ=��^.��������
�~��u�9�Z���u�</�U��5��X~�D��\moG
\ No newline at end of file
diff --git a/hosts/nixos/common/optional/xmonad/Main.hs b/hosts/nixos/common/optional/xmonad/Main.hs
index 0bcea73..8e07d2d 100644
--- a/hosts/nixos/common/optional/xmonad/Main.hs
+++ b/hosts/nixos/common/optional/xmonad/Main.hs
@@ -44,7 +44,7 @@ main =
         ("M-w", spawn "rofi -show window"),
         ("M-g", spawn myBrowser),
         ("M-d", spawn "Discord"),
-        ("M-v", spawn "alacritty -e vimclip"),
+        ("M-v", spawn "alacritty -e 'vimclip'"),
         ("M-s", spawn "spectacle -rcb"),
         ("M-S-s", spawn "spectacle -mcb"),
         ("M-C-s", spawn "spectacle -ucb"),
@@ -61,11 +61,11 @@ main =
     layouts = tall ||| Full
     myLayoutHook = spacingHook layouts
 
-    startupApps =
-      [ (0, "alacritty"),
-        (1, "google-chrome-stable"),
-        (2, "Discord")
-      ]
+    startupApps = []
+    -- [ (0, "alacritty"),
+    --   (1, "google-chrome-stable"),
+    --   (2, "Discord")
+    -- ]
 
     startup :: X ()
     startup = do
diff --git a/hosts/nixos/common/optional/xmonad/default.nix b/hosts/nixos/common/optional/xmonad/default.nix
index ba79ee9..9ec4ce7 100644
--- a/hosts/nixos/common/optional/xmonad/default.nix
+++ b/hosts/nixos/common/optional/xmonad/default.nix
@@ -1,14 +1,4 @@
 { pkgs, ... }:
-let
-  catpuccin-sddm = pkgs.fetchFromGitHub {
-    owner = "catppuccin";
-    repo = "sddm";
-    sha256 = "1lg10dyxgz080qfcp6k3zk6374jlj067s6p5fgx5r135ivy8mrki";
-    rev = "bde6932e1ae0f8fdda76eff5c81ea8d3b7d653c0";
-  };
-
-  sddm-theme = "${catpuccin-sddm}/src/caputccin-latte";
-in
 {
   services.xserver = {
     enable = true;
@@ -20,18 +10,17 @@ in
       config = ./Main.hs;
     };
 
+
+    # Proper wallpaper zooming
+    desktopManager.wallpaper.mode = "fill";
+
     displayManager = {
       # make xmonad session the default
       defaultSession = "none+xmonad";
 
-      # enable sddm
-      # sddm = {
-      #   enable = true;
-      #   theme = sddm-theme;
-      # };
-
       # enable startx
-      startx.enable = true;
+      # startx.enable = true;
+      sddm.enable = true;
 
       # autoLogin = {
       #   enable = true;
diff --git a/hosts/nixos/common/users/adrielus.nix b/hosts/nixos/common/users/adrielus.nix
index 7d56c32..5312edb 100644
--- a/hosts/nixos/common/users/adrielus.nix
+++ b/hosts/nixos/common/users/adrielus.nix
@@ -1,4 +1,4 @@
-{ pkgs, config, ... }:
+{ pkgs, outputs, config, ... }:
 let
   # Record containing all the hosts
   hosts = outputs.nixosConfigurations;
@@ -10,12 +10,23 @@ in
   # Password file stored through agenix
   age.secrets.adrielusPassword.file = ./adrielus_password.age;
 
+  # Temporary stuff until I package my keyboard script
+  users.groups.uinput = { };
+  services.udev.extraRules =
+    ''
+      # Access to /dev/uinput
+      KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
+    '';
+
   users = {
     # Configure users through nix only
     mutableUsers = false;
 
     # Create an user named adrielus
     users.adrielus = {
+      # Make fish the default shell
+      shell = pkgs.fish;
+
       # File containing my password, managed by agenix
       passwordFile = config.age.secrets.adrielusPassword.path;
 
@@ -28,21 +39,22 @@ in
         "docker" # Allows me to use docker (?)
         "audio" # Allows me to use audio devices
         "video" # Allows me to use a webcam
+        "uinput" # I think this let's me write to virtual devices
+        "input" # Does this let me use evdev (?)
 
         # TODO: find out why I added these here a long time ago
         "sound"
-        "input"
         "tty"
       ];
 
       # Adds me to some default groups, and creates the home dir 
       isNormalUser = true;
-    };
 
-    openssh.authorizedKeys.keyFiles =
-      builtins.attrValues # attrsetof path -> path[]
-        (builtins.mapAttrs # ... -> attrsetof host -> attrsetof path
-          (name: _: idKey name) # string -> host -> path
-          hosts);
+      openssh.authorizedKeys.keyFiles =
+        builtins.attrValues # attrsetof path -> path[]
+          (builtins.mapAttrs # ... -> attrsetof host -> attrsetof path
+            (name: _: idKey name) # string -> host -> path
+            hosts);
+    };
   };
 }
diff --git a/hosts/nixos/common/users/adrielus_password.age b/hosts/nixos/common/users/adrielus_password.age
index ff33936..ad65376 100644
--- a/hosts/nixos/common/users/adrielus_password.age
+++ b/hosts/nixos/common/users/adrielus_password.age
@@ -1,8 +1,12 @@
 age-encryption.org/v1
--> ssh-ed25519 UUF9JQ AWyd+vbllVT7QeD8xfu8D4NhxEA1RxwYCKwxGIrkIEw
-m7/XC6vhyhHW5vY+48bxmBsb6Zfhof+mavhq1fdpd+U
--> E-grease s%$ F5jZ"f E(>8 x|#B"9
-dilxxi2WlTIReh+uvkscDubze9MyfGaW7Tn22L6p8X8YZ40muPOtVaWkgQBv1OLo
-SkccszU/cr1NEJm62YOPZGnmK96MwxA/ZWnlG5Ls/my47MqymDq7/1ySWKU5xA
---- wOqvODKflq/JZT0/Qssb8FEl/IDNou+yKMGPn/nI81Q
-m>W�u!�N�@��ϋyB"�Gɳ�L'A)+)��EzQ�$�"Z;w-
\ No newline at end of file
+-> ssh-ed25519 UUF9JQ BIl9Xb3n31DCiJiEVdgSrS9Q8mV+QKHIz9pbaskbZkY
+umx6izgXtyrI7x15bAB+NtpezVWuI1ohtV3N9g7KSDU
+-> ssh-ed25519 qgVaDQ kYRngT8940XS/6SACGO86KxNlwOLx7iZFewv+6rGRF0
++a5xQXtda8sSBCyKPGNugfozqANpVmCzXowfC6JmleA
+-> UpxQQ-grease $( d6} t4iN^
+ovdi6zgEwERhuIeRtKdKn1FPOXIovnHzueGofkQ5kbIAQRH+RSBv3L5767h+YD5m
+fKThMcdEvfwr92NHHCzPPJmigMbRUtQonDu4TGnB/XrNF8xEYiri+6S41e9CMQcQ
+/F7W
+--- bc2aF9M+2m+ZXrGsObUCYvZEvFhVEZnKTu/T81Lka0s
+�S��b�
+���c�|$�}ӈ���&VĠ�,Rܙ�Ȉ��ޡ�_0Y���1�p�(���z����$`;P#JX��P�0�����!��8mN}B#����|Úo�ns�h
\ No newline at end of file
diff --git a/pkgs/default.nix b/pkgs/default.nix
index b003518..1379724 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -3,4 +3,5 @@
 
 { pkgs ? (import ../nixpkgs.nix) { } }: {
   # example = pkgs.callPackage (import ./example.nix) {};
+  vimclip = pkgs.callPackage (import ./vimclip.nix) {};
 }
diff --git a/pkgs/vimclip.nix b/pkgs/vimclip.nix
new file mode 100644
index 0000000..b070278
--- /dev/null
+++ b/pkgs/vimclip.nix
@@ -0,0 +1,27 @@
+{ pkgs, ... }:
+pkgs.stdenv.mkDerivation rec {
+  name = "vimclip";
+  rev = "7f53433";
+
+  src = pkgs.fetchFromGitHub {
+    inherit rev;
+    owner = "hrantzsch";
+    repo = "vimclip";
+    sha256 = "cl5y7Lli5frwx823hoN17B2aQLNY7+njmKEDdIbhc4Y=";
+  };
+
+  buildInputs = [
+    pkgs.makeWrapper
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./vimclip $out/bin/vimclip
+    chmod +x $out/bin/vimclip
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/vimclip \
+      --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.xsel ]} \
+  '';
+}
diff --git a/secrets.nix b/secrets.nix
index 7265c14..1834749 100644
--- a/secrets.nix
+++ b/secrets.nix
@@ -1,8 +1,12 @@
 let
   adrielus = builtins.readFile ./hosts/nixos/tethys/id_ed25519.pub;
+  tethys = builtins.readFile ./hosts/nixos/tethys/ssh_host_ed25519_key.pub;
 in
 {
-  "./hosts/nixos/common/global/wireless/wifi_passwords.age".publicKeys = [ adrielus ];
-  "./hosts/nixos/common/users/adrielus_password.age".publicKeys = [ adrielus ];
+  # Scoped for entire systems
+  "./hosts/nixos/common/global/wireless/wifi_passwords.age".publicKeys = [ adrielus tethys ];
+  "./hosts/nixos/common/users/adrielus_password.age".publicKeys = [ adrielus tethys ];
+
+  # Scoped for the user
   "./home/adrielus/features/desktop/common/wakatime/wakatime_config.age".publicKeys = [ adrielus ];
 }