# 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 # Archlinux packages p10k but nothing else does, so we have to check where p10k is if [[ -a /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme ]]; then source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme else source ~/.p10k/powerlevel10k.zsh-theme fi # 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" } # Generic navigation keybinds bindkey "^[[H" beginning-of-line # HOME bindkey "^[[F" end-of-line # END bindkey "^[[3~" delete-char # DEL bindkey '^R' history-incremental-search-backward # Global aliases alias ct="clear && task" alias grep='grep -EIs --color=auto --exclude-dir=.git' # Use exa if we have it if [ -e /usr/bin/exa ]; then alias ls=exa fi setopt appendhistory # Case-insensetive tab completion autoload -Uz compinit && compinit zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' # Edit long command lines in vim with ^x^e autoload -U edit-command-line zle -N edit-command-line bindkey '^x^e' edit-command-line # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh