From cbebbffee0a7fea43e6d3b73488397e0c4beedc1 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 18 Jan 2026 08:05:33 -0700 Subject: [PATCH] [zsh] Establish a DOTFILES_HOME variable Look for a config file at ~/.config/dotfiles-home that contains the path to the repo, or check the usual location of ~/.dotfiles. Do this in a shell function in .zshenv so it's repeatable. This needs to be done very early in the init process. --- zsh/func/init-env-tilde-paths | 2 +- zshenv | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/zsh/func/init-env-tilde-paths b/zsh/func/init-env-tilde-paths index d6af187..70acbd3 100644 --- a/zsh/func/init-env-tilde-paths +++ b/zsh/func/init-env-tilde-paths @@ -16,7 +16,7 @@ function init-env-tilde-paths break done - export df=~/.dotfiles + export df="$DOTFILES_HOME" } init-env-tilde-paths "$@" diff --git a/zshenv b/zshenv index ead3559..a322249 100644 --- a/zshenv +++ b/zshenv @@ -5,6 +5,22 @@ unsetopt GLOBAL_RCS export SYS=`uname -s | tr A-Z a-z` +function init-env-dotfiles-path +{ + local dotfiles_config="$HOME/.config/dotfiles-home" + if [[ -f "$dotfiles_config" ]]; then + export DOTFILES_HOME=$(cat "$dotfiles_config") + return + fi + + if [[ -f "$HOME/.dotfiles/setup.sh" ]]; then + export DOTFILES_HOME="$HOME/.dotfiles" + return + fi + + echo "WARNING: Couldn't find path to dotfiles" 1>&2 +} + function init-env-fpath { local -r fpath_candidates=( \ @@ -23,6 +39,7 @@ function init-env-fpath done } +init-env-dotfiles-path init-env-fpath autoload -Uz do_init_functions