update zsh configuration files

This commit is contained in:
arcan1s
2014-11-26 12:10:58 +03:00
parent 63bae6ae0b
commit 8071d696d8
25 changed files with 447 additions and 1848 deletions

50
zsh/archive_functions Normal file
View File

@ -0,0 +1,50 @@
# function to extract archives
# EXAMPLE: unpack file
unpack() {
if [[ -f $1 ]]; then
case $1 in
*.tar.bz2) tar xjfv $1 ;;
*.tar.gz) tar xzfv $1 ;;
*.tar.xz) tar xvJf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar x $1 ;;
*.tar) tar xf $1 ;;
*.tbz) tar xjvf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "I don't know how to extract '$1'" ;;
esac
else
case $1 in
*help) echo "Usage: unpack ARCHIVE_NAME" ;;
*) echo "'$1' is not a valid file" ;;
esac
fi
}
# function to create archives
# EXAMPLE: pack tar file
pack() {
if [ $1 ]; then
case $1 in
tar.bz2) tar -cjvf $2.tar.bz2 $2 ;;
tar.gz) tar -czvf $2.tar.bz2 $2 ;;
tar.xz) tar -cf - $2 | xz -9 -c - > $2.tar.xz ;;
bz2) bzip $2 ;;
gz) gzip -c -9 -n $2 > $2.gz ;;
tar) tar cpvf $2.tar $2 ;;
tbz) tar cjvf $2.tar.bz2 $2 ;;
tgz) tar czvf $2.tar.gz $2 ;;
zip) zip -r $2.zip $2 ;;
7z) 7z a $2.7z $2 ;;
*help) echo "Usage: pack TYPE FILES" ;;
*) echo "'$1' cannot be packed via pack()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}

40
zsh/custom_rm Normal file
View File

@ -0,0 +1,40 @@
# redefine rm command
rm() {
# error check
[ $# -eq 0 ] && { echo "Files are not set"; return 1 }
echo "$@" | grep -qe '-h\|--help' && { echo "Usage: rm FILE..."; return 0 }
echo "$@" | grep -q " -" && echo "Warning: this function doesn't support any flags"
# set trash path
TRASHDIR="$HOME/.local/share/Trash"
TRASHFILE="${TRASHDIR}/files"
TRASHINFO="${TRASHDIR}/info"
for DIRECTORY in "${TRASHDIR}" "${TRASHFILE}" "${TRASHINFO}"; do
if [ -e "${DIRECTORY}" ]; then
[ -d "${DIRECTORY}" ] || { echo "'${DIRECTORY}' is a file"; return 1 }
else
mkdir -p -m755 "${DIRECTORY}"
fi
done
# confirm
CONFIRM=""
echo -n "Do you realy want to remove '$@'? [ny] "; read -k1 CONFIRM; echo
[[ ! $CONFIRM =~ [yY] ]] && return 1
# move
for FILE in "$@"; do
DESTFILE="$(basename -- "${FILE}")"
SUFFIX='';
ITER=0;
while [ -e "${TRASHFILE}/${DESTFILE}${SUFFIX}" ]; do
SUFFIX="_${ITER}";
ITER=$(expr ${ITER} + 1)
done
echo "Remove '${FILE}'"
if [ "$(dirname -- "$(realpath -- "${FILE}")")" == "${TRASHFILE}" ]; then
/usr/bin/rm -rf -- "${FILE}"
/usr/bin/rm -rf -- "${TRASHINFO}/${DESTFILE}.trashinfo"
else
mv -- "${FILE}" "${TRASHFILE}/${DESTFILE}${SUFFIX}" || return 1
echo "[Trash Info]\nPath=$(realpath -- "${FILE}")\nDeletionDate=$(date +%Y-%m-%dT%H:%M:%S)" > "${TRASHINFO}/${DESTFILE}${SUFFIX}.trashinfo" || return 1
fi
done
}

15
zsh/custom_su Normal file
View File

@ -0,0 +1,15 @@
# redefine su command
su() {
CHECKSU=0
for FLAG in $*; do
[[ $FLAG == "-" ]] && CHECKSU=1
[[ $FLAG == "-l" ]] && CHECKSU=1
[[ $FLAG == "--login" ]] && CHECKSU=1
done
if [[ $CHECKSU == 0 ]]; then
echo "Use 'su -', Luke"
/usr/bin/su - $*
else
/usr/bin/su $*
fi
}

7
zsh/filetypes_aliases Normal file
View File

@ -0,0 +1,7 @@
# alias -s
alias -s {avi,mpeg,mpg,mov,m2v,mkv}=mpv
alias -s {mp3,flac}=qmmp
alias -s {odt,doc,xls,ppt,docx,xlsx,pptx,csv}=libreoffice
alias -s {pdf}=okular
autoload -U pick-web-browser
alias -s {html,htm}=firefox

4
zsh/hash_common Normal file
View File

@ -0,0 +1,4 @@
# common hashs
hash -d iso="/mnt/iso"
hash -d u1="/mnt/usbdev1"
hash -d u2="/mnt/usbdev2"

3
zsh/hash_desktop Normal file
View File

@ -0,0 +1,3 @@
# hash
hash -d global="/mnt/global"
hash -d windows="/mnt/windows"

44
zsh/highlighting Normal file
View File

@ -0,0 +1,44 @@
# highlighting
source "/usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
# brackets
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,bold'
# cursor
#ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue'
# main
# default
ZSH_HIGHLIGHT_STYLES[default]='none'
# unknown
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
# command
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[alias]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[function]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[command]='fg=green'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue,bold'
# path
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan,bold'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_approx]='fg=cyan'
# shell
ZSH_HIGHLIGHT_STYLES[globbing]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
ZSH_HIGHLIGHT_STYLES[assign]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=blue'
# quotes
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow,underline'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
# pattern
ZSH_HIGHLIGHT_PATTERNS+=('\~b/rm ' 'fg=green')
# root
#ZSH_HIGHLIGHT_STYLES[root]='bg=red'

7
zsh/pacman_common Normal file
View File

@ -0,0 +1,7 @@
# redefine pacman and yaourt
pacman() {
/usr/bin/sudo /usr/bin/pacman $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaourt() {
/usr/bin/yaourt $* && echo "$*" | grep -q "S\|R\|U" && rehash
}

7
zsh/pacman_test Normal file
View File

@ -0,0 +1,7 @@
# pacman commands with repo variations
yatest() {
/usr/bin/yaourt --config /etc/pactest.conf $* && echo "$*" | grep -q "S\|R\|U" && rehash
}
yaaur() {
/usr/bin/yaourt --config /etc/pacaur.conf $* && echo "$*" | grep -q "S\|R\|U" && rehash
}

2
zsh/pkgfile Normal file
View File

@ -0,0 +1,2 @@
# pkgfile
source "/usr/share/doc/pkgfile/command-not-found.zsh"

41
zsh/prompt Normal file
View File

@ -0,0 +1,41 @@
# PROMPT && RPROMPT
if [[ $EUID == 0 ]]; then
# [root@host dir]#
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[red]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[red]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]# %{$reset_color%}"
else
# [user@host dir]$
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[green]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[green]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]$ %{$reset_color%}"
fi
precmd() {
# battery charge
function batcharge {
bat_perc=$(acpi | awk {'print $4;'} | sed -e "s/\s//" -e "s/%.*//")
if [[ ${bat_perc} < 15 ]]; then
col="%{$fg_bold[red]%}"
elif [[ ${bat_perc} < 50 ]]; then
col="%{$fg_bold[yellow]%}"
else
col="%{$fg_bold[green]%}"
fi
echo "%{$fg_bold[white]%}["$col$bat_perc"%{$fg_bold[white]%}%%]%{$reset_color%}"
}
# last command
returncode="%(?.%{$fg[green]%}.%{$fg[red]%})%?%{$resetcolor%}"
RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[cyan]%}%T%{$reset_color%}\
%{$fg_bold[white]%}]%{$reset_color%}"\
$(batcharge)\
"%{$fg_bold[white]%}[%{$reset_color%}"\
${returncode}\
"%{$fg_bold[white]%}]%{$reset_color%}"
}

27
zsh/prompt_server Normal file
View File

@ -0,0 +1,27 @@
# PROMPT && RPROMPT
if [[ $EUID == 0 ]]; then
# [root@host dir]#
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[red]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[blue]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]# %{$reset_color%}"
else
# [user@host dir]$
PROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[green]%}%n%{$reset_color%}\
%{$fg_bold[white]%}@%{$reset_color%}\
%{$fg_no_bold[blue]%}%m %{$reset_color%}\
%{$fg_bold[yellow]%}%1/%{$reset_color%}\
%{$fg_bold[white]%}]$ %{$reset_color%}"
fi
precmd() {
# last command
returncode="%(?.%{$fg[green]%}.%{$fg[red]%})%?%{$resetcolor%}"
RPROMPT="%{$fg_bold[white]%}[%{$reset_color%}\
%{$fg_bold[cyan]%}%T%{$reset_color%}\
%{$fg_bold[white]%}][%{$reset_color%}"\
${returncode}\
"%{$fg_bold[white]%}]%{$reset_color%}"
}

12
zsh/sudo_aliases_pc Normal file
View File

@ -0,0 +1,12 @@
# sudo alias
if [[ ${EUID} == 0 ]]; then
alias mts_3g='eject /dev/sr1 && sleep 5 && wvdial mts3g && disown'
alias sddm='systemctl start sddm && exit'
else
alias cpu='sudo cpu'
alias backlight='sudo backlight'
alias exante='sudo netctl start exante && sudo systemctl start exante-vpn && sddm'
alias mts_3g='sudo eject /dev/sr1 && sleep 5 && sudo wvdial mts3g && disown'
alias sddm='sudo systemctl start sddm && exit'
alias wifi-menu='sudo wifi-menu'
fi

28
zsh/sudo_aliases_server Normal file
View File

@ -0,0 +1,28 @@
# sudo alias
if [[ ${EUID} == 0 ]]; then
alias fat32mnt='mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
alias synctime='{ ntpd -qg; hwclock -w; date; }'
else
alias dhcpcd='sudo dhcpcd'
alias extra-i686-build='sudo extra-i686-build'
alias extra-x86_64-build='sudo extra-x86_64-build'
alias fat32mnt='sudo mount -t vfat -o codepage=866,iocharset=utf8,umask=000'
alias modprobe='sudo modprobe'
alias mount='sudo mount'
alias multilib-build='sudo multilib-build'
alias multilib-staging-build='sudo multilib-staging-build'
alias multilib-testing-build='sudo multilib-testing-build'
alias netctl='sudo netctl'
alias pacdiff='sudo pacdiff'
alias rmmod='sudo rmmod'
alias scat='sudo cat'
alias sgrep='sudo grep'
alias staging-i686-build='sudo staging-i686-build'
alias staging-x86_64-build='sudo staging-x86_64-build'
alias svim='sudo vim'
alias synctime='{ sudo ntpd -qg; sudo hwclock -w; date; }'
alias systemctl='sudo systemctl'
alias testing-i686-build='sudo testing-i686-build'
alias testing-x86_64-build='sudo testing-x86_64-build'
alias umount='sudo umount'
fi

5
zsh/vimpager Normal file
View File

@ -0,0 +1,5 @@
# use vimpager instead of less
alias less='vimpager'
alias zless='vimpager'
export PAGER="vimpager"

48
zsh/xrandr_e530 Normal file
View File

@ -0,0 +1,48 @@
# xrandr functions for ThinkPad E530
# functions to contorl xrandr
# EXAMPLE: projctl 1024x768
projctl() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="LVDS1"
SECONDMON="VGA1"
RESOLUTION="1366x768"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: projctl [ off/resol ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
* ) RESOLUTION="$1" ;;
esac
shift
done
if [[ "${RESOLUTION}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --off
else
echo "Using resolution: ${RESOLUTION}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --mode ${RESOLUTION}
fi
}
twinmon() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="LVDS1"
SECONDMON="VGA1"
MODE="on"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: twinmon [ off ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
"off" ) MODE="off" ;;
esac
shift
done
if [[ "${MODE}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --off
else
echo "Enable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --auto --left-of ${FIRSTMON}
fi
}

50
zsh/xrandr_t440 Normal file
View File

@ -0,0 +1,50 @@
# xrandr functions for ThinkPad T440
# functions to contorl xrandr
# EXAMPLE: projctl 1024x768
projctl() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="eDP1"
SECONDMON="DP2"
RESOLUTION="1600x900"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: projctl [ off/resol ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
* ) RESOLUTION="$1" ;;
esac
shift
done
if [[ "${RESOLUTION}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --off
else
echo "Using resolution: ${RESOLUTION}"
xrandr --output ${FIRSTMON} --mode ${RESOLUTION} --output ${SECONDMON} --mode ${RESOLUTION}
fi
xinput set-prop 10 137 $(get-coord-matrix.py)
}
twinmon() {
MONITORS="$(xrandr | grep connected | cut -d ' ' -f 1 | tr '\n' ' ')"
echo "Available monitors are: ${MONITORS}"
FIRSTMON="eDP1"
SECONDMON="DP2"
MODE="on"
until [ -z $1 ]; do
case "$1" in
"-h" | "--help" ) echo "Usage: twinmon [ off ] [ -o MON | --output MON ]" && return 0 ;;
"-o" | "--output" ) [ -z "$2" ] || SECONDMON="$2" && shift ;;
"off" ) MODE="off" ;;
esac
shift
done
if [[ "${MODE}" == "off" ]]; then
echo "Disable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --off
else
echo "Enable ${SECONDMON}"
xrandr --output ${FIRSTMON} --auto --primary --output ${SECONDMON} --auto --left-of ${FIRSTMON}
fi
xinput set-prop 10 137 $(get-coord-matrix.py)
}