2021-06-17 11:20:42 -05:00
|
|
|
# Option adjustments
|
|
|
|
unsetopt nomatch
|
|
|
|
|
2022-03-15 15:49:41 -05:00
|
|
|
# Swap CAPSLOCK and ESC
|
|
|
|
setxkbmap -option caps:swapescape
|
|
|
|
|
2021-06-14 14:20:50 -05:00
|
|
|
# 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
|
|
|
|
|
2021-08-05 14:09:23 -05:00
|
|
|
# Use powerline
|
|
|
|
USE_POWERLINE="true"
|
|
|
|
# Source manjaro-zsh-configuration
|
|
|
|
if [[ -e /usr/share/zsh/manjaro-zsh-config ]]; then
|
|
|
|
source /usr/share/zsh/manjaro-zsh-config
|
|
|
|
fi
|
|
|
|
|
2021-08-05 14:35:38 -05:00
|
|
|
# Use a prompt, depending on what is available:
|
|
|
|
# 1. starship
|
|
|
|
# 2. p10k
|
|
|
|
# 3. manjaro
|
2021-08-09 11:58:16 -05:00
|
|
|
if (( $+commands[starship] )); then
|
2021-08-05 13:15:57 -05:00
|
|
|
eval "$(starship init zsh)"
|
|
|
|
else
|
2021-08-05 13:56:03 -05:00
|
|
|
if [[ -s ~/.p10k.zsh ]]; then
|
|
|
|
source ~/.p10k.zsh
|
2021-08-05 14:35:38 -05:00
|
|
|
else
|
|
|
|
# Use manjaro zsh prompt
|
|
|
|
if [[ -e /usr/share/zsh/manjaro-zsh-prompt ]]; then
|
|
|
|
source /usr/share/zsh/manjaro-zsh-prompt
|
|
|
|
fi
|
2021-08-05 13:56:03 -05:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-08-05 14:35:38 -05:00
|
|
|
# Autosuggestions
|
|
|
|
if [[ -s /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ]]; then
|
|
|
|
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Intelligent and fast autojump
|
2021-08-09 11:58:16 -05:00
|
|
|
if (( $+commands[zoxide] )); then
|
2021-08-05 13:56:03 -05:00
|
|
|
eval "$(zoxide init zsh)"
|
2021-08-05 13:15:57 -05:00
|
|
|
fi
|
2021-06-14 14:20:50 -05:00
|
|
|
|
2021-08-05 14:35:38 -05:00
|
|
|
# Cheat my way through the CLI
|
2021-08-09 11:58:16 -05:00
|
|
|
if (( $+commands[navi] )); then
|
2021-08-05 14:35:38 -05:00
|
|
|
eval "$(navi widget zsh)"
|
|
|
|
fi
|
|
|
|
|
2022-04-07 01:25:51 -05:00
|
|
|
# Per-directory env
|
|
|
|
if (( $+commands[direnv])); then
|
|
|
|
eval "$(direnv hook zsh)"
|
|
|
|
fi
|
|
|
|
|
2022-04-11 17:11:10 -05:00
|
|
|
# Use $FINDER and $EDITOR
|
|
|
|
if (( $+commands[$FINDER] )); then
|
2022-04-11 17:04:26 -05:00
|
|
|
e?() {
|
2022-04-11 17:11:10 -05:00
|
|
|
$EDITOR $($FINDER)
|
2022-04-11 17:04:26 -05:00
|
|
|
}
|
|
|
|
fi
|
|
|
|
|
2021-08-09 11:58:16 -05:00
|
|
|
# Use fd for fzf
|
2022-04-11 17:04:26 -05:00
|
|
|
if (( $+commands[fd] && $+commands[fzf] )); then
|
2021-08-09 11:58:16 -05:00
|
|
|
_fzf_compgen_path() {
|
|
|
|
fd --hidden --follow --exclude ".git" . "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
_fzf_compgen_dir() {
|
|
|
|
fd --type d --hidden --follow --exclude ".git" . "$1"
|
|
|
|
}
|
|
|
|
fi
|
|
|
|
|
2021-06-14 14:20:50 -05:00
|
|
|
# Custom aliases
|
2021-08-05 13:56:03 -05:00
|
|
|
if [[ -s ~/.aliases ]]; then
|
2021-08-05 14:09:23 -05:00
|
|
|
source ~/.aliases
|
2021-08-05 13:56:03 -05:00
|
|
|
fi
|
2022-05-16 10:41:00 -05:00
|
|
|
if [[ -s ~/.aliases.local ]]; then
|
|
|
|
source ~/.aliases.local
|
|
|
|
fi
|
2021-06-14 14:20:50 -05:00
|
|
|
|
2021-06-17 11:20:42 -05:00
|
|
|
# NVM
|
2021-08-05 13:56:03 -05:00
|
|
|
if [[ -s "$NVM_DIR/nvm.sh" ]]; then
|
|
|
|
source "$NVM_DIR/nvm.sh" # This loads nvm
|
|
|
|
fi
|
|
|
|
if [[ -s "$NVM_DIR/bash_completion" ]]; then
|
|
|
|
source "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
|
|
|
fi
|
2021-07-20 10:50:29 -05:00
|
|
|
|
2022-04-02 22:48:19 -05:00
|
|
|
# Virtualenvwrapper
|
2022-10-16 15:08:35 -05:00
|
|
|
if [[ -s "$HOME/.local/bin/virtualenvwrapper_lazy.sh" ]]; then
|
|
|
|
source "$HOME/.local/bin/virtualenvwrapper_lazy.sh"
|
|
|
|
elif [[ -s "$HOME/.local/bin/virtualenvwrapper.sh" ]]; then
|
2022-04-02 22:48:19 -05:00
|
|
|
source "$HOME/.local/bin/virtualenvwrapper.sh"
|
|
|
|
fi
|
|
|
|
|
2022-05-31 11:07:21 -05:00
|
|
|
# broot
|
|
|
|
if [[ -s ~/.config/broot/launcher/bash/br ]]; then
|
|
|
|
source ~/.config/broot/launcher/bash/br
|
|
|
|
fi
|
|
|
|
|
2023-02-27 17:29:58 -06:00
|
|
|
# zellij
|
|
|
|
if (( $+commands[zellij] )); then
|
|
|
|
ZELLIJ_AUTO_ATTACH=true
|
|
|
|
eval "$(zellij setup --generate-auto-start zsh)"
|
|
|
|
|
2023-03-24 01:39:47 -05:00
|
|
|
ide() {
|
2023-03-24 15:45:42 -05:00
|
|
|
local layout="${ZELLIJ_LAYOUT:-${HOME}/.config/zellij/layouts/project.kdl}"
|
|
|
|
local name="${PWD##*/}"
|
|
|
|
local name="${name:-/}"
|
2023-03-24 01:39:47 -05:00
|
|
|
|
|
|
|
if (( ${+ZELLIJ} )); then
|
|
|
|
zellij action new-tab --layout "${layout}" --cwd "${PWD}" --name "${name}"
|
|
|
|
else
|
|
|
|
zellij --layout "${layout}" $@
|
|
|
|
fi
|
|
|
|
}
|
2023-02-27 17:29:58 -06:00
|
|
|
fi
|
|
|
|
|
2023-03-25 16:00:24 -05:00
|
|
|
# exa
|
|
|
|
if (( $+commands[exa] )); then
|
|
|
|
# exa explorer
|
|
|
|
exex() {
|
|
|
|
local depth=1
|
|
|
|
|
|
|
|
clear
|
|
|
|
exa -FTL$depth $@
|
|
|
|
|
|
|
|
while read -sk key; do
|
|
|
|
case $key in
|
|
|
|
h)
|
|
|
|
(( depth-- ))
|
|
|
|
[[ $depth -lt 1 ]] && local depth=1
|
|
|
|
clear
|
|
|
|
exa -FTL$depth $@
|
|
|
|
;;
|
|
|
|
l)
|
|
|
|
(( depth++ ))
|
|
|
|
clear
|
|
|
|
exa -FTL$depth $@
|
|
|
|
;;
|
|
|
|
q)
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
|
|
|
fi
|
|
|
|
|
2023-03-13 17:16:23 -05:00
|
|
|
# git
|
|
|
|
if (( $+commands[git] )); then
|
|
|
|
git_chpwd_hook() {
|
|
|
|
if [[ -d ".git" ]]; then
|
|
|
|
git status
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
chpwd_functions+=( git_chpwd_hook )
|
|
|
|
|
|
|
|
git_chpwd_hook
|
|
|
|
fi
|
|
|
|
|
2023-02-27 17:48:37 -06:00
|
|
|
# gh
|
|
|
|
if (( $+commands[gh] )); then
|
|
|
|
gh_chpwd_hook() {
|
|
|
|
if [[ -d ".github" ]]; then
|
|
|
|
gh pr list
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
chpwd_functions+=( gh_chpwd_hook )
|
2023-02-27 19:06:48 -06:00
|
|
|
|
|
|
|
gh_chpwd_hook
|
2023-02-27 17:48:37 -06:00
|
|
|
fi
|
|
|
|
|
2021-07-20 10:50:29 -05:00
|
|
|
# Source machine-specific setup
|
2021-08-05 13:56:03 -05:00
|
|
|
if [[ -s ~/.zshrc.local ]]; then
|
2021-08-05 14:09:23 -05:00
|
|
|
source ~/.zshrc.local
|
2021-08-05 13:56:03 -05:00
|
|
|
fi
|