diff --git a/system/configuration.nix b/system/configuration.nix
index a65cfe5..62c290d 100644
--- a/system/configuration.nix
+++ b/system/configuration.nix
@@ -50,8 +50,8 @@
       xterm.enable = false;
       # xfce.enable = true;
     };
-    # displayManager.startx.enable = true;
-    displayManager.sddm.enable = true;
+    displayManager.startx.enable = true;
+    # displayManager.sddm.enable = true;
   };
 
   services = {
@@ -64,7 +64,7 @@
   };
 
   # And wayland
-  programs.sway = {
+/*  programs.sway = {
     enable = true;
     wrapperFeatures.gtk = true; # so that gtk works properly
     extraPackages = with pkgs; [
@@ -74,10 +74,10 @@
       mako # notification daemon
       alacritty # Alacritty is the default terminal in the config
     ];
-  };
+  };*/
 
   programs.qt5ct.enable = true;
-  programs.waybar.enable = false; # true;
+#  programs.waybar.enable = false; # true;
 
   # Get screensharing to work
   xdg = {
diff --git a/users/minion/home.nix b/users/minion/home.nix
index 0051cb0..6b78b00 100644
--- a/users/minion/home.nix
+++ b/users/minion/home.nix
@@ -16,8 +16,6 @@
   home.username = username;
   home.homeDirectory = homedir;
 
-  programs.vscode.enable = true;
-  programs.vscode.package = pkgs.vscode-fhs;
 
   programs.go.enable = true;
 
@@ -36,91 +34,11 @@
   ];
 
   home.packages = with pkgs; [
-    steam-tui steam-run
-    minecraft
-    git-crypt gnupg pinentry_qt
-    spotify
-    keepassxc
-    grim slurp
-    neovim helix
-    qemu
-    bind
-    file
-    nur.repos.kira-bruneau.rofi-wayland
-    rofimoji
-    anytype-latest
-    htop
-    hue-cli
-    comma
-    zip
-    mindustry-alpha-wayland
-    nodejs-17_x
-    element
-    tdesktop
+
   ];
 
-  programs.zsh = {
-    enable = true;
-    oh-my-zsh = {
-       enable = true;
-      plugins = [ "git" ];
-      theme = "crunch";
-    };
-    history = {
-      size = 10000;
-      path = "${config.xdg.dataHome}/zsh/history";
-      expireDuplicatesFirst = true;
-      extended = true;
-    };
-    initExtra = ''
-      bindkey "\'\'$\{key[Up]}" up-line-or-search
 
-      command_not_found_handler ()
-      {
-      #     echo "Command '$1' not found, searching for it in the Nix store..."
-      #     , $@
-          local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
-          if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
-              "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
-             if [ $? = 126 ]; then
-                  "$@";
-              else
-                  return 127;
-              fi;
-          else
-              echo "$1: command not found" 1>&2;
-              return 127;
-          fi
-      }
-    '';
-    enableSyntaxHighlighting = true;
-    enableAutosuggestions = true;
-    autocd = true;
-    dotDir = ".local/share/zsh";
-  };
 
-  programs.git = {
-    enable = true;
-
-    userName = "Skyler Turner";
-    userEmail = "skyler@clicksminuteper.net";
-
-    signing = {
-      key = "24D31D3B1B986F33";
-      signByDefault = true;
-      gpgPath = "gpg2";
-    };
-
-    lfs.enable = true;
-    delta.enable = true;
-
-    extraConfig = {
-      init.defaultBranch = "development";
-      color.ui = "auto";
-      core.autocrlf = "input";
-      pull.rebase = false;
-    };
-  };
 
   # This value determines the Home Manager release that your
   # configuration is compatible with. This helps avoid breakage
