{ pkgs, config, fzf-tab, ... }: {
    programs.zsh = {
        enable = true;
        plugins = [ { name = "fzf-tab"; src = fzf-tab; } ];
        oh-my-zsh = {
            enable = true;
            plugins = [ "git" ];
            theme = "crunch";
        };
        history = {
            size = 10000;
            path = "${config.xdg.dataHome}/zsh/history";
            expireDuplicatesFirst = true;
            extended = true;
        };
        initExtra = ''
            bindkey "\'\'$\{key[Up]}" up-line-or-search

            command_not_found_handler ()
            {
                local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
                if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
                    "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
                  if [ $? = 126 ]; then
                        "$@";
                    else
                        return 127;
                    fi;
                else
                    echo "$1: command not found" 1>&2;
                    return 127;
                fi
            }

            ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
            ZSH_HIGHLIGHT_STYLES[comment]='fg=248';

            if [[ $SHLVL != "1" ]]; then
                export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%}'
                fi

            function TRAPINT {
                print -n "%{$fg_bold[red]%}^C%{$fg_no_bold[default]%}"
                return $(( 128 + $1 ))
            }

            # disable sort when completing `git checkout`
            zstyle ':completion:*:git-checkout:*' sort false
            # set descriptions format to enable group support
            zstyle ':completion:*:descriptions' format '[%d]'
            # set list-colors to enable filename colorizing
            zstyle ':completion:*' list-colors $\{(s.:.)LS_COLORS}
            # preview directory's content with exa when completing cd
            zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 -l --color=always $realpath'
            # switch group using `,` and `.`
            zstyle ':fzf-tab:*' switch-group ',' '.'
            enable-fzf-tab
        '';
        enableSyntaxHighlighting = true;
        enableAutosuggestions = true;
        autocd = true;
        dotDir = ".local/share/zsh";
    };

    home.packages = [
        pkgs.fzf
    ];
}
