initial commit

Change-Id: Icdf87c6c68d88c917468ad949f90af5bcb690831
diff --git a/modules/shell.nix b/modules/shell.nix
new file mode 100644
index 0000000..6d66e7b
--- /dev/null
+++ b/modules/shell.nix
@@ -0,0 +1,96 @@
+{ pkgs, config, inputs, ... }: {
+  programs.zsh.enable = true;
+  users.users.coded.shell = pkgs.zsh;
+
+  home-manager.users.coded.programs = {
+    # ZSH
+    zsh = {
+      enable = true;
+      enableAutosuggestions = true;
+      enableCompletion = true;
+      autocd = true;
+      defaultKeymap = "emacs";
+
+      shellAliases = {
+        rebuild = "sudo nixos-rebuild switch --flake /home/coded/nixConfig/";
+        "gr!" = "git review";
+        clr = "clear";
+        pnpx = "pnpm dlx";
+      };
+
+      dirHashes = { code = "$HOME/Documents/programming"; };
+
+      history = { extended = true; };
+      historySubstringSearch.enable = true;
+
+      oh-my-zsh = {
+        enable = true;
+        plugins = [ "git" ];
+      };
+    };
+
+    # Starship
+    starship = {
+      enable = true;
+      settings = { format = "$all"; };
+    };
+    
+    # Alacritty
+    alacritty = {
+      enable = true;
+      settings = {
+        window.dimensions = {
+          lines = 40;
+          columns = 150;
+        };
+        import = [
+          "${inputs.alacritty-themes}/themes/Catppuccin-Mocha.yml"
+        ];
+      };
+    };
+
+    # htop
+    # htop = {
+    #   enable = true;
+    #   settings = {
+    #     color_scheme = 6;
+    #     cpu_count_from_one = 0;
+    #     delay = 15;
+    #     fields = with home-manager.config.lib.htop.fields; [
+    #       PID
+    #       USER
+    #       PERCENT_CPU
+    #       PERCENT_MEM
+    #       M_SIZE
+    #       M_RESIDENT
+    #       M_SHARE
+    #       STATE
+    #       TIME
+    #       COMM
+    #     ];
+    #   } // (with home-manager.config.lib.htop; leftMeters [
+    #     (bar "AllCPUs2")
+    #     (bar "Memory")
+    #     (bar "Swap")
+    #     (text "Zram")
+    #   ]) // (with home-manager.config.lib.htop; rightMeters [
+    #     (text "Tasks")
+    #     (text "LoadAverage")
+    #     (text "Uptime")
+    #     (text "Systemd")
+    #   ]);
+    # };
+
+    # Nix-index
+    nix-index.enable = true;
+
+    # thefuck
+    thefuck = {
+      enable = true;
+      enableInstantMode = true;
+    };
+  };
+
+  environment.pathsToLink =
+    [ "/share/zsh" ]; # needed for completing system packages
+}