about summary refs log blame commit diff stats
path: root/hm/soispha/conf/zsh/config/zsh-prompt.sh
blob: 26d478ef10a1b3396184543bf19b4f4df5af5b2d (plain) (tree)






















































                                                     
                                                                                                                                                                                                                                                           


                                           
        
                 
#vim:ft=zsh
_command_time_preexec() {
    timer=${timer:-$SECONDS}
}

_command_time_precmd() {
    PROMPT_TMP_DIR=$(mktemp)
  if [ $timer ]; then
    ts=$(($SECONDS - $timer))
    tts=$ts
    mi=0
    ho=0
    if [ $ts -ge 3 ];then
        while [ $ts -ge 60 ];do
            ts=$((ts-60))
            mi=$((mi+1))
        done

        while [ $mi -ge 60 ];do
            mi=$((mi-60))
            ho=$((ho+1))
        done

        if [ $tts -ge 3600 ];then
            out=$(printf '%dh %dm %ds\n' $ho $mi $ts)
        elif [ $tts -ge 60 ];then
            out=$(printf '%dm %ds\n' $mi $ts)
        elif [ $tts -lt 60 ];then
             out=$(printf '%ds\n' $ts)
        fi

    export psvar[1]="took $(printf '%s ' "$out")"
    echo $psvar[1] > $PROMPT_TMP_DIR
    fi

    unset timer
    unset ts
    unset tts
    unset mi
    unset ho
fi
}

_command_ro_precmd() {
if ! [ -w $(pwd) ];then
    echo " "
fi
}

preexec_functions+=(_command_time_preexec)
precmd_functions+=(_command_time_precmd)

blue="14"
red="9"
white="15"
setopt PROMPT_SUBST
export PROMPT='%(?.%F{$blue}.%F{$red})%B%3~%(!. %F{$red}as root %f. )%F{$white}$(if [ -n $PROMPT_TMP_DIR ];then cat $PROMPT_TMP_DIR 2>/dev/null; rm $PROMPT_TMP_DIR 2>/dev/null;fi)%f%(?.%F{$blue}.%F{$red})%F{$red}$(_command_ro_precmd)%F{$blue}❯ %b%f'
export RPROMPT=''

#%(2V.%F{$red}%2v%f$(export psvar[2]="") .)

# TODO::
# Add git support