cmc/dotfiles

Using GNU Stow to manage my dotfiles.

clone: git clone https://gitbay.org/cmc/dotfiles.git

758b846efe350dd5f3d5f70025698f2258c9c283

verified · cmc

author: Christian Cleberg <hello@cleberg.net> · 2026-05-18T20:25:29Z

fix: lazy load nvm and compinit on managed mac to reduce startup times
 common/zsh/.zshrc | 34 ++++++++++++++++++++++++++--------
 1 file changed, 26 insertions(+), 8 deletions(-)

diff --git a/common/zsh/.zshrc b/common/zsh/.zshrc
index 6803b5d..a1789be 100644
--- a/common/zsh/.zshrc
+++ b/common/zsh/.zshrc
@@ -53,14 +53,31 @@ fi
 # NVM Configuration
 export NVM_DIR="$HOME/.nvm"
 NVM_SH_PATH="$BREW_PREFIX/opt/nvm/nvm.sh"
-if [[ -s "$NVM_SH_PATH" ]]; then
-  source "$NVM_SH_PATH"
-fi
 
-NVM_BASH_COMPLETION_PATH="$BREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm"
-if [[ -s "$NVM_BASH_COMPLETION_PATH" ]]; then
-  source "$NVM_BASH_COMPLETION_PATH"
-fi
+_load_nvm() {
+  unset -f nvm node npm npx
+  [[ -s "$NVM_SH_PATH" ]] && source "$NVM_SH_PATH"
+}
+
+nvm() {
+  _load_nvm
+  nvm "$@"
+}
+
+node() {
+  _load_nvm
+  node "$@"
+}
+
+npm() {
+  _load_nvm
+  npm "$@"
+}
+
+npx() {
+  _load_nvm
+  npx "$@"
+}
 
 # History Settings
 HISTFILE=~/.histfile
@@ -77,7 +94,8 @@ setopt HIST_REDUCE_BLANKS
 
 bindkey -e
 zstyle :compinstall filename "$HOME/.zshrc"
-autoload -Uz compinit && compinit
+autoload -Uz compinit
+compinit -C
 
 # p10k
 P10K_THEME_PATH="$BREW_PREFIX/share/powerlevel10k/powerlevel10k.zsh-theme"