ahgamut / superconfigure

wrap autotools configure scripts to build with Cosmopolitan Libc
The Unlicense
159 stars 22 forks source link

Ship all zsh rc files, plus zshinit shim #12

Closed mrdomino closed 7 months ago

mrdomino commented 7 months ago

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.