Add zsh config

This commit is contained in:
Maximilian Friedersdorff 2024-09-28 20:43:35 +01:00
commit f42c2e1954
2 changed files with 144 additions and 0 deletions

36
dot_zshenv Normal file
View file

@ -0,0 +1,36 @@
typeset -U path
path=(~/.local/bin ~/.cargo/bin $path[@])
if [[ $XDG_SESSION_TYPE == "wayland" ]]; then
export QT_QPA_PLATFORM=wayland-egl
export MOZ_ENABLE_WAYLAND=1
fi
# make less more friendly for non-text input files, see lesspipe(1)
if [ -x /usr/bin/lesspipe ]; then
export LESSOPEN="|lesspipe %s"
elif [ -x /usr/bin/lesspipe.sh ]; then
export LESSOPEN="|lesspipe.sh %s"
fi
# colored GCC warnings and errors
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
export EDITOR="nvim"
export TMPDIR="/tmp/${USER}"
export GIT_PS1_SHOWDIRTYSTATE=true
export GIT_PS1_SHOWSTASHSTATE=true
export GIT_PS1_SHOWUNTRACKEDFILEDS=true
export GIT_PS1_SHOWUPSTREAM="verbose"
export GIT_PS1_DESCRIBE_STYLE="branch"
export GIT_PS1_SHOWCOLORHINTS="color"
eval $(dircolors ~/.dir_colors)
export GPG_TTY=$(tty)
export _JAVA_AWT_WM_NONREPARENTING=1
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket

108
dot_zshrc Normal file
View file

@ -0,0 +1,108 @@
# The following lines were added by compinstall
zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate
zstyle ':completion:*' completions 1
zstyle ':completion:*' expand suffix
zstyle ':completion:*' glob 1
zstyle ':completion:*' ignore-parents parent pwd
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' list-suffixes true
zstyle ':completion:*' max-errors 1
zstyle ':completion:*' menu select=1
zstyle ':completion:*' preserve-prefix '//[^/]##/'
zstyle ':completion:*' prompt 'Corrections with %e differences:'
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' substitute 1
zstyle :compinstall filename '/home/max/.zshrc'
autoload -Uz compinit
compinit
# End of lines added by compinstall
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=100000
SAVEHIST=100000
setopt appendhistory autocd extendedglob nomatch extendedhistory correct
unsetopt beep notify
bindkey -v
# End of lines configured by zsh-newuser-install
# Prompt
NEWLINE=$'\n'
setopt prompt_subst
p="%(?;%F{green};%F{red})[%h]%f "
p+="%F{red}%B%n%b%f@%F{red}%B%m%b%f"
p+=":%F{blue}%~%f"
p+="${NEWLINE}%(!.#.$) "
virtual_env() {
if [ -n "${VIRTUAL_ENV+1}" ]; then
home_rel_path=$(echo ${VIRTUAL_ENV} | sed "s;^${HOME};~;")
echo -n "(${home_rel_path}) "
fi
}
source ~/.git-prompt.sh
precmd () {
__git_ps1 "" "$(virtual_env)${p}" "${NEWLINE}[%s]${NEWLINE}"
}
bindkey '^R' history-incremental-search-backward
if [[ -f ~/.shell_aliases ]]; then
source ~/.shell_aliases
fi
export WORKON_HOME=~/.virtualenvs
source /usr/bin/virtualenvwrapper_lazy.sh
chpwd() {
src_dir="$(readlink -f ~/src/)/"
if [[ $PWD == "$src_dir"* ]]; then
if git status &>/dev/null; then
venv_name=$(basename $(git rev-parse --show-toplevel))
if [[ -n "$VIRTUAL_ENV" ]]; then
current_venv_name=$(basename "$VIRTUAL_ENV")
if [[ "$current_venv_name" != "$venv_name" ]]; then
deactivate
workon "$venv_name"
fi
else
if workon | grep -q "$venv_name"; then
workon "$venv_name"
fi
fi
else
if [[ -n "$VIRTUAL_ENV" ]]; then
deactivate
fi
fi
else
if [[ -n "$VIRTUAL_ENV" ]]; then
deactivate
fi
fi
}
export GPG_TTY=$(tty)
gpg-connect-agent updatestartuptty /bye >/dev/null
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=30
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
sri() {
base64_hash=$(shasum -b -a 384 "$1" | awk '{print $1}' | xxd -r -p | base64)
echo "sha384-${base64_hash}"
}
scrot() {
tmp_file=$(mktemp --tmpdir XXXXXX_scrot.png)
grim -g "$(slurp)" "$tmp_file"
echo "$tmp_file"
}