From 9dd07c38942c6354c788591d0058719e1f9335dc Mon Sep 17 00:00:00 2001
From: koehr <n@koehr.in>
Date: Fri, 24 Nov 2017 18:34:41 +0100
Subject: [PATCH] update zshrc and prompt

---
 dot.zshrc           |  7 +---
 zsh/koehr.theme.zsh | 87 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 88 insertions(+), 6 deletions(-)
 create mode 100644 zsh/koehr.theme.zsh

diff --git a/dot.zshrc b/dot.zshrc
index 33f8cbc..c7d8693 100644
--- a/dot.zshrc
+++ b/dot.zshrc
@@ -15,11 +15,9 @@ if ! zgen saved; then
   zgen load zsh-users/zaw
   zgen load zsh-users/zsh-completions src
 
-  zgen load https://gist.github.com/9263734.git psy
-
   zgen save
 fi
-
+source ~/.zsh/koehr.theme.zsh
 setopt HIST_IGNORE_DUPS
 
 COMPLETION_WAITING_DOTS="true"
@@ -28,6 +26,3 @@ ZSH_HIGHLIGHT_PATTERNS+=('rm -fr*' 'fg=white,bold,bg=red')
 ZSH_HIGHLIGHT_PATTERNS+=('rm -rf*' 'fg=white,bold,bg=red')
 
 PROJECT_PATHS=(~/src ~/src/*)
-
-export NVM_DIR="/home/nk/.nvm"
-[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
diff --git a/zsh/koehr.theme.zsh b/zsh/koehr.theme.zsh
new file mode 100644
index 0000000..835ed86
--- /dev/null
+++ b/zsh/koehr.theme.zsh
@@ -0,0 +1,87 @@
+# koehr's zshell prompt
+# zsh theme requires 256 color enabled terminal
+# with ideas from sporty_256, fishy and cc (github:gabrielelana/dotfiles)
+
+_collapsed_path() {
+  #TODO: collapse path elements until the path is short enough
+  #TODO  eg: "/foo/bar/baz/quux/quarz" becomes "/f/b/baz/quux/quarz" if it still fits
+  #TODO  or "/f/b/b/q/quarz" in the 2nd shortest form, "quarz" in the shortest
+
+  # http://lavica.fesb.hr/cgi-bin/info2html?(zsh)The%20zsh/pcre%20Module
+  #echo $(pwd | perl -pe "s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g")
+  local TERMWIDTH
+  (( TERMWIDTH = ${COLUMNS} - 1 ))
+
+  PR_FILLBAR=""
+  PR_PWDLEN=""
+  PR_GIT="$(git_prompt_info)"
+  
+  local pwd=%~
+  local promptsize=${#${(%):-(%n@%m)--}}
+  local pwdsize=${#${(%):-%~}}
+  local gitinfosize=${#${(%):-$PR_GIT}}
+
+  if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then
+    pwd=$(pwd | perl -pe "s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g")
+    pwdsize=${#${(%):-$pwd}}
+    if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then
+        ((PR_PWDLEN=$TERMWIDTH - $promptsize - $gitinfosize))
+    fi
+  fi
+
+  echo "%$PR_PWDLEN<...<%~%<<"
+}
+
+
+CC_ORANGE='208'
+CC_RED='160'
+CC_GREEN='40'
+CC_GRAY1='236'
+CC_GRAY2='238'
+CC_GRAY3='240'
+CC_BLACK='232'
+CC_WHITE='255'
+
+CC_CPROMPT="%k%f%K{$CC_BLACK}%F{$CC_ORANGE}%B"
+CC_CRPROMPT="%k%f%F{$CC_ORANGE}"
+CC_CGITPROMPT="%k%f%F{$CC_GRAY3}"
+CC_CWARN="%k%f%K{$CC_BLACK}%F{$CC_RED}"
+
+CC_WRITE_IN_RED="%f%F{$CC_RED}"
+CC_WRITE_IN_GREEN="%f%F{$CC_GREEN}"
+CC_WRITE_IN_GRAY="%f%F{$CC_GRAY3}"
+
+CC_DRAW_IN_GRAY="%k%f%F{$CC_GRAY3}"
+CC_DRAW_IN_BLACK="%k%f%F{$CC_BLACK}"
+
+CC_SYMBOL_RIGHT_ARROW=$'\ue0b0'
+CC_SYMBOL_RIGHT_LIGHT_ARROW=$'\ue0b1'
+CC_SYMBOL_LEFT_ARROW=$'\ue0b2'
+CC_SYMBOL_LEFT_LIGHT_ARROW=$'\ue0b3'
+
+CC_SYMBOL_HOME=$'\uf015'
+CC_SYMBOL_WORK=$'\uf0b1'
+CC_SYMBOL_SERVER=$'\uf233'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="$CC_CGITPROMPT "
+ZSH_THEME_GIT_PROMPT_SUFFIX=" $CC_WRITE_IN_GRAY$CC_SYMBOL_LEFT_LIGHT_ARROW"
+ZSH_THEME_GIT_PROMPT_DIRTY="$CC_WRITE_IN_RED✘"
+ZSH_THEME_GIT_PROMPT_CLEAN="$CC_WRITE_IN_GREEN✔"
+
+CC_CURRENT_PATH="%1~"
+CC_HOSTNAME=`hostname -s`
+
+if [ "$CC_HOSTNAME" = 'koehr' ]; then
+  CC_HOSTNAME=$CC_SYMBOL_SERVER
+fi
+
+if [ "$CC_HOSTNAME" = 'HERENK' ]; then
+  CC_HOSTNAME=$CC_SYMBOL_WORK
+fi
+
+if [ "$CC_HOSTNAME" = 'iza' ]; then
+  CC_HOSTNAME=$CC_SYMBOL_HOME
+fi
+
+RPROMPT='$(git_prompt_info)'"$CC_CRPROMPT $(_collapsed_path)%{$reset_color%}"
+PROMPT="%(?.$CC_CPROMPT $CC_HOSTNAME .$CC_CWARN·%?·)$CC_DRAW_IN_BLACK$CC_SYMBOL_RIGHT_ARROW%f"'%{$reset_color%} ' #$CC_CURRENT_PATH "'$(git_prompt)'" $CC_DRAW_IN_GRAY$CC_SYMBOL_RIGHT_ARROW%f "