{pkgs, ...}: {
  programs.zsh = let 
    auth = import ../common/auth.nix;
    nixcfg = import ../common/nixcfg.nix;
  in {
    enable = true;
    autosuggestion.enable = true;
    syntaxHighlighting.enable = true;
    oh-my-zsh = {
      enable = true;
      theme = "agnoster";
      plugins = ["git"];
    };
    shellAliases = {
      # NixOS aliases
      nixcfg = "${nixcfg.open}";
      nixclean = "${auth.method} nix-store --gc; nix-collect-garbage -d; notify-send 'NixOS store clean finished.'";
      nixpurge = "${auth.method} nix-collect-garbage  --delete-old; notify-send 'NixOS generation removed.'";
      nixoptimize = "${auth.method} nix store optimise; notify-send 'NixOS store optimization finished.'";

      # Shortcut aliases
      neo = "clear && fastfetch";
      pfetch = "fastfetch --config ~/.config/fastfetch/small.jsonc";
      ip = "ip -c";
      ls = "${pkgs.eza}/bin/eza -a --color=always --group-directories-first --icons";
      nls = "/usr/bin/env ls";
      cat = "${pkgs.bat}/bin/bat --paging never";
      ncat = "/usr/bin/env cat";
      copycat = "wl-copy <";
      sunshinehost = "WAYLAND_DISPLAY=wayland-1 DISPLAY=:1 sunshine -0";
      seneca = "ssh jhampton1@matrix.senecapolytechnic.ca";

      # Curl tools
      myip = "curl ifconfig.co";

      # Download from sources
      ytdl = "yt-dlp --embed-thumbnail --embed-metadata --output \"%(title)s.%(ext)s\"";
      ytmp4 = "ytdl --recode-video webm";
      ytm3u = "yt-dlp -gS proto:m3u8";
      opusdl = "ytdl --recode-video opus";
      ytopus = "opusdl --format 251";
      spotdl = "spotdl --m3u --format opus";

      # Flakes
      buildiso = "${pkgs.nixos-generators}/bin/nixos-generate -f install-iso -c /home/jimbo/Downloads/NixISO/configuration.nix";
    };
    initExtra = ''
      ${pkgs.any-nix-shell}/bin/any-nix-shell zsh --info-right | source /dev/stdin; pfetch
      setopt HIST_IGNORE_SPACE
      setopt RM_STAR_WAIT
    '';
  };
}