Open nea89o opened 1 year ago
what is ZDOTDIR
? I've never heard of that.
Quoting man 1 zsh
:
STARTUP/SHUTDOWN FILES
Commands are first read from /etc/zsh/zshenv; this cannot be overridden. Subsequent behaviour is modified by the RCS and GLOBAL_RCS options; the former
affects all startup files, while the second only affects global startup files (those shown here with an path starting with a /). If one of the options is
unset at any point, any subsequent startup file(s) of the corresponding type will not be read. It is also possible for a file in $ZDOTDIR to re-enable
GLOBAL_RCS. Both RCS and GLOBAL_RCS are set by default.
Commands are then read from $ZDOTDIR/.zshenv. If the shell is a login shell, commands are read from /etc/zsh/zprofile and then $ZDOTDIR/.zprofile. Then,
if the shell is interactive, commands are read from /etc/zsh/zshrc and then $ZDOTDIR/.zshrc. Finally, if the shell is a login shell, /etc/zsh/zlogin and
$ZDOTDIR/.zlogin are read.
When a login shell exits, the files $ZDOTDIR/.zlogout and then /etc/zsh/zlogout are read. This happens with either an explicit exit via the exit or logout
commands, or an implicit exit by reading end-of-file from the terminal. However, if the shell terminates due to exec'ing another process, the logout files
are not read. These are also affected by the RCS and GLOBAL_RCS options. Note also that the RCS option affects the saving of history files, i.e. if RCS
is unset when the shell exits, no history file will be saved.
If ZDOTDIR is unset, HOME is used instead. Files listed above as being in /etc may be in another directory, depending on the installation.
As /etc/zsh/zshenv is run for all instances of zsh, it is important that it be kept as small as possible. In particular, it is a good idea to put code
that does not need to be run for every single shell behind a test of the form `if [[ -o rcs ]]; then ...' so that it will not be executed when zsh is in‐
voked with the `-f' option.
Any of these files may be pre-compiled with the zcompile builtin command (see zshbuiltins(1)). If a compiled file exists (named for the original file plus
the .zwc extension) and it is newer than the original file, the compiled file will be used instead.
Basically a systemwide property to change the save location of your ~/.zshrc
ok, so it seems like if in the install script, instead of looking for $HOME/.zshrc
, we did ${ZDOTDIR:-HOME}/.zshrc
(or something) that it would work the same for anyone without that set, and would then work properly for you?
Yep, ZDOTDIR is just for overriding the location of the .zshrc file, the actual .zshrc file works the same.
Then all that's needed is a minor change, and a test :-) feel free to submit a PR if you have the time!
How did you install
nvm
?install script in readme
What steps did you perform?
What happened?
A new file at
~/.zshrc
was created and populated withWhat did you expect to happen?
For the file at
$ZDOTDIR/.zshrc
to be populated (in my case~/.config/zsh/.zshrc
)Is there anything in any of your profile files that modifies the
PATH
?/etc/zsh/zshenv
: