{ pkgs, lib, inputs, config, ... }: { programs = { zsh = { enable = true; history.extended = true; prezto = { enable = true; editor = { keymap = "vi"; dotExpansion = true; }; prompt = { theme = "paradox"; pwdLength = "long"; showReturnVal = true; }; terminal.autoTitle = true; pmodules = [ "environment" "terminal" "editor" "history" "history-substring-search" # "directory" "spectrum" # "utility" # "completion" "git" "autosuggestions" "syntax-highlighting" "prompt" ]; }; initExtra = '' # Autocomplete ../ zstyle ':completion:*' special-dirs true export PATH="$HOME/.config/emacs/bin:$HOME/.cargo/bin:$PATH" unalias "gs" if [ -f ~/.config/zsh-extras ]; then source ~/.config/zsh-extras fi ''; shellAliases = { c = "z"; em = "emacsclient -c"; emnw = "emacsclient -nw"; grep = "grep --color=auto"; l = "exa -l"; ls = "ls --color=auto"; nd = "nix develop --command zsh"; s = "nix-shell --run zsh"; sp = "nix-shell --run zsh -p"; spu = "nix-shell -I nixpkgs=channel:nixos-unstable --run zsh -p"; tree = "exa --tree --icons"; "git clone git clone" = "git clone"; gcm = "git commit -m"; gpl = "git pull"; gps = "git push"; gst = "git status -sb"; }; }; zoxide = { enable = true; enableZshIntegration = true; }; }; }