Skip to content

Commit

Permalink
Added add-zsh-hook support to themes
Browse files Browse the repository at this point in the history
I added add-zsh-hook support to the themes that didn't have it already.
This allows the themes to co-exist with plugins and lib/termsupport.
  • Loading branch information
docwhat committed Nov 15, 2011
1 parent 40c47a7 commit 5277a0f
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 15 deletions.
7 changes: 5 additions & 2 deletions themes/apple.zsh-theme
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ function toon {
echo -n ""
}

get_git_dirty() {
get_git_dirty() {
git diff --quiet || echo '*'
}

Expand All @@ -18,9 +18,12 @@ zstyle ':vcs_info:*' formats \
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
zstyle ':vcs_info:*' enable git cvs svn

precmd () {
theme_precmd () {
vcs_info
}

setopt prompt_subst
PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}'

autoload -U add-zsh-hook
add-zsh-hook precmd theme_precmd
28 changes: 16 additions & 12 deletions themes/jonathan.zsh-theme
Original file line number Diff line number Diff line change
@@ -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 rubypromptsize=${#${rubyprompt}}
local pwdsize=${#${(%):-%~}}

if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then
((PR_PWDLEN=$TERMWIDTH - $promptsize))
else
Expand All @@ -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\\"
Expand Down Expand Up @@ -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]%}"
Expand All @@ -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%}'
Expand All @@ -96,17 +96,17 @@ setprompt () {
PR_TITLEBAR=''
;;
esac


###
# Decide whether to set a screen title
if [[ "$TERM" == "screen" ]]; then
PR_STITLE=$'%{\ekzsh\e\\%}'
else
PR_STITLE=''
fi


###
# Finally, the prompt.

Expand Down Expand Up @@ -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
5 changes: 4 additions & 1 deletion themes/kolo.zsh-theme
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ zstyle ':vcs_info:*' unstagedstr '%F{yellow}●'
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
zstyle ':vcs_info:*' enable git svn
precmd () {
theme_precmd () {
if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]'
} else {
Expand All @@ -19,3 +19,6 @@ precmd () {

setopt prompt_subst
PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% '

autoload -U add-zsh-hook
add-zsh-hook precmd theme_precmd

0 comments on commit 5277a0f

Please sign in to comment.