# this is my zsh config. there are many like it, but this one is mine. # shellcheck shell=bash # export VERBOSE=1 # export DEBUG=1 export DOTFILES="$HOME/.dotfiles" LOCAL_SHARE="$HOME/.local/share" export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$LOCAL_SHARE/bob/nvim-bin:$LOCAL_SHARE/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH" export SHARED_SCRIPTS_SOURCED=0 source "$DOTFILES/config/shared.sh" eval "$(oh-my-posh init zsh --config "$DOTFILES/config/omp/own.toml")" # Function to load antigen if available load_antigen() { local antigen_zsh_path="$XDG_BIN_HOME/antigen.zsh" # shellcheck source=../../.local/bin/antigen.zsh if [[ -f "$antigen_zsh_path" ]]; then source "$antigen_zsh_path" antigen use oh-my-zsh # Disable ls colors to avoid issues with eza export DISABLE_LS_COLORS=true export ZSH_TMUX_AUTOSTART=false export ZSH_TMUX_CONFIG="$DOTFILES/config/tmux/tmux.conf" export ZSH_TMUX_UNICODE=true export ZSH_TMUX_AUTOQUIT=false export ZSH_TMUX_DEFAULT_SESSION_NAME=main zstyle ':omz:plugins:eza' 'dirs-first' yes zstyle ':omz:plugins:eza' 'git-status' yes zstyle ':omz:plugins:eza' 'icons' yes zstyle ':omz:plugins:eza' 'ls' yes zstyle ':omz:plugins:eza' 'prompt' yes if [[ "$OSTYPE" == darwin* ]]; then zstyle :omz:plugins:ssh-agent keychain yes fi zstyle :omz:plugins:ssh-agent lazy yes zstyle :omz:plugins:ssh-agent quiet yes # z, the zsh version export ZSHZ_DATA="$XDG_STATE_HOME/z" antigen bundle z x-have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv # these should be always available antigen bundle jreese/zsh-titles antigen bundle gnu-utils antigen bundle ssh-agent antigen bundle gpg-agent antigen bundle brew # antigen bundle tmux antigen bundle colored-man-pages antigen bundle zsh-users/zsh-completions antigen bundle eza # this needs to be the last item antigen bundle zsh-users/zsh-syntax-highlighting antigen apply fi } # Function to source FZF configuration source_fzf_config() { local fzf_config="${DOTFILES}/config/fzf/fzf.zsh" if [[ -f "$fzf_config" ]]; then # shellcheck source=config/fzf/fzf.zsh source "$fzf_config" fi } # Function to set up tmux window name plugin if tmux is active setup_tmux_window_name_plugin() { if [[ -n "$TMUX" ]]; then local tmux_window_name_plugin="$DOTFILES/config/tmux/plugins/tmux-window-name/scripts/rename_session_windows.py" if [[ -f "$tmux_window_name_plugin" ]]; then tmux_window_name() { ($tmux_window_name_plugin &) } add-zsh-hook chpwd tmux_window_name tmux_window_name fi fi } main() { load_antigen source_fzf_config setup_tmux_window_name_plugin if x-have antidot; then eval "$(antidot init)" fi source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc" } main "$@"