{ config, lib, ... }: lib.mkIf config.programs.zsh.enable { programs = { zsh = { defaultKeymap = "emacs"; dotDir = ".config/zsh"; initExtra = builtins.readFile ../../../../configs/home-manager/zsh/zshrc.zsh; initExtraBeforeCompInit = builtins.readFile ../../../../configs/home-manager/zsh/zshrc_before_compinit.zsh; autosuggestion.enable = true; completionInit = '' autoload -U compinit bashcompinit compinit bashcompinit''; history = { path = "${config.xdg.cacheHome}/zsh_history"; save = 10000; size = 10000; share = true; extended = true; }; historySubstringSearch = { enable = true; searchDownKey = [ "^[[B" ]; searchUpKey = [ "^[[A" ]; }; antidote = { enable = true; plugins = [ "Aloxaf/fzf-tab" "zdharma-continuum/fast-syntax-highlighting" "nix-community/nix-zsh-completions" "zsh-users/zsh-completions" ]; }; shellAliases = { eza = "eza --color=always --git --icons=always"; }; }; }; }