{ pkgs, config, inputs, ... }: {
  programs.zsh.enable = true;
  users.users.coded.shell = pkgs.zsh;

  environment.systemPackages = with pkgs; [
    bmon
    wget
    ripgrep
  ];

  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";
        print3d = "sudo /run/current-system/sw/bin/pronsole.py";
        nh = "wget -O ~/Documents/hashCheck $1 | nix hash file ~/Documents/hashCheck";
        edit = "nvim";
        neovim = "nvim";
        v = "nvim";
      };

      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"
        ];
      };
    };

    # Nix-index
    nix-index.enable = true;

    # thefuck
    thefuck = {
      enable = true;
      enableInstantMode = true;
    };
  };

  environment.pathsToLink =
    [ "/share/zsh" ]; # needed for completing system packages
}
