247 lines
5.4 KiB
Bash
247 lines
5.4 KiB
Bash
export XDG_CONFIG_HOME="$HOME/.config"
|
|
export XDG_CACHE_HOME="$HOME/.cache"
|
|
export XDG_DATA_HOME="$HOME/.local/share"
|
|
export EDITOR="vim"
|
|
export VIMINIT="source $XDG_CONFIG_HOME/vim/vimrc"
|
|
export PAGER="less"
|
|
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'
|
|
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
|
LISTMAX=32768
|
|
WORDCHARS="*?[];!#~"
|
|
local grep=""
|
|
local grep_color="auto"
|
|
local ls=""
|
|
local ls_color="auto"
|
|
local ls_on_cd="yes"
|
|
local ls_on_init="no"
|
|
local simple_prompt="no"
|
|
|
|
bindkey -v
|
|
# history-incremental-search-backward is much more useful than
|
|
# _history-complete-*
|
|
bindkey "^R" history-incremental-search-backward
|
|
# Add a few other emacs bindings for convenience, as it's sometimes quicker to
|
|
# use those than to switch between modes.
|
|
bindkey "^A" beginning-of-line
|
|
bindkey "^E" end-of-line
|
|
bindkey "^D" delete-char-or-list
|
|
# backward-kill-word behaves more like vim, whereas vi-backward-kill-word is
|
|
# the vi behaviour.
|
|
bindkey "^W" backward-kill-word
|
|
|
|
setopt no_bg_nice
|
|
setopt no_nomatch
|
|
setopt extended_glob
|
|
setopt autocd
|
|
setopt auto_pushd
|
|
|
|
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
|
|
: ${grep:=$(__find_command ggrep grep)}
|
|
[ -n "$grep_color" -a "$grep_color[1]" != - ] &&
|
|
grep_color="--color=$grep_color"
|
|
alias grep="$grep $grep_color"
|
|
fi
|
|
alias fgrep="grep -F"
|
|
|
|
if [ -n "$ls" -o -n "$ls_color" ]; then
|
|
: ${ls:=$(__find_command gls ls)}
|
|
[ -n "$ls_color" -a "$ls_color[1]" != - ] &&
|
|
ls_color="--color=$ls_color"
|
|
alias ls="$ls $ls_color"
|
|
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
|
|
|
|
if [ "$simple_prompt" = yes ]; then
|
|
set_prompt() {
|
|
local branch
|
|
[ -n "$1" ] && branch="%F{black}%B(%b%F{cyan}$1%F{black}%B)%b%f"
|
|
|
|
PS1="%m:%c$branch%B%(!.#.$)%b "
|
|
PS2="%B>%b "
|
|
RPS1="%(1j.%F{yellow}%j%f.)%(?..%(1j. .)%F{red}%?%f)"
|
|
RPS2="%(1_.%F{black}%B(%_%)%b%f.)"
|
|
}
|
|
else
|
|
set_prompt() {
|
|
local branch
|
|
[ -n "$1" ] && branch="%F{36}(%F{78}$1%F{36})"
|
|
|
|
PS1="%F{23}%m %F{29}%c$branch%F{36}%(!.#.>)%f "
|
|
PS2="%B>%b "
|
|
RPS1="%(1j.%F{yellow}%j%f.)%(?..%(1j. .)%F{red}%?%f)"
|
|
RPS2="%(1_.%F{black}%B(%_%)%b%f.)"
|
|
}
|
|
fi
|
|
set_prompt
|
|
|
|
__precmd() {
|
|
__update_terminal_cwd
|
|
|
|
local branch=""
|
|
local fossil_branch=$(fossil branch current 2>/dev/null)
|
|
if [ -n "$fossil_branch" ]; then
|
|
branch="$branch${branch:+ }f:$fossil_branch"
|
|
fi
|
|
|
|
|
|
local git_branch=$(git symbolic-ref HEAD 2>/dev/null)
|
|
git_branch=${git_branch##refs/heads/}
|
|
if [ -n "$git_branch" ]; then
|
|
branch="$branch${branch:+ }g:$git_branch"
|
|
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 }
|
|
print -Pn "\e]0;$@\a"
|
|
}
|
|
|
|
unset_title() {
|
|
precmd() {
|
|
print -Pn "\e]0;%c · %m\a"
|
|
__precmd
|
|
}
|
|
}
|
|
unset_title
|
|
;;
|
|
*)
|
|
precmd() { __precmd }
|
|
;;
|
|
esac
|
|
|
|
extr() {
|
|
for i in $@; do
|
|
case $i in
|
|
*.7z)
|
|
7za x $i
|
|
;;
|
|
*.lha)
|
|
ofarc -x $i
|
|
;;
|
|
*.tar)
|
|
ofarc -x $i
|
|
;;
|
|
*.tbz | *.tbz2 | *.tar.bz2)
|
|
bzcat $i | ofarc -ttar -x -
|
|
;;
|
|
*.tgz | *.tar.gz)
|
|
ofarc -x $i
|
|
;;
|
|
*.txz | *.tar.xz)
|
|
xzcat $i | ofarc -ttar -x -
|
|
;;
|
|
*.rar)
|
|
unrar x $i
|
|
;;
|
|
*.zip)
|
|
ofarc -x $i
|
|
;;
|
|
# These have to be the last for obvious reasons
|
|
*.bz2)
|
|
bunzip2 $i
|
|
;;
|
|
*.gz)
|
|
ofarc -x $i
|
|
;;
|
|
*.xz)
|
|
unxz $i
|
|
;;
|
|
*)
|
|
echo "$i: Unknown file type"
|
|
false
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
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
|
|
which gpg2 &>/dev/null && alias gpg=gpg2
|
|
|
|
make() {
|
|
case "$PWD" in
|
|
# pkgsrc needs bmake and does not like MAKEFLAGS including -j.
|
|
*/pkgsrc*)
|
|
MAKEFLAGS= =$(__find_command bmake make) $@
|
|
;;
|
|
*)
|
|
=make $@
|
|
;;
|
|
esac
|
|
}
|
|
|
|
alias tmux="tmux -f $XDG_CONFIG_HOME/tmux/tmux.conf"
|
|
|
|
if which fossil &>/dev/null; then
|
|
alias fsl="fossil"
|
|
|
|
fsld() {
|
|
fossil diff "$@" | colordiff | less -FRX
|
|
}
|
|
fi
|
|
|
|
# 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"
|
|
|
|
# mpv does not like locales that use , as decimal point.
|
|
alias mpv="LC_ALL=C mpv"
|
|
|
|
alias gpg-ssh="SSH_AUTH_SOCK=$GNUPGHOME/S.gpg-agent.ssh ssh"
|
|
alias gpg-ssh-add="SSH_AUTH_SOCK=$GNUPGHOME/S.gpg-agent.ssh ssh-add"
|
|
alias gpg-sftp="SSH_AUTH_SOCK=$GNUPGHOME/S.gpg-agent.ssh sftp"
|
|
|
|
pwnk() {
|
|
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
|
|
|
|
cryptopassphrase $@ | tr -d '\n' | $clipboard
|
|
}
|
|
alias pw="pwnk -k ~/.cryptopassphrase.key"
|
|
alias pws="pwnk -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 simple_prompt
|
|
unset HISTFILE
|