Files
dotfiles/zsh/.zshrc
2026-05-26 17:21:01 -04:00

132 lines
3.2 KiB
Bash

export TERM=xterm-256color
export XDG_DOWNLOAD_DIR="$HOME/downloads"
export XDG_PROJECTS_DIR="$HOME/programming"
export XDG_DESKTOP_DIR="$HOME"
export XDG_DOCUMENTS_DIR="$HOME/documents"
export XDG_MUSIC_DIR="$HOME/media"
export XDG_PICTURES_DIR="$HOME/media"
export XDG_PUBLICSHARE_DIR="$HOME/media"
export XDG_TEMPLATES_DIR="$HOME/media"
export XDG_VIDEOS_DIR="$HOME/media"
export EDITOR=nvim
export SUDO_EDITOR=nvim
export GOPATH="$HOME/.local/go"
export PATH="$HOME/.local/bin:$HOME/.local/go/bin:$HOME/opt/bin:$HOME/.cargo/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/opt/lib:${LD_LIBRARY_PATH:-}"
ZAP_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/zap"
[ -f "$ZAP_DIR/zap.zsh" ] && source "$ZAP_DIR/zap.zsh"
[ -f "$HOME/.zprofile" ] && source "$HOME/.zprofile"
if [ -x /home/linuxbrew/.linuxbrew/bin/brew ]; then
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
fi
HISTFILE="${ZDOTDIR:-$HOME}/.zsh_history"
HISTSIZE=50000
SAVEHIST=50000
setopt APPEND_HISTORY
setopt INC_APPEND_HISTORY
setopt SHARE_HISTORY
setopt EXTENDED_HISTORY
setopt BANG_HIST
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_FIND_NO_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_SAVE_NO_DUPS
setopt HIST_REDUCE_BLANKS
setopt HIST_VERIFY
setopt AUTO_CD
setopt AUTO_PARAM_SLASH
setopt GLOB_DOTS
setopt EXTENDED_GLOB
setopt INTERACTIVE_COMMENTS
setopt MENU_COMPLETE
setopt NOMATCH
unsetopt BEEP
autoload -Uz compinit colors bashcompinit
zmodload zsh/complist
zstyle ':completion:*' menu yes select
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=*'
_comp_options+=(globdots)
zle_highlight=('paste:none')
if [[ -f "${ZDOTDIR:-$HOME}/.zcompdump" ]]; then
compinit -C
else
compinit
fi
bashcompinit
autoload -Uz colors && colors
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "
bindkey -e
bindkey -s '^x' '^usource $ZSHRC\n'
bindkey -M menuselect '?' history-incremental-search-forward
bindkey -M menuselect '/' history-incremental-search-backward
bindkey '^H' backward-kill-word
autoload -U up-line-or-beginning-search
autoload -U down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
alias cat='bat'
alias gg='lazygit'
alias v='nvim'
alias cp='cp -v'
take() {
mkdir -p -- "$1" && cd -- "$1"
}
copy() {
xclip -sel c 2>/dev/null
}
if (( $+commands[eza] )); then
alias ls='eza --group-directories-first --icons=auto'
if eza --version | grep -q '+git'; then
alias ll='ls -lh --git'
else
alias ll='ls -lh'
fi
alias la='ll -a'
alias tree='ll --tree --level=2'
else
alias ls='ls --group-directories-first'
alias ll='ls -lh'
alias la='ll -a'
fi
if ! command -v zap >/dev/null 2>&1; then
printf 'Installing zap (release-v1)...\n'
zsh <(curl -s https://raw.githubusercontent.com/zap-zsh/zap/master/install.zsh) --keep --branch release-v1
if [ -f "${ZDOTDIR:-$HOME}/.zshrc" ]; then
source "${ZDOTDIR:-$HOME}/.zshrc"
fi
fi
autoload -Uz plug
plug "zsh-users/zsh-autosuggestions"
plug "zsh-users/zsh-syntax-highlighting"
plug "Aloxaf/fzf-tab"
: "${XDG_DATA_HOME:=$HOME/.local/share}"
: "${XDG_CONFIG_HOME:=$HOME/.config}"