# If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH # Set $PATH if ~/.local/bin exist if [ -d "$HOME/.local/bin" ]; then export PATH=$HOME/.local/bin:$PATH fi eval "$(starship init zsh)" function set_win_title(){ echo -ne "\033]0; $USER@$HOST:${PWD/$HOME/~} \007" } precmd_functions+=(set_win_title) ## Plugins section: Enable fish style features # Use syntax highlighting source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh # Use autosuggestion source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh # Use history substring search source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh # Use fzf source /usr/share/fzf/key-bindings.zsh source /usr/share/fzf/completion.zsh # Arch Linux command-not-found support, you must have package pkgfile installed # https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook [[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh ## Options section setopt correct # Auto correct mistakes setopt extendedglob # Extended globbing. Allows using regular expressions with * setopt nocaseglob # Case insensitive globbing setopt rcexpandparam # Array expension with parameters setopt nocheckjobs # Don't warn about running processes when exiting setopt numericglobsort # Sort filenames numerically when it makes sense setopt nobeep # No beep setopt appendhistory # Immediately append history instead of overwriting setopt histignorealldups # If a new command is a duplicate, remove the older one setopt autocd # if only directory path is entered, cd there. setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus # Completion. autoload -Uz compinit compinit zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion zstyle ':completion:*' rehash true # automatically find new executables in path zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc) zstyle ':completion:*' completer _expand _complete _ignored _approximate zstyle ':completion:*' menu select=2 zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' zstyle ':completion:*:descriptions' format '%U%F{cyan}%d%f%u' # Speed up completions zstyle ':completion:*' accept-exact '*(N)' zstyle ':completion:*' use-cache on zstyle ':completion:*' cache-path ~/.cache/zcache # automatically load bash completion functions autoload -U +X bashcompinit && bashcompinit HISTFILE=~/.zhistory HISTSIZE=50000 SAVEHIST=10000 ## Keys # Use emacs key bindings bindkey -e # [PageUp] - Up a line of history if [[ -n "${terminfo[kpp]}" ]]; then bindkey -M emacs "${terminfo[kpp]}" up-line-or-history bindkey -M viins "${terminfo[kpp]}" up-line-or-history bindkey -M vicmd "${terminfo[kpp]}" up-line-or-history fi # [PageDown] - Down a line of history if [[ -n "${terminfo[knp]}" ]]; then bindkey -M emacs "${terminfo[knp]}" down-line-or-history bindkey -M viins "${terminfo[knp]}" down-line-or-history bindkey -M vicmd "${terminfo[knp]}" down-line-or-history fi # Start typing + [Up-Arrow] - fuzzy find history forward if [[ -n "${terminfo[kcuu1]}" ]]; then autoload -U up-line-or-beginning-search zle -N up-line-or-beginning-search bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search fi # Start typing + [Down-Arrow] - fuzzy find history backward if [[ -n "${terminfo[kcud1]}" ]]; then autoload -U down-line-or-beginning-search zle -N down-line-or-beginning-search bindkey -M emacs "${terminfo[kcud1]}" down-line-or-beginning-search bindkey -M viins "${terminfo[kcud1]}" down-line-or-beginning-search bindkey -M vicmd "${terminfo[kcud1]}" down-line-or-beginning-search fi # [Home] - Go to beginning of line if [[ -n "${terminfo[khome]}" ]]; then bindkey -M emacs "${terminfo[khome]}" beginning-of-line bindkey -M viins "${terminfo[khome]}" beginning-of-line bindkey -M vicmd "${terminfo[khome]}" beginning-of-line fi # [End] - Go to end of line if [[ -n "${terminfo[kend]}" ]]; then bindkey -M emacs "${terminfo[kend]}" end-of-line bindkey -M viins "${terminfo[kend]}" end-of-line bindkey -M vicmd "${terminfo[kend]}" end-of-line fi # [Shift-Tab] - move through the completion menu backwards if [[ -n "${terminfo[kcbt]}" ]]; then bindkey -M emacs "${terminfo[kcbt]}" reverse-menu-complete bindkey -M viins "${terminfo[kcbt]}" reverse-menu-complete bindkey -M vicmd "${terminfo[kcbt]}" reverse-menu-complete fi # [Backspace] - delete backward bindkey -M emacs '^?' backward-delete-char bindkey -M viins '^?' backward-delete-char bindkey -M vicmd '^?' backward-delete-char # [Delete] - delete forward if [[ -n "${terminfo[kdch1]}" ]]; then bindkey -M emacs "${terminfo[kdch1]}" delete-char bindkey -M viins "${terminfo[kdch1]}" delete-char bindkey -M vicmd "${terminfo[kdch1]}" delete-char else bindkey -M emacs "^[[3~" delete-char bindkey -M viins "^[[3~" delete-char bindkey -M vicmd "^[[3~" delete-char bindkey -M emacs "^[3;5~" delete-char bindkey -M viins "^[3;5~" delete-char bindkey -M vicmd "^[3;5~" delete-char fi # Common use aliases alias aup="pamac upgrade --aur" alias grubup="sudo update-grub" alias fixpacman="sudo rm /var/lib/pacman/db.lck" alias tarnow='tar -acf ' alias untar='tar -zxvf ' alias wget='wget -c ' alias psmem='ps auxf | sort -nr -k 4' alias psmem10='ps auxf | sort -nr -k 4 | head -10' alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias .....='cd ../../../..' alias ......='cd ../../../../..' alias dir='dir --color=auto' alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' alias hw='hwinfo --short' # Hardware Info alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages # Get fastest mirrors alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist" alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist" alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" # Help people new to Arch alias apt='man pacman' alias apt-get='man pacman' alias please='sudo' alias tb='nc termbin.com 9999' # Replace yay with paru if installed [ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru' # Set your countries like --country France --country Germany -- or more. alias upd='sudo reflector --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist && cat /etc/pacman.d/mirrorlist && sudo pacman -Syu && sudo updatedb' # Greeting clear pokemon-colorscripts -r echo "zsh shell"