export PATH="/snap/bin:$HOME/.local/bin:$HOME/dotfiles/scripts:$PATH" export XDG_CONFIG_HOME="$HOME/.config" # Fix nvim bug [[ -z $SSH_AUTH_SOCK ]] || export FORWARD_SOCK=$SSH_AUTH_SOCK [[ -f ~/.zsh/.powerline_config ]] && source ~/.zsh/.powerline_config [[ -f ~/.zsh/.user_config ]] && source ~/.zsh/.user_config [[ -f ~/.zsh/.virtual_env_config.zsh ]] && source ~/.zsh/.virtual_env_config.zsh [[ -f ~/.zsh/.local_config ]] && source ~/.zsh/.local_config [[ -f ~/.zsh/.os_config.zsh ]] && source ~/.zsh/.os_config.zsh if [[ -f ~/.zsh/.shared_config ]] && [[ "$SUDO_USER" != "fabian" ]] ; then shared_config=1 else shared_config=0 fi if [[ -f ~/.zsh/.shared_config ]] ; then touch ~/.config/nvim/.shared_config fi function update_dotfiles () { cd ~/dotfiles || return fetch=$(git fetch --dry-run) if [[ -n $fetch ]]; then git pull > /dev/null 2>&1 fi } if [ "$shared_config" -eq 0 ]; then update_dotfiles >/tmp/nvim.log 2>&1 & fi # Load Antidote mkdir -p ${ZDOTDIR:-~}/.cache/zsh static_file=${ZDOTDIR:-~}/.cache/zsh/.zsh_plugins.zsh if [ $shared_config -eq 0 ]; then plugins_txt=${ZDOTDIR:-~}/.zsh/.zsh_plugins.txt # Vi mode bindkey -v VI_MODE_SET_CURSOR=true else plugins_txt=${ZDOTDIR:-~}/.zsh/.zsh_plugins_shared.txt static_file=${ZDOTDIR:-~}/.cache/zsh/.zsh_shared_plugins.zsh fi # clone antidote if necessary if ! [[ -e ${ZDOTDIR:-~}/.antidote ]]; then git clone https://github.com/mattmc3/antidote.git ${ZDOTDIR:-~}/.antidote fi #zstyle ':omz:plugins:docker' legacy-completion yes zstyle ':completion:*:ssh:*' hosts off zstyle ':completion:*:scp:*' hosts off # Run rehash for external commands zstyle ":completion:*:commands" rehash 1 # source antidote and load plugins from `${ZDOTDIR:-~}/.zsh_plugins.txt` source ${ZDOTDIR:-~}/.antidote/antidote.zsh antidote load ${plugins_txt} ${static_file} export SSH_REAL_SOCK=$SSH_AUTH_SOCK [[ -z $FORWARD_SOCK ]] || export SSH_AUTH_SOCK=$FORWARD_SOCK setopt interactivecomments # History options HISTSIZE=100000 # Set the amount of lines you want saved SAVEHIST=100000 # This is required to actually save them, needs to match with HISTSIZE setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format. setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. setopt SHARE_HISTORY # Share history between all sessions. setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history. setopt HIST_IGNORE_DUPS # Don\'t record an entry that was just recorded again. setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. setopt HIST_FIND_NO_DUPS # Do not display a line previously found. setopt HIST_IGNORE_SPACE # Don\'t record an entry starting with a space. setopt HIST_SAVE_NO_DUPS # Don\'t write duplicate entries in the history file. setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry. # Clear screen by ctrl+q bindkey '^q' clear-screen alias vim=nvim alias sudo='sudo ' alias cgrep="grep --color=always" export EDITOR='nvim' # Allow access to all libvirt vms export LIBVIRT_DEFAULT_URI="qemu:///system" alias ls="ls --color=always" delzip() { unzip -Z -1 "$@" | xargs -I{} rm -rf {} } # mitmproxy export MITMPROXY_SSLKEYLOGFILE="~/.mitmproxy/sslkeylogfile.txt" [[ -f ~/.zsh/.mac_config ]] && source ~/.zsh/.mac_config # Workaround for async issues https://github.com/romkatv/powerlevel10k/issues/1554 unset ZSH_AUTOSUGGEST_USE_ASYNC # Powerlevel 10k # Remove padding on right side ZLE_RPROMPT_INDENT=0 # To customize prompt, run `p10k configure` or edit ~/dotfiles/zsh/.p10k.zsh. function load_p10k() { if zmodload zsh/terminfo && (( terminfo[colors] >= 256 )) && [ $shared_config -eq 0 ]; then [[ ! -f ~/dotfiles/zsh/.p10k.zsh ]] || source ~/dotfiles/zsh/.p10k.zsh else [[ ! -f ~/dotfiles/zsh/.p10k_shared.zsh ]] || source ~/dotfiles/zsh/.p10k_shared.zsh fi } load_p10k # # This speeds up pasting w/ autosuggest # https://github.com/zsh-users/zsh-autosuggestions/issues/238 pasteinit() { OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]} zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`? } pastefinish() { zle -N self-insert $OLD_SELF_INSERT } zstyle :bracketed-paste-magic paste-init pasteinit zstyle :bracketed-paste-magic paste-finish pastefinish # https://github.com/zsh-users/zsh-autosuggestions/issues/351 ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste) export LANG="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8" export TIME_STYLE="long-iso"