diff options
author | ene <ene@sils.li> | 2023-02-15 18:23:49 +0100 |
---|---|---|
committer | ene <ene@sils.li> | 2023-02-15 18:24:30 +0100 |
commit | 944edc4385e8aad92e18fabc7ff0ba24f42ea9b7 (patch) | |
tree | c3cb4bee8008f79f2fb066a40921a78be2e68a59 /home-manager/zsh/config/zsh-prompt.sh | |
parent | Feat(home-manager): Add yambar (diff) | |
download | nixos-config-944edc4385e8aad92e18fabc7ff0ba24f42ea9b7.tar.gz nixos-config-944edc4385e8aad92e18fabc7ff0ba24f42ea9b7.zip |
Feat(home-manager): Add zsh
Diffstat (limited to 'home-manager/zsh/config/zsh-prompt.sh')
-rw-r--r-- | home-manager/zsh/config/zsh-prompt.sh | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/home-manager/zsh/config/zsh-prompt.sh b/home-manager/zsh/config/zsh-prompt.sh new file mode 100644 index 00000000..1f0f164b --- /dev/null +++ b/home-manager/zsh/config/zsh-prompt.sh @@ -0,0 +1,63 @@ +#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; rm $PROMPT_TMP_DIR;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 |