Update zsh
This commit is contained in:
parent
d494d318ce
commit
0d70f1dc57
17 changed files with 184 additions and 0 deletions
4
zsh/functions/add_to_list
Normal file
4
zsh/functions/add_to_list
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# -*- mode: sh; -*-
|
||||||
|
if [[ "${(P)${1}}" =~ (^|:)"$2"(:|$) ]]; then; else
|
||||||
|
typeset -g $1="${(P)${1}}:$2"
|
||||||
|
fi
|
7
zsh/functions/chpwd_show_todo
Normal file
7
zsh/functions/chpwd_show_todo
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# -*- mode: Shell-script -*-
|
||||||
|
|
||||||
|
if [ -e ".toudou" ]; then
|
||||||
|
toudou
|
||||||
|
elif [ "$PWD" = "$HOME" ]; then
|
||||||
|
toudou list -g
|
||||||
|
fi
|
2
zsh/functions/chpwd_update_git_vars
Normal file
2
zsh/functions/chpwd_update_git_vars
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# -*- mode: shell-script -*-
|
||||||
|
update_current_git_vars
|
15
zsh/functions/get_cnt
Normal file
15
zsh/functions/get_cnt
Normal 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
|
5
zsh/functions/insert-sudo
Normal file
5
zsh/functions/insert-sudo
Normal 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
8
zsh/functions/line
Normal 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
7
zsh/functions/mailcount
Executable 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
|
15
zsh/functions/precmd_maybe_festival
Normal file
15
zsh/functions/precmd_maybe_festival
Normal 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
|
6
zsh/functions/precmd_update_git_vars
Normal file
6
zsh/functions/precmd_update_git_vars
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# -*- mode: shell-script -*-
|
||||||
|
|
||||||
|
if [ -n "$__EXECUTED_GIT_COMMAND" ]; then
|
||||||
|
update_current_git_vars
|
||||||
|
unset __EXECUTED_GIT_COMMAND
|
||||||
|
fi
|
11
zsh/functions/precmd_update_updates
Normal file
11
zsh/functions/precmd_update_updates
Normal 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
|
16
zsh/functions/preexec_update_vars
Normal file
16
zsh/functions/preexec_update_vars
Normal 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
15
zsh/functions/prompt
Normal 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]}%}"
|
23
zsh/functions/prompt_git_info
Normal file
23
zsh/functions/prompt_git_info
Normal 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
4
zsh/functions/rprompt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# -*- mode: shell-script -*-
|
||||||
|
|
||||||
|
local git_info="$(prompt_git_info)"
|
||||||
|
printf '%s%s' $git_info "%{${fg[default]}%}"
|
6
zsh/functions/shorten-dir
Normal file
6
zsh/functions/shorten-dir
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# -*- mode: sh; -*-
|
||||||
|
autoload -U regexp-replace
|
||||||
|
|
||||||
|
local curdir=$1
|
||||||
|
regexp-replace curdir '(\.?[^./])[^/]+/' '$match/'
|
||||||
|
echo $curdir
|
30
zsh/functions/update_current_git_vars
Normal file
30
zsh/functions/update_current_git_vars
Normal 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
10
zsh/functions/welcome
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# -*- mode: shell-script; eval: (git-auto-commit-mode 1) -*-
|
||||||
|
|
||||||
|
echo " [1;36m,[1;36m _ _ _ [1;30m|"
|
||||||
|
echo " [1;36m/#\\[1;36m __ _ _ __ ___| |__ | (_)_ __ _ ___ __ [30m|"
|
||||||
|
echo " [1;36m/###\\[1;36m / _\` | '__/ __| '_ \\| | | '_ \\| | | \\ \\/ / [30m|"
|
||||||
|
echo " [1;36m/#####\\[1;36m | (_| | | | (__| | | | | | | | | |_| |> < [30m|"
|
||||||
|
echo " [1;36m/##[0;36m,-,##\\[1;36m \\__,_|_| \\___|_| |_|_|_|_| |_|\\__,_/_/\\_\\ [1;30m|"
|
||||||
|
echo " [0;36m/##( )##\\ [1;30m|"
|
||||||
|
echo " [0;36m/#.-- --.#\\[1;37m A simple, lightweight linux distribution. [1;30m|"
|
||||||
|
echo " [0;36m/\` \`\\[0m [1;30m|[0m"
|
Loading…
Reference in a new issue