feat: Update to the zsh setup, moving functions and aliases to their own

files, changing up the plugins and settings to remove stale setups and
to reduce the loading time by nearly half
This commit is contained in:
2026-03-28 16:53:51 -05:00
parent a31d423095
commit 64868c6672
4 changed files with 39 additions and 70 deletions

95
zsh/zshrc Normal file
View File

@@ -0,0 +1,95 @@
# call `zprof` to profile all calls in the current shell
# Uncomment here and at the bottom of the file, then fully reopen a terminal
# zmodload zsh/zprof
# Install oh-my-zsh if it doesn't exist
if [ ! -d $HOME/.oh-my-zsh/ ]
then
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fi
### ZSH Configuration
## Path variables
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
export MANPAGER="less -R --use-color -Dd+r -Du+b" # Colored MAN pages
ZSH_THEME="fb-custom"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
HYPHEN_INSENSITIVE="true"
DISABLE_AUTO_UPDATE="true"
### Plugins
# Install the zsh-autosuggestions plugin if it doesn't exist
if [ ! -d ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions ]
then
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
fi
plugins=(
fzf
zsh-autosuggestions
virtualenvwrapper # Used for autoloading project .venvs
)
# Load Oh My ZSH
source $ZSH/oh-my-zsh.sh
# ZSH options
setopt NO_clobber # Do not clobber files by default
setopt hist_ignore_all_dups # Replace old history with the newest call to an identical call
setopt hist_ignore_space # Remove history lines that start with spaces
# Experimental
setopt append_history inc_append_history share_history
setopt auto_param_slash
setopt no_case_glob no_case_match
# Completion options
# Give descriptions of what the types of completions given
zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
# Give an actual output when there is no match
zstyle ':completion:*:warnings' format '%BNo matches for: %d%b'
### User configuration
export EDITOR=nvim
export NVM_CONFIG_PREFIX=$HOME/.local/
# Paths to prepend to system path
path=(
$GOPATH/bin
$HOME/.cargo/bin
$HOME/.local/bin
$NVM_CONFIG_PREFIX/bin
$path
)
# Autoload keychain for ssh-agent handling if it is installed
if command -v keychain &> /dev/null
then
eval $(keychain --eval --quiet --nogui --noask)
fi
### Environment specific include files
include_files=(
"$HOME/.config/zsh/fb_theme.zsh"
"$HOME/.config/zsh/zsh_local.zsh"
"$HOME/.config/zsh/zsh_aliases.zsh"
"$HOME/.config/zsh/zsh_exports.zsh"
"$HOME/.config/zsh/zsh_functions.zsh"
)
for file in $include_files; do
if [ ! -f $file ]
then
touch $file
fi
source $file
done
# Call to zprof for startup timings
# zprof