commit f42c2e1954607f147ca87d14f6a77d361a5b6410 Author: Maximilian Friedersdorff Date: Sat Sep 28 20:43:35 2024 +0100 Add zsh config diff --git a/dot_zshenv b/dot_zshenv new file mode 100644 index 0000000..df70155 --- /dev/null +++ b/dot_zshenv @@ -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 diff --git a/dot_zshrc b/dot_zshrc new file mode 100644 index 0000000..95d1940 --- /dev/null +++ b/dot_zshrc @@ -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" +}