zshenv alone is insufficient to fully customize zsh's rc file loading process without intrusive source changes. As such, we configure zsh to load all of its rc files out of the zip. Each rc file in the zip is a simple shim that effectively calls . /zip/etc/zshinit $0 (but they can't actually use $0 since zsh does not set this when sourcing rc files.)
zshinit is a custom rc file loader with a search path configurable as rcpath, analogous to path and fpath. The default rcpath is:
/etc{,/zsh}
This searches for rc files in the default location as well as the one configured by Debian. Note that since rcpath is customizable, it can be modified in /etc{,/zsh}/zshenv (as well as /zip/etc/zshenv.)
This change also stores the /zip/etc files uncompressed in the hopes that that shaves a few ticks off of startup time.
zshenv alone is insufficient to fully customize zsh's rc file loading process without intrusive source changes. As such, we configure zsh to load all of its rc files out of the zip. Each rc file in the zip is a simple shim that effectively calls
. /zip/etc/zshinit $0
(but they can't actually use$0
since zsh does not set this when sourcing rc files.)zshinit is a custom rc file loader with a search path configurable as
rcpath
, analogous topath
andfpath
. The default rcpath is:This searches for rc files in the default location as well as the one configured by Debian. Note that since rcpath is customizable, it can be modified in
/etc{,/zsh}/zshenv
(as well as/zip/etc/zshenv
.)This change also stores the
/zip/etc
files uncompressed in the hopes that that shaves a few ticks off of startup time.