fix: add .zshenv for non-login shell support #72
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes maxrantil/vm-infra#114
Adds
.zshenvfile to ensure dotfiles work in non-login shells (SSH, tmux, subshells).Problem
.zprofileonly runs for login shells but sets criticalZDOTDIRZDOTDIR, zsh looks for.zshrcin wrong location ($HOMEinstead of~/.config/zsh/)shortcutrchad 664 permissions, rejected bysafe_sourcesecurity checksChanges
.zshenv: Minimal file with XDG variables and ZDOTDIR (sourced for ALL shells)install.sh: Now symlinks.zshenvto$HOME/.zshenvgenerate-shortcuts.sh: Sets secure 644 permissions on generatedshortcutrcTesting
✅ Tested in VM provisioned with
--test-dotfiles✅ Aliases work in SSH sessions:
cf,sc,h,docall functional✅
ZDOTDIRcorrectly set to/home/mr/.config/zsh✅
shortcutrchas correct permissions (644, not 664)✅ All pre-commit hooks passing
Impact
--test-dotfilesflagFiles Changed
.zshenv(new): XDG and ZDOTDIR setup for all shellsinstall.sh: Added .zshenv symlinkinggenerate-shortcuts.sh: Added chmod 644 for security compliance