89 lines
2.5 KiB
Cheetah
89 lines
2.5 KiB
Cheetah
## User-specific Zsh config (on top of what is in /etc/zsh/zshrc)
|
|
|
|
## --------------------------------------------------
|
|
# autocompletion
|
|
## --------------------------------------------------
|
|
|
|
# ignore full hostnames in ssh config file
|
|
# the default ssh function does not seem to differentiate b/t
|
|
# HOST and HOSTNAME directives
|
|
zstyle ':completion:*:(ssh|scp|rsync|sshfs):*:hosts' ignored-patterns '*.yavin4.ch'
|
|
|
|
{{- if eq .chezmoi.hostname "petrucci4prez" }}
|
|
|
|
## --------------------------------------------------
|
|
# enable x11 clipboard sync
|
|
## --------------------------------------------------
|
|
function x11-clip-wrap-widgets() {
|
|
# NB: Assume we are the first wrapper and that we only wrap native widgets
|
|
# See zsh-autosuggestions.zsh for a more generic and more robust wrapper
|
|
local copy_or_paste=$1
|
|
shift
|
|
|
|
for widget in $@; do
|
|
if [[ $copy_or_paste == "copy" ]]; then
|
|
eval "
|
|
function _x11-clip-wrapped-$widget() {
|
|
zle .$widget
|
|
xclip -in -selection clipboard <<<\$CUTBUFFER
|
|
}
|
|
"
|
|
else
|
|
eval "
|
|
function _x11-clip-wrapped-$widget() {
|
|
CUTBUFFER=\$(xclip -out -selection clipboard)
|
|
zle .$widget
|
|
}
|
|
"
|
|
fi
|
|
|
|
zle -N $widget _x11-clip-wrapped-$widget
|
|
done
|
|
}
|
|
|
|
local copy_widgets=(
|
|
vi-yank vi-yank-eol vi-delete vi-backward-kill-word vi-change-whole-line
|
|
)
|
|
local paste_widgets=(
|
|
vi-put-{before,after}
|
|
)
|
|
x11-clip-wrap-widgets copy $copy_widgets
|
|
x11-clip-wrap-widgets paste $paste_widgets
|
|
|
|
## --------------------------------------------------
|
|
## Python/Ruby Virtual Environments
|
|
## --------------------------------------------------
|
|
|
|
# both of these languages have similar setups for their virtual envs which
|
|
# involve a) adding a "shims" directory to PATH and then b) adding some shell
|
|
# magic to automatically call the shims
|
|
|
|
zsh-pyenv () {
|
|
if command -v pyenv 1>/dev/null 2>&1; then
|
|
echo "Activating pyenv"
|
|
eval "$(pyenv init - | sed '/PATH/d' -)"
|
|
eval "$(pyenv virtualenv-init - | sed '/PATH/d' -)"
|
|
else
|
|
echo "pyenv not installed"
|
|
fi
|
|
}
|
|
|
|
|
|
zsh-rbenv () {
|
|
if command -v rbenv 1>/dev/null 2>&1; then
|
|
echo "Activating rbenv"
|
|
eval "$(rbenv init - | sed '/PATH/d' -)"
|
|
else
|
|
echo "rbenv not installed"
|
|
fi
|
|
}
|
|
|
|
zsh-conda () {
|
|
if [[ -x $XDG_DATA_HOME/mambaforge/bin/conda ]]; then
|
|
eval "$($XDG_DATA_HOME/mambaforge/bin/conda shell.zsh hook)"
|
|
else
|
|
echo "conda installation not found"
|
|
fi
|
|
}
|
|
{{- end }}
|