Switch to dotbot

This commit is contained in:
2017-08-26 10:56:11 +02:00
parent 7c4f9c28d0
commit 4faeb99007
30 changed files with 73 additions and 158 deletions

View File

@@ -0,0 +1,43 @@
setopt EXTENDED_HISTORY
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_VERIFY
setopt INC_APPEND_HISTORY
setopt SHARE_HISTORY
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
bindkey -e
autoload -U promptinit
promptinit
autoload -U colors
colors
autoload -U compinit
compinit
zstyle ':completion:*' menu select
setopt completealiases
autoload -U edit-command-line
zle -N edit-command-line
bindkey '^xe' edit-command-line
bindkey '^x^e' edit-command-line
HISTSIZE=10000
SAVEHIST=10000
HISTFILE="$HOME/.zsh_history"
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%}"

69
zsh/zshrc.d/20_aliases.sh Normal file
View File

@@ -0,0 +1,69 @@
### TRANSLATIONS
alias vim="vim -u $VIMRC"
alias urxvt="urxvt256c"
### COMMON OPERATIONS
alias ll='ls -AlFh'
alias la='ls -A'
alias spm="sudo pacman"
alias tml="tmux list-sessions"
alias tma="tmux ls 2>/dev/null && tmux attach-session || tmux"
alias tmn="tmux new-session -A -s"
alias clip="xclip -selection clipboard"
alias clipo="xclip -out -selection clipboard"
alias rgrep="grep -r"
alias vimrc="vim -c ':e \$MYVIMRC'"
alias zshrc="vim -c ':e ~/.zshrc' ; source ~/.zshrc"
alias calc='python3 -ic "from math import *; import cmath"'
alias le_haxxor_1='clear && dmesg | pv -qL 20'
alias le_haxxor_2='clear && hexdump -C /dev/urandom | pv -qlL 2'
alias b='cd $OLDPWD'
alias root='sudo -sE'
### USEFUL DEFAULT OPTIONS
alias tmux="tmux -2"
alias chmod="chmod -c"
alias chown="chown -c"
alias ls="ls --group-directories-first --classify --color=auto"
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias rm='rm -v'
alias cp='cp -vi'
alias mv='mv -vi'
alias ln='ln -v'
alias du='du -h'
alias df='df -h'
# show non-printable characters by default
alias cat="cat -v"
### SHORTENING COMMAND NAMES
alias cs="cryptsetup"
alias v="vim"
alias g="git"
alias t="tmux"
alias c="cd"
alias l="ls"
alias s="sudo"
alias t="tmux"
alias cl="clear"
alias nocolor="sed -r \"s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g\""
alias ip="ip -color"

View File

145
zsh/zshrc.d/40_functions.sh Normal file
View File

@@ -0,0 +1,145 @@
_remote() {
[[ -n "$SSH_CONNECTION" ]]
}
cd() {
builtin cd "$@" && ls
}
mount() {
if [[ $# == 0 ]] ; then
command mount | column -t
else
command mount "$@"
fi
}
extr()
{
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
}
ruler() {
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
}
addext() {
[[ -z "$1" ]] || [[ -z "$2" ]] && { echo "Usage: $0 <file> <extension>" ; return }
mv "$1" "$1$2"
}
rmext() {
[[ -e "$1" ]] && mv -i "$1" "${1%.*}"
}
ckwww() {
ping -c 3 www.google.com
}
httpcode() {
curl http://httpcode.info/$1
}
bak() {
if ! [[ "$1" ]] ; then
printf '%s\n' "usage: $0 FILE"
return 1
fi
if ! [[ -e "$1" ]] ; then
printf '%s\n' "\"$1\" not found"
return 1
fi
name="$1.$(date +%Y%m%d%H%M%S.bak)"
if [[ -e "${name}" ]] ; then
printf '%s\n' "Backup file \"$name\" already exists"
return 1
fi
cp --archive --verbose --no-clobber "$1" "${name}"
}
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 '|'
}
serve() {
python3 -m http.server 8800
}
manpdf() {
[[ -z "$1" ]] && { printf '%s' >&2 "$(man)" ; return ; }
man -t "$1" | ps2pdf - - | zathura -
}
myip4() {
curl "http://ipv4.icanhazip.com"
}
myip6() {
curl "http://ipv6.icanhazip.com" 2>/dev/null || echo "no ip6"
}
diffdir() {
[[ "$1" ]] && [[ "$2" ]] || { echo "$0 <dir1> <dir2>" ; return 1 ; }
diff <(cd "$1" && find -type f -exec md5sum {} \;) <(cd "$2" && find -type f -exec md5sum {} \;)
}
diffdir2() {
[[ "$1" ]] && [[ "$2" ]] || { echo "$0 <dir1> <dir2>" ; return 1 ; }
comm -13 <(cd "$1" && find -type f | sort -g) <(cd "$2" && find -type f | sort -g)
}
bm() {
case "$1" in
dev)
cd "$HOME/development/projects"
;;
dot)
cd "$HOME/dotfiles"
;;
*)
echo "unknown target"
;;
esac
}
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 "$@"
}
embiggen() {
enscript --no-header --media=A4 --landscape --font="DejaVuSansMono30" -o - | ps2pdf - | zathura -
}

62
zsh/zshrc.d/50_prompt.sh Normal file
View File

@@ -0,0 +1,62 @@
autoload -Uz vcs_info
_vcsbase="%{$fg[red]%}[%r] %{$fg[blue]%}[%{%B%}%b%{$fg[red]%}%m%{$fg[blue]%}] %{$fg[red]%}%{%B%}%c%u"
zstyle ':vcs_info:*' stagedstr 'I'
zstyle ':vcs_info:*' unstagedstr 'M'
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' get-revision true
zstyle ':vcs_info:git*' formats "$_vcsbase"
zstyle ':vcs_info:git*' actionformats "%{$fg[red]%}(%a) $_vcsbase"
zstyle ':vcs_info:git*+set-message:*' hooks git-untracked git-st git-remotebranch
+vi-git-untracked() {
if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == 'true' ]] && \
[[ $(git ls-files --other --directory --exclude-standard | sed q | wc -l | tr -d ' ') == 1 ]] ; then
hook_com[unstaged]+='?%f'
fi
}
+vi-git-st() {
local ahead behind
local -a gitstatus
ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
(( $ahead )) && gitstatus+=( "+${ahead}" )
behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
(( $behind )) && gitstatus+=( "-${behind}" )
hook_com[misc]+=${(j:/:)gitstatus}
}
+vi-git-remotebranch() {
local remote
remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} \
--symbolic-full-name 2>/dev/null)/refs\/remotes\/}
if [[ -n ${remote} ]] ; then
hook_com[branch]="${hook_com[branch]} %b%{$fg[magenta]%}<${remote}>"
fi
}
precmd() {
vcs_info
}
_topstr='%{$fg[green]%}%n@%m%{$fg[white]%} ─ %{%B$fg[yellow]%}%~%{%b%} ${vcs_info_msg_0_}%{$fg[white]%} '
botstr='%B${PINFO}%#%b '
if _remote ; then
_topstr="%{$fg[red]%}[remote]%{$fg[white]%} ${_topstr}"
fi
setopt prompt_subst
PROMPT='%{$fg[white]%}┌─ '"${_topstr}"'
└─ '"${botstr}"
RPROMPT="%{$fg[cyan]%}%*%{$fg[white]%} ─ [%?]"

View File

@@ -0,0 +1,26 @@
autoload zkbd
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[5~" beginning-of-history
bindkey "\e[6~" end-of-history
bindkey "\e[3~" delete-char
bindkey "\e[2~" quoted-insert
bindkey "\e[5C" forward-word
bindkey "\eOc" emacs-forward-word
bindkey "\e[5D" backward-word
bindkey "\eOd" emacs-backward-word
bindkey "\ee[C" forward-word
bindkey "\ee[D" backward-word
bindkey "^H" backward-delete-word
# for rxvt
bindkey "\e[8~" end-of-line
bindkey "\e[7~" beginning-of-line
# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line
# for freebsd console
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
# completion in the middle of a line
bindkey '^i' expand-or-complete-prefix

View File

@@ -0,0 +1 @@
gpg-connect-agent updatestartuptty /bye >/dev/null