From: Armaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me> Date: Thu, 29 Oct 2020 03:43:48 +0000 (-0400) Subject: fixed block separator issues X-Git-Url: https://git.armaanb.net/?p=admone.git;a=commitdiff_plain;h=13167eab9ca6e6de99f29a18f04af515de76eb53 fixed block separator issues --- diff --git a/README.md b/README.md index 72b1e40..b4e74ac 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,10 @@ A tolerable ZSH prompt Source this script somewhere in your ZSHRC Theoretically works with plugin managers as well although this is untested -## Requirements +## Configuration +Configuration is done by modifying the variables set at the start of the script. Just get in there and mess around a bit, its not very difficult to understand + +## My design requirements - No OhMyZSH dependency - Fast to load - 2 lines diff --git a/admone.zsh b/admone.zsh index 9e32ac8..e6cb23f 100644 --- a/admone.zsh +++ b/admone.zsh @@ -28,6 +28,12 @@ function admone-exit-code { echo "%(?,,%F{1}%?%F{240})" } +function admone-date { + echo $(date -I) +} +function admone-time { + echo $(date -Iseconds) +} ####################################################################### # @@ -39,10 +45,10 @@ function zle-keymap-select zle-line-init zle-line-finish { case $KEYMAP in vicmd) print -n -- "\E]50;CursorShape=0\C-G" - ;; # block cursor + ;; viins|main) print -n -- "\E]50;CursorShape=1\C-G" - ;; # line cursor + ;; *) ;; esac @@ -55,17 +61,32 @@ function set-prompt() { upper="%B${ADMONE_PRE_UPPER}" lower="%B${ADMONE_PRE_LOWER}%B%F{%(?.cyan.red)}${ADMONE_PROMPT_CHAR}%f%b " - for (( i = 0; i <= $(echo $ADMONE_INCLUDE | grep -o ';' | wc -l); i++ )); do + 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)" - 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" + 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 done + [[ -v PS1_NL ]] && echo || PS1_NL= PROMPT=$upper$'\n'$lower }