X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=admone.zsh;h=63aaeab6f1de2cafc464ccfc4416082d15b44e54;hb=7310b160de83c26be40ce2314e447c413d77b6e3;hp=e6cb23f57aa51d5495878e686c6410c38879a99c;hpb=13167eab9ca6e6de99f29a18f04af515de76eb53;p=admone.git diff --git a/admone.zsh b/admone.zsh index e6cb23f..63aaeab 100644 --- a/admone.zsh +++ b/admone.zsh @@ -1,8 +1,7 @@ ####################################################################### -# Admone ZSH prompt. Copyright Armaan Bhojwani, palb91, romkatv. # -# MIT licensed, see the LICENSE file or # -# https://www.opensource.org/licenses/MIT for more information. # -# Git repo at https://codeberg.org/armaan/admone # +# Admone ZSH prompt. Copyright Armaan Bhojwani. MIT licensed, see the # +# LICENSE file or https://www.opensource.org/licenses/MIT for more # +# information. Git repo at https://codeberg.org/armaan/admone # ####################################################################### # @@ -15,7 +14,9 @@ ADMONE_PRE_LOWER="╰ " ADMONE_BLOCK_SEPARATOR="-" ADMONE_BLOCK_LEFT="[" ADMONE_BLOCK_RIGHT="]" -ADMONE_INCLUDE="admone-pwd;admone-git;admone-exit-code" +ADMONE_VI_MODE_CURSOR="1" +ADMONE_INCLUDE="admone-pwd;admone-git;admone-exit-code;admone-time" +ADMONE_FORMAT_LOWER="%B%F{%(?.cyan.red)}" function admone-pwd { echo "%F{blue}%~%f%F{240}" @@ -27,13 +28,20 @@ function admone-git { function admone-exit-code { echo "%(?,,%F{1}%?%F{240})" } - function admone-date { echo $(date -I) } +function admone-12hr { + echo $(date +%r) +} +function admone-24hr { + echo $(date +%T) +} function admone-time { - echo $(date -Iseconds) + # Intergration with https://codeberg.org/armaan/zsh-command-time + echo "%F{cyan}$timer_show%f" } + ####################################################################### # @@ -42,54 +50,47 @@ function admone-time { # Cursor shape depends on vi mode function zle-keymap-select zle-line-init zle-line-finish { - case $KEYMAP in - vicmd) - print -n -- "\E]50;CursorShape=0\C-G" - ;; - viins|main) - print -n -- "\E]50;CursorShape=1\C-G" - ;; - *) - ;; - esac + if [[ $ADMONE_VI_MODE_CURSOR == 1 ]]; then + case $KEYMAP in + vicmd) + # Block + print -n -- "\E]50;CursorShape=0\C-G" + ;; + viins|main) + # Beam + print -n -- "\E]50;CursorShape=1\C-G" + ;; + esac - zle reset-prompt - zle -R + zle reset-prompt + zle -R + fi } function set-prompt() { - upper="%B${ADMONE_PRE_UPPER}" - lower="%B${ADMONE_PRE_LOWER}%B%F{%(?.cyan.red)}${ADMONE_PROMPT_CHAR}%f%b " + # Reset prompts + upper="${ADMONE_PRE_UPPER}" + lower="${ADMONE_PRE_LOWER}${ADMONE_FORMAT_LOWER}${ADMONE_PROMPT_CHAR}%f%b " + # Add in functions as defined above NUM_FUNCS="$(echo $ADMONE_INCLUDE | grep -o ';' | wc -l)" for (( i = 0; i <= $NUM_FUNCS; i++ )); do (( val = $i + 1 )) THE_COMMAND="$(echo $ADMONE_INCLUDE | cut -d ';' -f $val)" - - REAL_NUM_FUNCS=$((NUM_FUNCS+1)) - if [[ $val == $REAL_NUM_FUNCS ]]; then - upper+="$ADMONE_BLOCK_SEPARATOR$ADMONE_BLOCK_LEFT$($THE_COMMAND)$ADMONE_BLOCK_RIGHT" - elif [[ $((REAL_NUM_FUNCS%2)) == 0 ]]; then - if [[ $((val%2)) == 0 ]]; then - upper+="$ADMONE_BLOCK_SEPARATOR$ADMONE_BLOCK_LEFT$($THE_COMMAND)$ADMONE_BLOCK_RIGHT$ADMONE_BLOCK_SEPARATOR" - else - upper+="$ADMONE_BLOCK_LEFT$($THE_COMMAND)$ADMONE_BLOCK_RIGHT" - fi - elif [[ $((REAL_NUM_FUNCS%2)) != 0 ]]; then - if [[ $val == 1 ]]; then - upper+="$ADMONE_BLOCK_LEFT$($THE_COMMAND)$ADMONE_BLOCK_RIGHT$ADMONE_BLOCK_SEPARATOR" - elif [[ $((val%2)) != 0 ]]; then - upper+="$ADMONE_BLOCK_SEPARATOR$ADMONE_BLOCK_LEFT$($THE_COMMAND)$ADMONE_BLOCK_RIGHT$ADMONE_BLOCK_SEPARATOR" - else - upper+="$ADMONE_BLOCK_LEFT$($THE_COMMAND)$ADMONE_BLOCK_RIGHT" - fi - fi + if [[ $val == 1 ]]; then + upper+="$ADMONE_BLOCK_LEFT$($THE_COMMAND)$ADMONE_BLOCK_RIGHT" + else + upper+="$ADMONE_BLOCK_SEPARATOR$ADMONE_BLOCK_LEFT$($THE_COMMAND)$ADMONE_BLOCK_RIGHT" + fi done + # Add line above [[ -v PS1_NL ]] && echo || PS1_NL= + PROMPT=$upper$'\n'$lower } +# Set everything! zle -N zle-line-init zle -N zle-line-finish zle -N zle-keymap-select