#!/usr/bin/zsh # ZSH Options setopt auto_cd # cd by typing directory name if it's not a command setopt auto_list # automatically list choices on ambiguous completion setopt auto_menu # automatically use menu completion setopt always_to_end # move cursor to end if word had one match setopt interactivecomments # allow comments in interactive mode setopt magicequalsubst # enable filename expansion for arguments of form `x=expression` setopt notify # report the status of background jobs immediately setopt numericglobsort # sort filenames numerically when it makes sense setopt auto_pushd # Make cd act as pushd #setopt correct_all # autocorrect commands # oh-my-zsh configuration (DISABLED by default, if you want oh-my-zsh, uncomment these) #export ZSH="/usr/share/oh-my-zsh" #ZSH_THEME="af-magic" #UPDATE_ZSH_DAYS=8 #ENABLE_CORRECTION="false" #source $ZSH/oh-my-zsh.sh # Run oh-my-zsh # ZSH files setup (don't clutter home) export ZSH_CACHE="$HOME/.cache/zsh" export HISTFILE="$ZSH_CACHE/history" export ZSH_COMPDUMP="$ZSH_CACHE/zcompdump-$ZSH_VERSION" mkdir -p "$ZSH_CACHE" # Auto-remove home clutter [ -f ~/.zsh-update ] && mv ~/.zsh-update $ZSH_CACHE/.zsh-update [ -f ~/.sudo_as_admin_sucessful ] && rm ~/.sudo_as_admin_successful [ -f ~/.bash_history ] && rm ~/.bash_history # History configuration export HISTSIZE=10000 export SAVEHIST=10000 -setopt appendhistory # save history entries as soon as they are entered setopt hist_ignore_space # ignore commands that start with space setopt hist_verify # show commands with history expansion to user before running it setopt extended_history # record command start time #setopt hist_ignore_dups # ignore duplicated commands history list #setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTFILE #setopt share_history # share command history data between terminals # Completion features (tab) autoload -Uz compinit zmodload -i zsh/complist # load completion list compinit -d $ZSH_COMPDUMP # Specify compdump file comp_options+=(globdots) # Enable completion on hidden files. zstyle ':completion:*' menu select # select completions with arrow keys zstyle ':completion:*' group-name '' # group results by category zstyle ':completion:::::' completer _expand _complete _ignored _approximate #enable approximate matches for completion # Color support #autoload -U colors && colors # Setup aliases [ -f ~/.config/shell/aliases ] && source ~/.config/shell/aliases # Load handlers [ -f ~/.config/shell/handlers ] && source ~/.config/shell/handlers # Load key bindings [ -f ~/.config/shell/keybinds ] && source ~/.config/shell/keybinds # Load prompt [ -f ~/.config/shell/prompt ] && source ~/.config/shell/prompt # Define TMOUT timeout for TTY and root [ -z "$DISPLAY" ] && export TMOUT=800 [ $UID -eq 0 ] && export TMOUT=600 # Load extensions (should be last) . /usr/share/zsh/site-functions/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null . /usr/share/zsh/site-functions/zsh-autosuggestions/zsh-autosuggestions.zsh 2>/dev/null eval "$(lua /usr/local/src/z.lua/z.lua --init zsh enhanced)" if command -v pyenv >/dev/null 2>&1; then eval "$(pyenv init -)" fi