140 lines
2.7 KiB
Bash
Executable file
140 lines
2.7 KiB
Bash
Executable file
#!/bin/zsh
|
|
HISTSIZE=10000
|
|
SAVEHIST=10000
|
|
HISTFILE=~/.histfile
|
|
|
|
gpg-connect-agent updatestartuptty /bye &> /dev/null
|
|
export GPG_TTY=$(tty)
|
|
SSH_AUTH_SOCK="/run/user/$(id -u)/gnupg/S.gpg-agent.ssh"
|
|
export SSH_AUTH_SOCK
|
|
gpgconf --launch gpg-agent
|
|
|
|
setopt extendedglob
|
|
bindkey -e
|
|
tabs 4
|
|
|
|
autoload -U compinit
|
|
compinit
|
|
|
|
autoload -U up-line-or-beginning-search
|
|
autoload -U down-line-or-beginning-search
|
|
zle -N up-line-or-beginning-search
|
|
zle -N down-line-or-beginning-search
|
|
bindkey "^[[A" up-line-or-beginning-search
|
|
bindkey "^[[B" down-line-or-beginning-search
|
|
|
|
bindkey "^[[1;5C" forward-word
|
|
bindkey "^[[1;5D" backward-word
|
|
|
|
autoload -U colors && colors
|
|
setopt promptsubst
|
|
|
|
man() {
|
|
env \
|
|
LESS_TERMCAP_md=$'\e[1;36m' \
|
|
LESS_TERMCAP_me=$'\e[0m' \
|
|
LESS_TERMCAP_se=$'\e[0m' \
|
|
LESS_TERMCAP_so=$'\e[1;92m' \
|
|
LESS_TERMCAP_ue=$'\e[0m' \
|
|
LESS_TERMCAP_us=$'\e[1;35m' \
|
|
man "$@"
|
|
}
|
|
|
|
#
|
|
# Plugins
|
|
#
|
|
|
|
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
|
|
#
|
|
# Prompt
|
|
#
|
|
|
|
function prompt_char {
|
|
if [ $UID -eq 0 ]; then echo "#"; else echo "$"; fi
|
|
}
|
|
|
|
function git_prompt_info() {
|
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
|
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
|
}
|
|
|
|
PROMPT='%(!.%F{9}.%F{10})%n: %F{15}%c%F{12}$(git_prompt_info)%F{12}$(prompt_char)%F{15} '
|
|
PROMPT2='%_%F{12}:%F{15} '
|
|
ZSH_THEME_GIT_PROMPT_PREFIX="%F{13} ["
|
|
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}"
|
|
RPROMPT='[%(?.%F{10}.%F{9})%?%F{15}]'
|
|
|
|
#
|
|
# Window title
|
|
#
|
|
function precmd () {
|
|
printf "\e]0;%s\a" "$(basename "$PWD")$ zsh"
|
|
}
|
|
function preexec () {
|
|
printf "\e]0;%s\a" "$(basename "$PWD")$ $1"
|
|
}
|
|
|
|
#
|
|
# Aliases
|
|
#
|
|
|
|
alias ..="cd .."
|
|
alias ~="cd ~"
|
|
|
|
# Confirm before copy
|
|
alias cp="cp -i"
|
|
|
|
# add color
|
|
alias ccat='highlight --out-format=ansi'
|
|
|
|
# shorten commands
|
|
LSARGS='-h --color=auto --group-directories-first'
|
|
alias ls="ls $LSARGS"
|
|
alias ll="ls -l $LSARGS"
|
|
alias lla="ls -lA $LSARGS"
|
|
alias mkd='mkdir -pv'
|
|
|
|
# shortcuts
|
|
alias ..='cd ..'
|
|
|
|
# pacman tools
|
|
alias sp='sudo pacman'
|
|
|
|
# shorten python
|
|
alias py='python'
|
|
|
|
# restart shell without open/close
|
|
alias reloadsh='exec $SHELL'
|
|
|
|
# print the time in different formats
|
|
alias timestamp='date +"%Y-%m-%dT%H.%M.%S"'
|
|
|
|
# git commands
|
|
alias git-pullall="ls | xargs -I{} git -C {} pull"
|
|
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
|
|
|
|
# youtube-dl
|
|
alias ytdl="youtube-dl -f bestvideo+bestaudio"
|
|
alias ytdl-a="youtube-dl --extract-audio --audio-format=mp3"
|
|
|
|
# ssh tunneling
|
|
alias ssht="ssh -D 1080"
|
|
|
|
alias irc="ssh -t apiaceae tmux attach -t weechat"
|
|
|
|
alias e="emacs -nw"
|
|
|
|
#
|
|
# Todo
|
|
#
|
|
|
|
todomsg=$(todo)
|
|
[ "$todomsg" != "" ] && printf "TODO: \n%s\n" "$todomsg"
|
|
return 0
|
|
|
|
|
|
|
|
# Load Angular CLI autocompletion.
|
|
source <(ng completion script)
|