{ config, lib, ... }: { programs.bash.enable = true; programs.zsh = { enable = true; dotDir = "${config.xdg.configHome}/zsh"; autosuggestion.enable = true; syntaxHighlighting.enable = true; history = { path = "${config.xdg.configHome}/zsh/zsh_history"; size = 10000; save = 10000; }; initExtra = '' bindkey '^R' history-incremental-search-backward bindkey '^S' history-incremental-search-forward autoload -Uz vcs_info precmd() { vcs_info } zstyle ':vcs_info:git:*' formats '%b' setopt PROMPT_SUBST PROMPT='%F{green}%n@%m%f:%F{blue}%~%f %F{240}''${vcs_info_msg_0_}%f %# ' ''; shellAliases = { cat = "bat"; }; }; home.activation.createZshHistDir = lib.hm.dag.entryAfter [ "writeBoundary" ] '' mkdir -p "${config.xdg.configHome}/zsh" ''; }