# vim: set filetype=zsh: # Put this on bottom of ~/.zshrc # https://blog.izissise.net/posts/env-path/ typeset -U path PATH # Alias alias g="git" alias moe="make" alias meo="make" # https://wiki.archlinux.org/title/XDG_Base_Directory export XDG_CONFIG_HOME=~/.config export XDG_CACHE_HOME=~/.cache export XDG_DATA_HOME=~/.local/share # https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/completion.zsh # https://thevaluable.dev/zsh-completion-guide-examples/ # https://damn.engineer/2022/09/28/zsh-case-insensitive zstyle ':completion:*' use-cache on zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/.zcompcache" zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|=*' 'l:|=* r:|=*' zstyle ':completion:*' special-dirs true # zsh plugins # https://github.com/zsh-users/zsh-syntax-highlighting if [[ -f /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]]; then source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh typeset -A ZSH_HIGHLIGHT_STYLES ZSH_HIGHLIGHT_STYLES[path]='none' ZSH_HIGHLIGHT_STYLES[globbing]='none' fi # https://github.com/zsh-users/zsh-autosuggestions if [[ -f /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh ]]; then source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh export ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20 export ZSH_AUTOSUGGEST_MANUAL_REBIND=true export ZSH_AUTOSUGGEST_HISTORY_IGNORE=$HISTORY_IGNORE fi # https://unix.stackexchange.com/q/621606 # https://github.com/zsh-users/zsh-history-substring-search if [[ -f /opt/homebrew/share/zsh-history-substring-search/zsh-history-substring-search.zsh ]]; then source /opt/homebrew/share/zsh-history-substring-search/zsh-history-substring-search.zsh bindkey '^[[A' history-substring-search-up bindkey '^[[B' history-substring-search-down export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='' export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='' export HISTORY_SUBSTRING_SEARCH_PREFIXED=true fi # https://www.topbug.net/blog/2016/09/27/make-gnu-less-more-powerful/ export LESS="-RF -i -K -s -x2 --wordwrap" # git # https://stackoverflow.com/a/43747486 export GIT_COMPLETION_CHECKOUT_NO_GUESS=1 # nvim if command -v nvim &>/dev/null; then export EDITOR=nvim export VISUAL=nvim export GIT_EDITOR=nvim alias vi="nvim" alias vim="nvim" fi # go # https://stackoverflow.com/a/13542854 if command -v go &>/dev/null; then if [[ -d $HOME/go ]]; then export GOPATH=$HOME/go path=($path $GOPATH/bin) fi # Depend on your company # export GOPRIVATE=example.company.com fi # fzf # https://github.com/junegunn/fzf if command -v fzf &>/dev/null; then export FZF_COMPLETION_TRIGGER='~~' # https://github.com/catppuccin/fzf # Remove bg for transparent terminal export FZF_DEFAULT_OPTS="\ --ansi \ --pointer='🔫' --prompt='🪓 ' \ --color=bg+:#313244,spinner:#f5e0dc,hl:#f38ba8 \ --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \ --color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \ --color=selected-bg:#45475a" if command -v fd &>/dev/null; then _fzf_compgen_path() { fd --type file . "$1" } _fzf_compgen_dir() { fd --type directory . "$1" } export FZF_DEFAULT_COMMAND="fd --type file --color=always" export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" export FZF_ALT_C_COMMAND="fd --type directory --color=always" fi if command -v bat &>/dev/null; then export FZF_CTRL_T_OPTS="--preview 'bat --color=always --line-range=:500 {}'" fi if command -v eza &>/dev/null; then export FZF_ALT_C_OPTS="--preview 'eza --tree --level 1 {}'" fi source <(fzf --zsh) # https://github.com/Aloxaf/fzf-tab if [[ -f $HOME/.zsh-plugins/fzf-tab/fzf-tab.plugin.zsh ]]; then source /Users/anon/.zsh-plugins/fzf-tab/fzf-tab.plugin.zsh zstyle ':completion:*' menu no zstyle ':fzf-tab:*' fzf-flags \ --ansi \ --pointer='🔫' --prompt='🪓 ' \ --color=bg+:#313244,spinner:#f5e0dc,hl:#f38ba8 \ --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \ --color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \ --color=selected-bg:#45475a fi fi # https://github.com/BurntSushi/ripgrep if command -v rg &>/dev/null; then export RIPGREP_CONFIG_PATH="$HOME/.config/ripgrep/ripgreprc" fi # https://github.com/eza-community/eza if command -v eza &>/dev/null; then alias ls="eza" alias la="eza -la" alias lt="eza --tree" fi # https://github.com/kovidgoyal/kitty if command -v kitten &>/dev/null; then alias kssh="kitten ssh" fi # https://github.com/dandavison/delta if command -v delta &>/dev/null; then alias da="delta" eval "$(delta --generate-completion zsh)" fi # https://github.com/wilfred/difftastic if command -v difft &>/dev/null; then export DFT_DISPLAY=inline export DFT_TAB_WIDTH=2 fi # https://restic.readthedocs.io/en/latest/manual_rest.html if command -v restic &>/dev/null; then export RESTIC_PASSWORD_FILE=$HOME/.restic_password_file fi # https://github.com/sharkdp/vivid if command -v vivid &>/dev/null; then export LS_COLORS="$(vivid generate catppuccin-mocha)" fi # https://github.com/ajeetdsouza/zoxide if command -v zoxide &>/dev/null; then export _ZO_ECHO=1 eval "$(zoxide init zsh)" fi # https://github.com/walles/moar if command -v moar &>/dev/null; then export MOAR="-no-linenumbers -no-statusbar -quit-if-one-screen -wrap" export PAGER=moar fi # https://github.com/Schniz/fnm if command -v fnm &>/dev/null; then eval "$(fnm env --use-on-cd)" fi # https://github.com/oven-sh/bun if command -v bun &>/dev/null; then if [[ -d $HOME/.cache/.bun/bin ]]; then path=($path $HOME/.cache/.bun/bin) fi fi # https://github.com/casey/just if command -v just &>/dev/null; then alias jst="just" eval "$(just --completions zsh)" fi # https://github.com/rclone/rclone if command -v rclone &>/dev/null; then export RCLONE_PROGRESS=true export RCLONE_EXCLUDE=".DS_Store" fi # https://github.com/crate-ci/typos if command -v typos &>/dev/null; then alias typo="typos --config ~/.config/typos/typos.toml" fi # https://github.com/orhun/daktilo if command -v daktilo &>/dev/null; then export DAKTILO_CONFIG="$HOME/.config/daktilo/daktilo.toml" fi # https://github.com/starship/starship if command -v starship &>/dev/null; then export STARSHIP_CONFIG="$HOME/.config/starship/starship.toml" eval "$(starship init zsh)" fi export PATH