dotfiles/.zshrc

74 lines
2 KiB
Bash

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 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 -w"
fi
# 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
# 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
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