slick

async ZSH prompt in Rust inspired by:

sreenshot

How to use

Install:

cargo install slick

check your PATH $HOME/.cargo/bin/slick

Then add this to your .zshrc:

```sh zle -N zle-keymap-select zle -N zle-line-init zmodload zsh/datetime autoload -Uz add-zsh-hook add-zsh-hook precmd slickpromptprecmd add-zsh-hook preexec slickpromptpreexec

typeset -g slickpromptdata typeset -g slickprompttimestamp

function slickpromptrefresh { local exitstatus=$? if ! read -r slickpromptdata <&$1; then slickpromptdata=" " fi PROMPT=$(slick prompt -k "$KEYMAP" -r $exitstatus -d ${slickpromptdata:-" "} -t ${slickprompttimestamp:-$EPOCHSECONDS})

zle reset-prompt

# Remove the handler and close the fd
zle -F $1
exec {1}<&-

}

function zle-line-init zle-keymap-select { PROMPT=$(slick prompt -k "$KEYMAP" -d ${slickpromptdata:-" "}) zle && zle reset-prompt }

function slickpromptprecmd() { exec {FD}< <(slick precmd) zle -F $FD slickpromptrefresh }

function slickpromptpreexec() { slickprompttimestamp=$EPOCHSECONDS } ```