dotfiles/config/zsh/.zshrc

89 lines
2.4 KiB
Bash

# shellcheck disable=SC1091,SC1094,SC2206,SC2148
# macOS specific
if [[ $(uname -s) = "Darwin" ]]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
fi
# prepare directories
mkdir -p "${XDG_CACHE_HOME}/zsh"
mkdir -p "${XDG_DATA_HOME}/zsh"
# history settings
export HISTFILE="${XDG_DATA_HOME}/zsh/history"
export HISTSIZE=10000
export SAVEHIST=$HISTSIZE
setopt EXTENDED_HISTORY
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_FIND_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_REDUCE_BLANKS
setopt HIST_SAVE_NO_DUPS
setopt INC_APPEND_HISTORY
setopt SHARE_HISTORY
rm -rf "${ZDOTDIR}/.zsh_history" && ln -sf "${XDG_DATA_HOME}/zsh/history" "${ZDOTDIR}/.zsh_history"
# set path
path=(~/.local/bin "${path[@]}")
# source configuration
source "${ZDOTDIR}/aliases.zsh"
source "${ZDOTDIR}/keys.zsh"
source "${ZDOTDIR}/fzf.zsh"
## it has to be last
source "${ZDOTDIR}/atuin.zsh"
# set fpath
fpath=(~/.local/git/zsh_modules/wd $fpath)
# theme and colors
if [[ $(command -v vivid) ]]; then
LS_COLORS=$(vivid generate molokai)
export LS_COLORS
else
unset LS_COLORS
fi
source ~/.local/git/zsh_modules/powerlevel10k/powerlevel10k.zsh-theme
source "${ZDOTDIR}/p10k.zsh"
if [[ -r "${XDG_CACHE_HOME}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# completion
autoload -Uz compinit
if [ ! -e "${XDG_DATA_HOME}/zsh/zcompdump.zwc" ]; then
autoload -Uz zrecompile
zrecompile -p -R "${XDG_DATA_HOME}/zsh/zcompdump"
fi
compinit -C -d "${XDG_DATA_HOME}/zsh/zcompdump"
zstyle ':completion:*' menu no
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':fzf-tab:*' fzf-command ftb-tmux-popup
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
zstyle ':fzf-tab:complete:cd:*' popup-pad 60 0
zstyle ':fzf-tab:complete:diff:*' popup-min-size 80 12
# source modules
source "${HOME}/.local/git/zsh_modules/fzf-tab/fzf-tab.plugin.zsh"
source "${HOME}/.local/git/zsh_modules/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh"
source "${HOME}/.local/git/zsh_modules/wd/wd.plugin.zsh"
export WD_CONFIG="${XDG_CONFIG_HOME}/wd_list"
# quick note functionality
if [[ -f "${HOME}/.note" ]]; then
echo
cat "${HOME}/.note"
echo
fi
# cleaning
rm -rf "${HOME}/.warprc"
# local settings
if [[ -f "${HOME}/.local/config/zsh" ]]; then
source "${HOME}/.local/config/zsh"
fi