dotfiles/dot_config/zsh/dot_zshrc

92 lines
3.0 KiB
Plaintext
Raw Normal View History

2023-07-21 15:35:28 -04:00
### 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
2024-02-16 17:28:11 -05:00
mkdir -p "$(dirname "$HISTFILE")"
2023-08-05 16:17:28 -04:00
HISTSIZE=100000
SAVEHIST=100000
2023-07-21 15:35:28 -04:00
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"
2023-07-21 15:35:28 -04:00
autoload -Uz compinit
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
# End of lines added by compinstall
### User configuration
2023-10-04 11:31:47 -04:00
# for shell integration
precmd() {
2024-02-16 17:28:11 -05:00
print -Pn "\e]133;A\e\\"
2023-10-04 11:31:47 -04:00
}
2023-07-21 15:35:28 -04:00
# 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_ '
2023-08-31 08:36:50 -04:00
alias boinctui='boinctui --boinchost=localhost'
2023-07-21 15:35:28 -04:00
alias bt='bluetoothctl'
alias c='clear'
alias daybreak='mosh daybreak -p 60101'
alias epoch='mosh epoch -p 60104'
2023-07-25 09:36:14 -04:00
alias grc='gridcoinresearchd'
alias l='eza -lh --all --octal-permissions'
2023-08-05 11:00:30 -04:00
alias less='less -r'
2023-10-04 11:31:47 -04:00
alias ls='eza'
alias lsa='eza -a'
alias lss='eza -a'
2023-08-17 14:05:49 -04:00
alias vim='nvim'
2023-08-18 15:58:58 -04:00
alias wake_circadian='ssh epoch wol a8:a1:59:11:06:f1'
2023-07-21 15:35:28 -04:00
alias xrm='sudo xbps-remove'
2024-10-18 13:36:43 -04:00
ssh-add ~/.ssh/id_rsa
# 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).
2023-07-25 14:03:33 -04:00
if command -v keychain >/dev/null; then
2024-03-23 23:49:42 -04:00
alias keychain="keychain --nolock --absolute --dir $XDG_RUNTIME_DIR"
2024-10-18 13:36:43 -04:00
eval "$(keychain --quick --eval)"
fi
2023-07-21 15:35:28 -04:00
### End user configuration
### hooks/includes
2024-04-19 15:34:32 -04:00
for plugin in zsh-syntax-highlighting zsh-history-substring-search \
zsh-autosuggestions; do
2024-02-16 17:28:11 -05:00
if [ -f /usr/share/zsh/plugins/$plugin/${plugin}.zsh ]; then
2024-04-19 15:34:32 -04:00
source /usr/share/zsh/plugins/$plugin/${plugin}.zsh
2024-02-16 17:28:11 -05:00
fi
done
2024-04-19 15:34:32 -04:00
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
2024-09-11 09:39:52 -04:00
if command -v pazi &>/dev/null; then
eval "$(pazi init zsh)" # or 'bash'
fi