19 ms·
One of the best zsh tweaks I've done was setting ZDOTDIR="${XDG_CONFIG_HOME}/zsh" in `/etc/zshrc`, then moving all miscellaneous files to the same place:
by dbbolton 10y ago
One of the best zsh tweaks I've done was setting
ZDOTDIR="${XDG_CONFIG_HOME}/zsh"
in `/etc/zshrc`, then moving all miscellaneous files to the same place:
# ~/.config/zsh/.zshenv
export HISTFILE="${ZDOTDIR}/history"
# ~/.config/.zshrc
compinit -d ${ZDOTDIR}/zcompdump
zstyle ':completion:*' cache-path "${ZDOTDIR}/cache"
## separate files for easier and quicker editing:
for file in $ext_files; do
[[ -f ${ZDOTDIR}/${file} ]] && source ${ZDOTDIR}/${file}
done
This method removed quite a few files (history, compdump, cache, zkbd, zshrc, zshenv, zprofile, zlogin, etc.) from my home dir.
I'm sure bash has something similar, but like you said, it would be nice if programs didn't junk up $HOME by default.
- dozzie 10y ago> One of the best zsh tweaks I've done was setting ZDOTDIR="${XDG_CONFIG_HOME}/zsh" Congratulations, you have just broken your zsh configuration. $XDG_CONFIG_HOME may not be set (e.g. when logging with SSH or in console, and even not always in X11).
- digi_owl 10y agoThats a systemd-ism, iirc.
- dbbolton 10y agoFirst off, my shell is not broken. Secondly, my post was highly simplified because obviously I'm not going to include the entirety of every single config file my shell uses. All it takes to avoid this "problem" is a single if-statement, or you can just set the var in /etc/profile or with PAM. I guess I assumed people would not read my post and then start editing a system-wide shell config file unless they knew what they were doing. But if someone did manage to "break" their shell this way, recovery would be trivial because they will still be able to login and the shell will still run, they just might not have all of their configs loaded.