2014-07-21 02:29:37 +02:00
|
|
|
autoload -U promptinit
|
|
|
|
|
promptinit
|
|
|
|
|
|
|
|
|
|
autoload -U colors
|
|
|
|
|
colors
|
|
|
|
|
|
|
|
|
|
autoload -U compinit
|
|
|
|
|
compinit
|
2014-09-30 19:55:51 +02:00
|
|
|
zstyle ':completion:*' menu select
|
|
|
|
|
setopt completealiases
|
|
|
|
|
|
|
|
|
|
#[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" history-beginning-search-backward
|
|
|
|
|
#[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" history-beginning-search-forward
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#DIRSTACKFILE="$HOME/.cache/zsh/dirs"
|
|
|
|
|
#if [[ -f $DIRSTACKFILE ]] && [[ $#dirstack -eq 0 ]]; then
|
|
|
|
|
# dirstack=( ${(f)"$(< $DIRSTACKFILE)"} )
|
|
|
|
|
# [[ -d $dirstack[1] ]] && cd $dirstack[1]
|
|
|
|
|
#fi
|
|
|
|
|
#chpwd() {
|
|
|
|
|
# print -l $PWD ${(u)dirstack} >$DIRSTACKFILE
|
|
|
|
|
#}
|
|
|
|
|
#
|
|
|
|
|
#DIRSTACKSIZE=20
|
|
|
|
|
#
|
|
|
|
|
#setopt autopushd pushdsilent pushdtohome
|
|
|
|
|
#
|
|
|
|
|
### Remove duplicate entries
|
|
|
|
|
#setopt pushdignoredups
|
|
|
|
|
#
|
|
|
|
|
### This reverts the +/- operators.
|
|
|
|
|
#setopt pushdminus
|
|
|
|
|
|
|
|
|
|
#source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
2014-07-21 02:29:37 +02:00
|
|
|
|
|
|
|
|
HISTSIZE=10000
|
|
|
|
|
SAVEHIST=10000
|
2014-06-14 00:26:03 +02:00
|
|
|
HISTFILE="$HOME/.zsh_history"
|
2013-09-14 14:35:23 +02:00
|
|
|
|
2013-09-20 15:23:40 +02:00
|
|
|
man() {
|
|
|
|
|
env LESS_TERMCAP_mb=$'\E[01;31m' \
|
|
|
|
|
LESS_TERMCAP_md=$'\E[01;38;5;74m' \
|
|
|
|
|
LESS_TERMCAP_me=$'\E[0m' \
|
|
|
|
|
LESS_TERMCAP_se=$'\E[0m' \
|
|
|
|
|
LESS_TERMCAP_so=$'\E[38;5;246m' \
|
|
|
|
|
LESS_TERMCAP_ue=$'\E[0m' \
|
|
|
|
|
LESS_TERMCAP_us=$'\E[04;38;5;146m' \
|
|
|
|
|
man "$@"
|
|
|
|
|
}
|
|
|
|
|
|
2014-06-14 00:26:03 +02:00
|
|
|
### VARIABLES
|
|
|
|
|
export EDITOR="vim"
|
|
|
|
|
export VISUAL="vim"
|
2014-09-30 19:55:51 +02:00
|
|
|
export PATH="$PATH:$HOME/bin"
|
|
|
|
|
export BROWSER="firefox"
|
|
|
|
|
|
2014-06-14 00:26:03 +02:00
|
|
|
|
|
|
|
|
### BOOKMARKS
|
|
|
|
|
bm() {
|
|
|
|
|
case "$1" in
|
|
|
|
|
dev)
|
|
|
|
|
cd "$HOME/development/projects"
|
|
|
|
|
;;
|
|
|
|
|
dot)
|
|
|
|
|
cd "$HOME/dotfiles"
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
echo "unknown target"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2014-04-26 18:47:24 +02:00
|
|
|
### SHELL OPTIONS
|
2014-06-14 00:26:03 +02:00
|
|
|
setopt EXTENDED_HISTORY
|
|
|
|
|
setopt HIST_EXPIRE_DUPS_FIRST
|
|
|
|
|
setopt HIST_VERIFY
|
|
|
|
|
setopt INC_APPEND_HISTORY
|
|
|
|
|
setopt SHARE_HISTORY
|
2014-04-26 18:47:24 +02:00
|
|
|
setopt AUTO_CD
|
|
|
|
|
setopt APPEND_HISTORY
|
|
|
|
|
setopt HIST_IGNORE_DUPS
|
|
|
|
|
setopt NOHIST_IGNORE_ALL_DUPS
|
|
|
|
|
setopt HIST_IGNORE_SPACE
|
|
|
|
|
setopt CORRECT
|
|
|
|
|
setopt RM_STAR_SILENT
|
|
|
|
|
setopt BG_NICE
|
|
|
|
|
setopt CHECK_JOBS
|
|
|
|
|
setopt HUP
|
|
|
|
|
setopt LONG_LIST_JOBS
|
|
|
|
|
|
2014-07-21 02:29:37 +02:00
|
|
|
bindkey -e
|
|
|
|
|
|
2014-04-26 18:47:24 +02:00
|
|
|
|
2014-09-30 19:55:51 +02:00
|
|
|
[[ $TERM == "urxvt" ]] && export TERM="rxvt-unicode"
|
|
|
|
|
[[ $TERM == "screen" ]] && export TERM="screen-256color"
|
2013-09-20 15:23:40 +02:00
|
|
|
|
2014-04-26 16:45:54 +02:00
|
|
|
### ALIASES
|
2014-06-14 00:26:03 +02:00
|
|
|
|
2014-04-17 19:36:39 +02:00
|
|
|
alias su="su -"
|
2014-04-26 16:45:54 +02:00
|
|
|
|
2014-09-30 19:55:51 +02:00
|
|
|
#LS_HIDE="*.py[co]"
|
2014-06-14 00:26:03 +02:00
|
|
|
|
|
|
|
|
# --dereference-command-line
|
2014-09-30 19:55:51 +02:00
|
|
|
alias ls="ls --group-directories-first --classify --color=auto" #--hide=\"$LS_HIDE\""
|
2014-06-14 00:26:03 +02:00
|
|
|
|
2014-09-30 19:55:51 +02:00
|
|
|
alias ll='ls -AlFh'
|
2014-04-26 16:45:54 +02:00
|
|
|
alias la='ls -A'
|
|
|
|
|
|
|
|
|
|
alias grep='grep --color=auto'
|
|
|
|
|
alias fgrep='fgrep --color=auto'
|
|
|
|
|
alias egrep='egrep --color=auto'
|
|
|
|
|
|
|
|
|
|
alias rm='rm -v'
|
|
|
|
|
alias cp='cp -v'
|
|
|
|
|
alias mv='mv -v'
|
|
|
|
|
alias ln='ln -v'
|
|
|
|
|
|
|
|
|
|
alias du='du -h'
|
|
|
|
|
alias df='df -h'
|
|
|
|
|
|
|
|
|
|
alias root='sudo -sE'
|
|
|
|
|
|
|
|
|
|
alias b='cd $OLDPWD'
|
|
|
|
|
|
|
|
|
|
alias cs="cryptsetup"
|
|
|
|
|
|
2014-08-28 17:46:16 +02:00
|
|
|
alias le_haxxor_1='clear && dmesg | pv -qL $[10 + (RANDOM % 10)]'
|
2014-04-26 16:45:54 +02:00
|
|
|
alias le_haxxor_2='clear && hexdump -C /dev/urandom | grep "1e 4c"'
|
|
|
|
|
|
|
|
|
|
alias YOLO="pacman -Syu --force"
|
|
|
|
|
|
|
|
|
|
alias such="git"
|
|
|
|
|
alias very="git"
|
|
|
|
|
alias much="git"
|
|
|
|
|
alias wow="git status"
|
|
|
|
|
|
2014-06-14 00:26:03 +02:00
|
|
|
alias v="vim"
|
2014-08-17 23:34:02 +02:00
|
|
|
alias g="git"
|
2014-06-14 00:26:03 +02:00
|
|
|
|
2014-07-29 02:11:38 +02:00
|
|
|
|
2014-07-21 02:29:37 +02:00
|
|
|
# rebase the current branch onto WTF ARE YOU DOING YOU ARE DRUNNK TO GO BED
|
|
|
|
|
##alias rebase="git rebase -i $(git branch --contains HEAD | grep -v '\*.*' | head -1)"
|
|
|
|
|
|
2014-06-14 00:26:03 +02:00
|
|
|
|
2014-04-26 16:45:54 +02:00
|
|
|
### FUNCTIONS
|
|
|
|
|
|
2014-07-29 02:11:38 +02:00
|
|
|
slideshow() {
|
|
|
|
|
delay=$1
|
|
|
|
|
[[ -z "$delay" ]] && { echo "wrong usage" ; return 1 ; }
|
|
|
|
|
shift
|
|
|
|
|
[[ -z "$@" ]] && { echo "wrong usage" ; return 1 ; }
|
|
|
|
|
feh --auto-zoom \
|
|
|
|
|
--randomize \
|
|
|
|
|
--recursive \
|
|
|
|
|
--scale-down \
|
|
|
|
|
--image-bg black \
|
|
|
|
|
--draw-filename \
|
|
|
|
|
--slideshow-delay=$delay \
|
|
|
|
|
"$@"
|
|
|
|
|
}
|
|
|
|
|
|
2014-08-17 23:34:02 +02:00
|
|
|
cd() {
|
2014-09-30 19:55:51 +02:00
|
|
|
builtin cd "$@" && ls
|
2014-07-21 02:29:37 +02:00
|
|
|
}
|
|
|
|
|
|
2014-08-17 23:34:02 +02:00
|
|
|
mount() {
|
2014-04-26 16:45:54 +02:00
|
|
|
if [[ $# == 0 ]] ; then
|
2014-08-19 13:49:19 +02:00
|
|
|
command mount | column -t
|
2014-04-26 16:45:54 +02:00
|
|
|
else
|
2014-08-19 13:49:19 +02:00
|
|
|
command mount "$@"
|
2014-04-26 16:45:54 +02:00
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ff() {
|
2014-08-17 23:34:02 +02:00
|
|
|
find . -type f -iname "*"$*"*" ;
|
2014-04-26 16:45:54 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ffcs() {
|
2014-08-17 23:34:02 +02:00
|
|
|
find . -type f -name "*"$*"*" ;
|
2014-04-26 16:45:54 +02:00
|
|
|
}
|
|
|
|
|
|
2014-08-17 23:34:02 +02:00
|
|
|
extr()
|
2014-04-26 16:45:54 +02:00
|
|
|
{
|
2014-08-17 23:34:02 +02:00
|
|
|
if [[ -f "$1" ]] ; then
|
|
|
|
|
case "$1" in
|
|
|
|
|
*.tar.bz2 ) tar xvjf "$1" ;;
|
|
|
|
|
*.tar.gz ) tar xvzf "$1" ;;
|
|
|
|
|
*.tar.xz ) tar xvJf "$1" ;;
|
|
|
|
|
*.bz2 ) bunzip2 "$1" ;;
|
|
|
|
|
*.rar ) unrar x "$1" ;;
|
|
|
|
|
*.gz ) gunzip "$1" ;;
|
|
|
|
|
*.tar ) tar xvf "$1" ;;
|
|
|
|
|
*.tbz2 ) tar xvjf "$1" ;;
|
|
|
|
|
*.tgz ) tar xvzf "$1" ;;
|
|
|
|
|
*.zip ) unzip "$1" ;;
|
|
|
|
|
*.Z ) uncompress "$1" ;;
|
|
|
|
|
*.7z ) 7z x "$1" ;;
|
|
|
|
|
*)
|
|
|
|
|
echo "$1 cannot be extracted via $0"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
else
|
|
|
|
|
echo "$1 is not a valid file"
|
|
|
|
|
fi
|
2014-04-26 16:45:54 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ruler() {
|
2014-08-17 23:34:02 +02:00
|
|
|
for s in '....^....|' '1234567890'; do
|
|
|
|
|
w=${#s}
|
|
|
|
|
str=$(for (( i=1; $i<=$(( ($COLUMNS + $w) / $w )) ; i=$i+1 )); do echo -n $s; done )
|
|
|
|
|
str=$(echo $str | cut -c -$COLUMNS)
|
|
|
|
|
echo $str
|
|
|
|
|
done
|
2014-04-26 16:45:54 +02:00
|
|
|
}
|
|
|
|
|
|
2014-06-14 00:26:03 +02:00
|
|
|
addext() {
|
|
|
|
|
[[ -z "$1" ]] || [[ -z "$2" ]] && { echo "Usage: $0 <file> <extension>" ; return }
|
|
|
|
|
mv "$1" "$1$2"
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2014-04-26 16:45:54 +02:00
|
|
|
ckwww() {
|
2014-08-17 23:34:02 +02:00
|
|
|
ping -c 3 www.google.com
|
2014-04-26 16:45:54 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
topcmds() {
|
2014-08-17 23:34:02 +02:00
|
|
|
history | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -nr | head
|
2014-04-26 16:45:54 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fnottype() {
|
2014-08-17 23:34:02 +02:00
|
|
|
find . -maxdepth 1 ! -type $1
|
2014-04-26 16:45:54 +02:00
|
|
|
}
|
|
|
|
|
|
2014-08-17 23:34:02 +02:00
|
|
|
http() {
|
2014-06-14 00:26:03 +02:00
|
|
|
curl http://httpcode.info/$1
|
|
|
|
|
}
|
2014-08-17 23:34:02 +02:00
|
|
|
|
|
|
|
|
bak() {
|
2014-08-19 13:49:19 +02:00
|
|
|
[[ -e "$1" ]] && cp -av "$1" "$1.bak"
|
2014-08-17 23:34:02 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fstab() {
|
|
|
|
|
# yeah
|
|
|
|
|
expand /etc/fstab | grep -v '^#' | grep -P '^.+$' | tr -s ' ' | tr ' ' '|' | cat <(grep -P '<.+>' /etc/fstab | cut -f 2- -d ' ' | sed 's/>[^<]*</>|</g') - | column -ts '|'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rmext() {
|
|
|
|
|
[[ -e "$1" ]] && mv -i "$1" "${1%.*}"
|
|
|
|
|
}
|
2014-08-19 13:49:19 +02:00
|
|
|
|
|
|
|
|
serve() {
|
|
|
|
|
python3 -m http.server 8800
|
|
|
|
|
}
|
2014-09-30 19:55:51 +02:00
|
|
|
|
|
|
|
|
manpdf() {
|
|
|
|
|
[[ -z "$1" ]] && { echo >&2 "$(man)" ; exit 1 ; }
|
|
|
|
|
man -t "$1" | ps2pdf - - | zathura -
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
myip4() {
|
|
|
|
|
curl "http://ipv4.icanhazip.com"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
myip6() {
|
|
|
|
|
curl "http://ipv6.icanhazip.com" 1>/dev/null 2>&1 || echo "no ip6"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
alias myip="myip4"
|
|
|
|
|
|
|
|
|
|
alias clip="xclip -selection clipboard"
|
|
|
|
|
alias clipo="xclip -out -selection clipboard"
|
|
|
|
|
|
|
|
|
|
alias tmux="tmux -2"
|
|
|
|
|
|
|
|
|
|
alias tm="tmux"
|
|
|
|
|
alias tml="tmux list-sessions"
|
|
|
|
|
alias tma="tmux attach-session"
|
|
|
|
|
alias tmc="tmux switch-client -t"
|
|
|
|
|
|
|
|
|
|
#echo $(date +%T) >> $HOME/tmux-debug.log
|
|
|
|
|
#[[ $- != *i* ]] && return
|
|
|
|
|
#[[ -z "$TMUX" ]] && exec tmux -2
|
|
|
|
|
|
|
|
|
|
alias note="zim --plugin quicknote --notebook ~/wiki/zim/notes --page ":quicknotes" --append true"
|
|
|
|
|
|
|
|
|
|
alias spm="sudo pacman"s
|
|
|
|
|
|
|
|
|
|
alias chmod="chmod -c"
|
|
|
|
|
alias chown="chown -c"
|
|
|
|
|
|
|
|
|
|
alias rgrep="grep -r"
|
|
|
|
|
|
|
|
|
|
autoload -Uz vcs_info
|
|
|
|
|
zstyle ':vcs_info:*' enable git hg
|
|
|
|
|
zstyle ':vcs_info:*' check-for-changes true
|
|
|
|
|
zstyle ':vcs_info:git*' formats "%{${fg[cyan]}%}[%{${fg[green]}%}%s%{${fg[cyan]}%}][%{${fg[blue]}%}%r/%S%%{${fg[cyan]}%}][%{${fg[blue]}%}%b%{${fg[yellow]}%}%m%u%c%{${fg[cyan]}%}]%{$reset_color%}"
|
|
|
|
|
|
|
|
|
|
setprompt() {
|
|
|
|
|
setopt prompt_subst
|
|
|
|
|
|
|
|
|
|
if [[ -n "$SSH_CLIENT" ]]; then
|
|
|
|
|
SSHINFO="[ssh] "
|
|
|
|
|
else
|
|
|
|
|
SSHINFO=""
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# if git status ; then
|
|
|
|
|
# GITINFO=" <git repo>"
|
|
|
|
|
# else
|
|
|
|
|
# GITINFO=""
|
|
|
|
|
# fi
|
|
|
|
|
|
|
|
|
|
PROMPT="%{$fg[white]%}┌─ %{$fg[green]%}%n@%M%{$fg[white]%} ─ %{$fg[cyan]%}%*%{$fg[white]%} ─ %{%B$fg[yellow]%}%~${vcs_info_msg_0_}%{%b%}
|
|
|
|
|
%{$fg[white]%}└─ %B${PINFO}%#%b "
|
|
|
|
|
RPROMPT=""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setprompt
|
|
|
|
|
|
|
|
|
|
gensshport() {
|
|
|
|
|
echo $(( $(od -v -An -N4 -tu4 < /dev/urandom) % (2**16-2**10) + 2**10 ))
|
|
|
|
|
}
|