Update zsh

This commit is contained in:
Tom Willemse 2014-07-01 22:53:27 +02:00
parent d494d318ce
commit 0d70f1dc57
17 changed files with 184 additions and 0 deletions

View file

@ -0,0 +1,4 @@
# -*- mode: sh; -*-
if [[ "${(P)${1}}" =~ (^|:)"$2"(:|$) ]]; then; else
typeset -g $1="${(P)${1}}:$2"
fi

View file

@ -0,0 +1,7 @@
# -*- mode: Shell-script -*-
if [ -e ".toudou" ]; then
toudou
elif [ "$PWD" = "$HOME" ]; then
toudou list -g
fi

View file

@ -0,0 +1,2 @@
# -*- mode: shell-script -*-
update_current_git_vars

15
zsh/functions/get_cnt Normal file
View file

@ -0,0 +1,15 @@
# -*- mode: shell-script -*-
if [ -n "$1" ]; then
if [ -e "$HOME/.local/share/$1.cnt" ]; then
cnt=$(/bin/cat "$HOME/.local/share/$1.cnt")
fi
if [ -z "$cnt" ]; then
cnt=0
fi
echo $cnt
else
echo "No count name specified" >&2
fi

View file

@ -0,0 +1,5 @@
# -*- mode: sh; -*-
# Copied and modified from
# http://zshwiki.org/home/code/zle/addsudoorpfexec
BUFFER="sudo $(history -n -1 -1)"
CURSOR=$#BUFFER

8
zsh/functions/line Normal file
View file

@ -0,0 +1,8 @@
# -*- mode: shell-script; eval: (git-auto-commit-mode 1) -*-
let start=$(expr $1 + 1)
let width=$(expr $COLUMNS - $2)
for i in {$start..$width}; do
echo -n \\x2d
done

7
zsh/functions/mailcount Executable file
View file

@ -0,0 +1,7 @@
#!/bin/zsh
local _new=`ls "$1"/inbox/new | wc -l`
local _unread=`ls "$1"/inbox/cur | egrep -v "S$" | wc -l`
let _count=$_new+$_unread
echo -n $_count

View file

@ -0,0 +1,15 @@
cmdstatus=$?
if [ -n "$__COMMAND_EXECUTING" -a $__COMMAND_EXECUTING -gt 0 \
-a -n "$__COMMAND_EXEC_TIME" ]; then
__COMMAND_EXECUTING=0
duration=$(expr $(date +%s) - $__COMMAND_EXEC_TIME)
if [ $duration -gt 30 ]; then
if [ $cmdstatus -eq 0 ]; then
echo "done" | festival --tts
else
echo "failed" | festival --tts
fi
fi
fi

View file

@ -0,0 +1,6 @@
# -*- mode: shell-script -*-
if [ -n "$__EXECUTED_GIT_COMMAND" ]; then
update_current_git_vars
unset __EXECUTED_GIT_COMMAND
fi

View file

@ -0,0 +1,11 @@
# -*- mode: shell-script -*-
if [ -n "$__EXECUTED_PACMAN_COMMAND" ]; then
update_pac_cnt
unset __EXECUTED_PACMAN_COMMAND
fi
if [ -n "$__EXECUTED_COWER_COMMAND" ]; then
update_aur_cnt
unset __EXECUTED_COWER_COMMAND
fi

View file

@ -0,0 +1,16 @@
# -*- mode: shell-script -*-
case "$1" in
git*)
__EXECUTED_GIT_COMMAND=1
;;
cower*)
__EXECUTED_COWER_COMMAND=1
;;
*pacman*)
__EXECUTED_PACMAN_COMMAND=1
;;
esac
__COMMAND_EXEC_TIME=$(date +%s)
__COMMAND_EXECUTING=1

15
zsh/functions/prompt Normal file
View file

@ -0,0 +1,15 @@
# -*- mode: shell-script; eval: (git-auto-commit-mode 1) -*-
local pac_cnt=$(get_cnt updates)
local aur_cnt=$(get_cnt aur)
local hostname=$(hostname | cut -d . -f 1)
if [ $pac_cnt -gt 0 -o $aur_cnt -gt 0 ]; then
printf "%s%d%s/%s%d%s:" \
"%{${fg[cyan]}%}" $pac_cnt "%{${fg[default]}%}" \
"%{${fg[cyan]}%}" $aur_cnt "%{${fg[default]}%}"
fi
printf '%s%s%s:%s%s%s%s ' \
"%{${fg[magenta]}%}" $hostname "%{${fg[default]}%}" \
"%(?.%{${fg[green]}%}.%{${fg[red]}%})" "%~" "%{${fg[default]}%}"

View file

@ -0,0 +1,23 @@
# -*- mode: shell-script -*-
if [ -n "$__CURRENT_GIT_BRANCH" ]; then
local s="("
s+="$__CURRENT_GIT_BRANCH"
case "$__CURRENT_GIT_BRANCH_STATUS" in
ahead)
s+="↑"
;;
diverged)
s+="↕"
;;
behind)
s+="↓"
;;
esac
if [ -n "$__CURRENT_GIT_BRANCH_IS_DIRTY" ]; then
s+="⚡"
fi
s+=")"
printf " %s%s" "%{${fg[yellow]}%}" $s
fi

4
zsh/functions/rprompt Normal file
View file

@ -0,0 +1,4 @@
# -*- mode: shell-script -*-
local git_info="$(prompt_git_info)"
printf '%s%s' $git_info "%{${fg[default]}%}"

View file

@ -0,0 +1,6 @@
# -*- mode: sh; -*-
autoload -U regexp-replace
local curdir=$1
regexp-replace curdir '(\.?[^./])[^/]+/' '$match/'
echo $curdir

View file

@ -0,0 +1,30 @@
# -*- mode: Shell-script -*-
unset __CURRENT_GIT_BRANCH
unset __CURRENT_GIT_BRANCH_STATUS
unset __CURRENT_GIT_BRANCH_IS_DIRTY
local st="$(git status 2>/dev/null)"
if [[ -n "$st" ]]; then
local -a arr
arr=(${(f)st})
if [[ $arr[1] =~ 'Not currently on any branch.' ]]; then
__CURRENT_GIT_BRANCH='no-branch'
else
__CURRENT_GIT_BRANCH="${arr[1][(w)4]}"
fi
if [[ $arr[2] =~ 'Your branch is' ]]; then
if [[ $arr[2] =~ 'ahead' ]]; then
__CURRENT_GIT_BRANCH_STATUS='ahead'
elif [[ $arr[2] =~ 'devirged' ]]; then
__CURRENT_GIT_BRANCH_STATUS='diverged'
else
__CURRENT_GIT_BRANCH_STATUS='behind'
fi
fi
if [[ ! $st =~ 'nothing to commit' ]]; then
__CURRENT_GIT_BRANCH_IS_DIRTY='1'
fi
fi

10
zsh/functions/welcome Normal file
View file

@ -0,0 +1,10 @@
# -*- mode: shell-script; eval: (git-auto-commit-mode 1) -*-
echo " , _ _ _ |"
echo " /#\\ __ _ _ __ ___| |__ | (_)_ __ _ ___ __ |"
echo " /###\\ / _\` | '__/ __| '_ \\| | | '_ \\| | | \\ \\/ / |"
echo " /#####\\ | (_| | | | (__| | | | | | | | | |_| |> < |"
echo " /##,-,##\\ \\__,_|_| \\___|_| |_|_|_|_| |_|\\__,_/_/\\_\\ |"
echo " /##( )##\\ |"
echo " /#.-- --.#\\ A simple, lightweight linux distribution. |"
echo " /\` \`\\ |"