]> git.armaanb.net Git - admone.git/commitdiff
fixed block separator issues
authorArmaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me>
Thu, 29 Oct 2020 03:43:48 +0000 (23:43 -0400)
committerArmaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me>
Thu, 29 Oct 2020 03:43:48 +0000 (23:43 -0400)
README.md
admone.zsh

index 72b1e40d575eb39e36a6a827187e42c97dae4d33..b4e74ac51a37eb10d194d8cbc07f8b587d181d1e 100644 (file)
--- 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
 
 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
   - No OhMyZSH dependency
   - Fast to load
   - 2 lines
index 9e32ac802bf5d1689a5c5805c4f6b68c0eb2ff08..e6cb23f57aa51d5495878e686c6410c38879a99c 100644 (file)
@@ -28,6 +28,12 @@ function admone-exit-code {
   echo "%(?,,%F{1}%?%F{240})"
 }
 
   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"
   case $KEYMAP in
     vicmd)
       print -n -- "\E]50;CursorShape=0\C-G"
-      ;; # block cursor
+      ;;
     viins|main)
       print -n -- "\E]50;CursorShape=1\C-G"
     viins|main)
       print -n -- "\E]50;CursorShape=1\C-G"
-      ;; # line cursor
+      ;;
     *)
       ;;
   esac
     *)
       ;;
   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 "
 
   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)"
 
     (( 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
 
       fi
   done
 
+  [[ -v PS1_NL ]] && echo || PS1_NL=
   PROMPT=$upper$'\n'$lower
 }
 
   PROMPT=$upper$'\n'$lower
 }