@@ -3,11 +3,10 @@ export LS_COLORS='di=34:ow=44;37:tw=44;37:st=44;37:ex=31:su=7;31:sg=7;31:ln=33:or=7;33:pi=32:do=32:bd=35:cd=35:so=32:*.bz2=36:*.dmg=36:*.gz=36:*.gpg=36:*.rar=36:*.tar=36:*.tbz2=36:*.tgz=36:*.xz=36:*.zip=36:*.orig=90:*~=90' LISTMAX=32768 WORDCHARS="*?[];!#~" local grep="" local grep_color="auto" -local fgrep="" local ls="" local ls_color="auto" local ls_on_cd="yes" local ls_on_init="no" @@ -33,64 +32,42 @@ autoload -U compinit compinit -C # Ignore case on completion zstyle ':completion:*' matcher-list 'm:{A-Z}={a-z} m:{a-z}={A-Z}' + +__find_command() { + which "$1" &>/dev/null && echo "$1" || echo "$2" +} if [ -n "$grep" -o -n "$grep_color" ]; then - if [ -z "$grep" ]; then - if which ggrep &>/dev/null; then - grep="ggrep" - else - grep="grep" - fi - fi - [ -n "$grep_color" -a "$grep_color[1]" != "-" ] && \ + : ${grep:=$(__find_command ggrep grep)} + [ -n "$grep_color" -a "$grep_color[1]" != - ] && grep_color="--color=$grep_color" alias grep="$grep $grep_color" fi - -if [ -n "$fgrep" -o -n "$grep_color" ]; then - if [ -z "$fgrep" ]; then - if which ggrep &>/dev/null; then - fgrep="ggrep -F" - else - fgrep="fgrep" - fi - fi - [ -n "$grep_color" -a "$grep_color[1]" != "-" ] && \ - grep_color="--color=$grep_color" - alias fgrep="$fgrep $grep_color" -fi +alias fgrep="grep -F" if [ -n "$ls" -o -n "$ls_color" ]; then - if [ -z "$ls" ]; then - if which gls &>/dev/null; then - ls="gls" - else - ls="ls" - fi - fi - [ -n "$ls_color" -a "$ls_color[1]" != "-" ] && \ + : ${ls:=$(__find_command gls ls)} + [ -n "$ls_color" -a "$ls_color[1]" != - ] && ls_color="--color=$ls_color" alias ls="$ls $ls_color" fi - -if [ "$ls_on_cd" = "yes" ]; then - chpwd() { - ls - } -fi - -if [ "$TERM_PROGRAM" = "Apple_Terminal" ]; then - update_terminal_cwd() { - printf '\e]7;%s\a' "file://$HOSTNAME${PWD// /%20}" - } -else - update_terminal_cwd() { - } -fi +[ "$ls_on_cd" = yes ] && chpwd() { ls } +[ "$ls_on_init" = yes ] && ls + +case $TERM_PROGRAM in + Apple_Terminal) + __update_terminal_cwd() { + printf '\e]7;%s\a' "file://$HOSTNAME${PWD// /%20}" + } + ;; + *) + __update_terminal_cwd() {} + ;; +esac set_prompt() { PS1="%m:%c$@%B%(!.#.$)%b " PS2="%B>%b " RPS1="%(1j.%{$(print "\e[1;33m")%}%j%{$(print "\e[0m")%}.)" @@ -97,52 +74,43 @@ RPS1+="%(?..%(1j. .)%{$(print "\e[1;31m")%}%?%{$(print "\e[0m")%})" RPS2="%(1_.%{$(print "\e[1;30m")%}(%_%)%{$(print "\e[0m")%}.)" } set_prompt -_precmd() { +__precmd() { update_terminal_cwd - local branch_name - branch_name="$(git symbolic-ref HEAD 2>/dev/null)" - branch_name="${branch_name##refs/heads/}" - if [ -n "$branch_name" -a "$branch_name" != "master" ]; then - local branch - branch="%{$(print "\e[1;30m")%}(" + local branch_name=$(git symbolic-ref HEAD 2>/dev/null) + branch_name=${branch_name##refs/heads/} + if [ -n "$branch_name" -a "$branch_name" != master ]; then + local branch="%{$(print "\e[1;30m")%}(" branch+="%{$(print "\e[0;36m")%}$branch_name" branch+="%{$(print "\e[1;30m")%})%{$(print "\e[0m")%}" - set_prompt "$branch" - else - set_prompt fi + set_prompt $branch } case $TERM in aterm|Eterm|rxvt*|uxterm*|xterm*) - # Use set_title if you want to change the term title set_title() { # Without this, precmd would override it - precmd() { - _precmd - } + precmd() { __precmd } print -Pn "\e]0;$@\a" } unset_title() { precmd() { print -Pn "\e]0;%m:%c\a" - _precmd + __precmd } } unset_title ;; *) - precmd() { - _precmd - } + precmd() { __precmd } ;; esac extr() { for i in $@; do @@ -161,11 +129,11 @@ ;; *.tgz | *.tar.gz) ofarc -x $i ;; *.txz | *.tar.xz) - xzcat $i | tar xfv - + xzcat $i | ofarc -ttar -x - ;; *.rar) unrar x $i ;; *.zip) @@ -191,16 +159,51 @@ for ext in 7z lha tar tbz tbz2 tar.bz2 tgz tar.gz txz tar.xz rar zip bz2 gz xz do alias -s "$ext=extr" done -[ "$EDITOR" = "vim" ] && alias vi=vim +[ "$EDITOR" = vim ] && alias vi=vim which gpg2 &>/dev/null && alias gpg=gpg2 -[ "$ls_on_init" = "yes" ] && ls +make() { + case "$PWD" in + # pkgsrc needs bmake and does not like MAKEFLAGS including -j. + */pkgsrc | */pkgsrc/*) + MAKEFLAGS= =$(__find_command bmake make) $@ + ;; + *) + =make $@ + ;; + esac +} + +# pkgsrc does not like MAKEFLAGS including -j +which pkg_chk &>/dev/null && alias pkg_chk="MAKEFLAGS= pkg_chk" +which pkg_rolling-replace &>/dev/null && + alias pkg_rolling-replace="MAKEFLAGS= pkg_rolling-replace" +which url2pkg &>/dev/null && alias url2pkg="MAKEFLAGS= url2pkg" + +alias gpg-ssh="SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh ssh" +alias gpg-ssh-add="SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh ssh-add" +alias gpg-sftp="SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh sftp" + +__pw() { + local clipboard + if which pbcopy &>/dev/null; then + clipboard=pbcopy + elif which xclip &>/dev/null; then + clipboard=xclip + else + echo "No clipboard handler found!" + return 1 + fi -function ixio() { - curl -F 'f:1=<-' ix.io + cryptopassphrase $@ | tr -d '\n' | $clipboard } +alias pw="__pw -k ~/.cryptopassphrase.key" +alias pws="__pw -k ~/.cryptopassphrase-server.key" + +ixio() { curl -F 'f:1=<-' ix.io } +0x0st() { curl -F'file=@-' https://0x0.st } unset fgrep grep grep_color ls ls_color ls_on_cd ls_on_init unset HISTFILE