dotfiles/dot_config/zsh/dot_zshrc

103 lines
3.3 KiB
Plaintext

### This configuration makes zsh fully "XDG compliant". One change is needed to
### /etc/zsh/zshenv (or equivalent upstream profile):
### `export ZDOTDIR="$HOME"/.config/zsh`
#
# Lines configured by zsh-newuser-install
export HISTFILE="$XDG_STATE_HOME"/zsh/history
mkdir -p "$(dirname "$HISTFILE")"
HISTSIZE=100000
SAVEHIST=100000
setopt autocd
unsetopt beep
bindkey -v
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename "$ZDOTDIR/.zshrc"
autoload -Uz compinit
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
# End of lines added by compinstall
### User configuration
# for shell integration
precmd() {
print -Pn "\e]133;A\e\\"
}
# prompt configuration
autoload -Uz vcs_info
precmd_vcs_info () { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
zstyle ':vcs_info:*' formats ' %F{green}%b'
PROMPT='%F{yellow}%n@%m %F{white}%1~%(?.. %?) $ '
RPROMPT='%f$vcs_info_msg_0_ '
alias boinctui='boinctui --boinchost=localhost'
alias bt='bluetoothctl'
alias c='clear'
alias daybreak='mosh daybreak -p 60101'
alias epoch='mosh epoch -p 60104'
alias grc='gridcoinresearchd'
alias l='eza -lh --all --octal-permissions'
alias less='less -r'
alias ls='eza'
alias lsa='eza -a'
alias lss='eza -a'
alias vim='nvim'
alias wake_circadian='ssh epoch wol a8:a1:59:11:06:f1'
alias xrm='sudo xbps-remove'
if [[ -n "$WSL_DISTRO_NAME" ]]; then
alias adb='adb.exe'
alias choco='choco.exe'
alias fastboot='fastboot.exe'
alias gsudo='gsudo.exe'
alias pwsh='pwsh.exe'
alias usbipd='usbipd.exe'
fi
# GPG setup (and SSH)
# SSH setup
# I finally figured out how to export my id_rsa from GPG using
# https://superuser.com/a/1681454 (copied/summarized here to avoid link rot):
# 0. Run `gpg -K --with-keygrip` and note the desired keygrip (probably the one
# with [A] for auth).
# 1. Run `gpgsm --gen-key -o tempcert`:
# a. Select "Existing Key".
# b. Enter the keygrip from step 0.
# c. Select "(1) sign, encrypt". This and following steps don't really apply
# for our use case, but we need to do it to make the tool happy.
# d. Enter some valid X.509 subject, e.g. "C=US".
# e. Press enter for rest of fields.
# f. "y" to create self-signed certificate.
# g. "y" to proceed with creation.
# 2. `gpgsm --import tempcert` and `gpgsm -K` to get the (new) keyid.
# 3. `gpgsm --export-secret-key-p8 -a -o id_rsa $keyid`
# 4. (optional) `rm tempcert`, probably don't want that sitting around.
# 5. (optional) Trim the phony metadata we gave to gpgsm that is prepended to
# the exported PEM cert (id_rsa).
if command -v keychain >/dev/null; then
alias keychain="keychain --nolock --absolute --dir $XDG_RUNTIME_DIR"
eval "$(keychain --quick --eval)"
rbw unlock
ssh-add ~/.ssh/id_rsa
fi
### End user configuration
### hooks/includes
for plugin in zsh-syntax-highlighting zsh-history-substring-search \
zsh-autosuggestions; do
if [ -f /usr/share/zsh/plugins/$plugin/${plugin}.zsh ]; then
source /usr/share/zsh/plugins/$plugin/${plugin}.zsh
fi
done
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
bindkey -M vicmd 'k' history-substring-search-up
bindkey -M vicmd 'j' history-substring-search-down
if command -v pazi &>/dev/null; then
eval "$(pazi init zsh)" # or 'bash'
fi