# Personal Zsh configuration file. It is strongly recommended to keep all # shell customization and configuration (including exported environment # variables such as PATH) in this file or in files source by it. # # Documentation: https://github.com/romkatv/zsh4humans/blob/v5/README.md zstyle ':z4h:' auto-update 'no' zstyle ':z4h:' auto-update-days '28' # tmux: integrated, system, no zstyle ':z4h:' start-tmux 'no' zstyle ':z4h:' prompt-at-bottom 'yes' # keyboard setting zstyle ':z4h:bindkey' keyboard 'pc' zstyle ':z4h:autosuggestions' forward-char 'accept' zstyle ':z4h:fzf-complete' recurse-dirs 'no' # Enable ('yes') or disable ('no') automatic teleportation of z4h over # ssh when connecting to these hosts. #zstyle ':z4h:ssh:example-hostname1' enable 'yes' zstyle ':z4h:ssh:*' enable 'no' #zstyle ':z4h:ssh-agent:' start no z4h install ohmyzsh/ohmyzsh || return z4h install urbainvaes/fzf-marks || return z4h install jreese/zsh-titles || return # Install or update core components (fzf, zsh-autosuggestions, etc.) and # initialize Zsh. After this point console I/O is unavailable until Zsh # is fully initialized. Everything that requires user interaction or can # perform network I/O must be done above. Everything else is best done below. z4h init || return # Export environment variables. export GPG_TTY=$TTY export SAVEHIST=1048576 export HISTSIZE=1048576 export HISTFILE=$HOME/.cache/zsh/history export SPACEVIMDIR="$HOME/.config/spacevim/" export FZF_MARKS_FILE=$HOME/.config/fzfmarks export MANPAGER="sh -c 'col -bx | bat -l man -p'" # Source additional local files if they exist. z4h source $HOME/.config/local/env.zsh eval "$(zoxide init zsh)" # Source Files z4h source $HOME/.config/zsh/sshagent.zsh z4h source $Z4H/ohmyzsh/ohmyzsh/lib/history.zsh z4h source $Z4H/ohmyzsh/ohmyzsh/lib/completion.zsh z4h source $Z4H/ohmyzsh/ohmyzsh/lib/directories.zsh z4h source $Z4H/ohmyzsh/ohmyzsh/lib/clipboard.zsh z4h source $Z4H/ohmyzsh/ohmyzsh/lib/grep.zsh z4h source $Z4H/ohmyzsh/ohmyzsh/plugins/command-not-found/command-not-found.plugin.zsh z4h source $Z4H/urbainvaes/fzf-marks/fzf-marks.plugin.zsh #zinit pack for ls_colors # Aliases z4h source $HOME/.config/zsh/aliases.zsh z4h source $HOME/.config/local/aliases.zsh # Add flags to existing aliases. #alias ls="${aliases[ls]:-ls} -A" # Define key bindings. # Autoload functions. # Define functions and completions. function md() { [[ $# == 1 ]] && mkdir -p -- "$1" && cd -- "$1" } compdef _directories md # Fix SSH Completions zstyle ':completion:*:*:*:users' ignored-patterns '*' zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })' zstyle ':completion:*:(scp|ssh):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' zstyle ':completion:*:scp:*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr zstyle ':completion:*:ssh:*' group-order hosts-domain hosts-host users hosts-ipaddr zstyle ':completion:*:*:*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost localhost4 localhost6 ip6-localhost broadcasthost zstyle ':completion:*:*:*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*' '*localdomain*' '*.eeleater.org' '*.local' zstyle ':completion:*:*:*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*' # Define named directories: ~w <=> Windows home directory on WSL. [[ -z $z4h_win_home ]] || hash -d wsl=$z4h_win_home # Set shell options: http://zsh.sourceforge.net/Doc/Release/Options.html setopt multios setopt prompt_subst setopt inc_append_history z4h source $HOME/.config/local/rc.zsh