export LANG=en_US.UTF-8 # Start keychain only on my personal system if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then SESSION_TYPE=ssh else eval `keychain --eval --agents ssh id_rsa` fi # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi source ~/.p10k/powerlevel10k.zsh-theme # Print user@host into title so terminal tabs are correct # Despite being called precmd() this executes after process exits, before prompt precmd() { echo -ne "\033]0;${USER}@${HOST}\007" } # These are pretty safe to assume exist export PATH=~/bin:$PATH export EDITOR=vim export VISUAL=$EDITOR # QT theme via qt5ct app export QT_QPA_PLATFORMTHEME=qt5ct # most does not exist on every system I touch if [[ -a /usr/bin/most ]]; then export PAGER=most fi # Key binds bindkey "^[[H" beginning-of-line # HOME bindkey "^[[F" end-of-line # END bindkey "^[[3~" delete-char # DEL bindkey '^R' history-incremental-search-backward # OS-specific directives case "$OSTYPE" in darwin*) alias ls='ls -G' ;; linux*) alias ls='ls --color=auto' alias diff='diff --color=auto' ;; esac # Global aliases alias ct="clear && task" alias tt="taskwarrior-tui" alias grep='grep -EIs --color=auto --exclude-dir=.git' alias highlight='highlight --out-format=xterm256 --style=base16' HISTFILE=~/.zsh_history HISTSIZE=10000 SAVEHIST=10000 setopt appendhistory # Case-insensetive tab completion zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh