summaryrefslogtreecommitdiff
path: root/themes/jonathan.zsh-theme
diff options
context:
space:
mode:
Diffstat (limited to 'themes/jonathan.zsh-theme')
-rw-r--r--themes/jonathan.zsh-theme32
1 files changed, 18 insertions, 14 deletions
diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme
index add485279..2f0c4b917 100644
--- a/themes/jonathan.zsh-theme
+++ b/themes/jonathan.zsh-theme
@@ -1,19 +1,19 @@
-function precmd {
+function theme_precmd {
local TERMWIDTH
(( TERMWIDTH = ${COLUMNS} - 1 ))
###
# Truncate the path if it's too long.
-
+
PR_FILLBAR=""
PR_PWDLEN=""
-
+
local promptsize=${#${(%):---(%n@%m:%l)---()--}}
- local rubyprompt=`rvm_prompt_info`
+ local rubyprompt=`rvm_prompt_info || rbenv_prompt_info`
local rubypromptsize=${#${rubyprompt}}
local pwdsize=${#${(%):-%~}}
-
+
if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then
((PR_PWDLEN=$TERMWIDTH - $promptsize))
else
@@ -24,7 +24,7 @@ function precmd {
setopt extended_glob
-preexec () {
+theme_preexec () {
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
echo -n "\ek$CMD\e\\"
@@ -69,7 +69,7 @@ setprompt () {
###
# See if we can use extended characters to look nicer.
-
+
typeset -A altchar
set -A altchar ${(s..)terminfo[acsc]}
PR_SET_CHARSET="%{$terminfo[enacs]%}"
@@ -81,10 +81,10 @@ setprompt () {
PR_LRCORNER=${altchar[j]:--}
PR_URCORNER=${altchar[k]:--}
-
+
###
# Decide if we need to set titlebar text.
-
+
case $TERM in
xterm*)
PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
@@ -96,8 +96,8 @@ setprompt () {
PR_TITLEBAR=''
;;
esac
-
-
+
+
###
# Decide whether to set a screen title
if [[ "$TERM" == "screen" ]]; then
@@ -105,15 +105,15 @@ setprompt () {
else
PR_STITLE=''
fi
-
-
+
+
###
# Finally, the prompt.
PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\
$PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\
$PR_GREEN%$PR_PWDLEN<...<%~%<<\
-$PR_GREY)`rvm_prompt_info`$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\
+$PR_GREY)`rvm_prompt_info || rbenv_prompt_info`$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\
$PR_CYAN%(!.%SROOT%s.%n)$PR_GREY@$PR_GREEN%m:%l\
$PR_GREY)$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_URCORNER$PR_SHIFT_OUT\
@@ -135,3 +135,7 @@ $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '
}
setprompt
+
+autoload -U add-zsh-hook
+add-zsh-hook precmd theme_precmd
+add-zsh-hook preexec theme_preexec \ No newline at end of file