This post is part of the $HOME... series.
Falling backwards into POSIX.
I have been using zsh for over a decade now. For the most part, this has been
across machines I largely have administrative control over. HPC systems are
always a notable exception. Over the past half year, I’ve found myself working
on dozens of machines where even chezmoi and pixi~/~micromamba workflows
cannot comfortably bring $HOME ergonomics 1.
bash is paved with $SHELL sThere are far too many today to bother enumerating, but in short order 2:
nushellspack made it a
non-starter 3.fishspack issue. However, I found I was the
wrong audience for it; features like global, browser-based customization are
not useful for my terminal-centric, chezmoi focused workflow 4.xonshsubprocess for scripts, but a
non-starter in terms of being a good $SHELL 5For the most part I had resigned myself to fish. It was fast, needed very few
plugins 6.
Eventually I came across this post by Cody Hiar on ble.sh, and decided to take
the plunge and shift back. A driving force for this is also that most of my
dotfiles focus on using rust equivalents of what used to purely SHELL
specific themes / tools; e.g. starship over powerline10k.
ble.sh is great but it isn’t a catch-all solution. In particular, there are
still inherent issues with using bash as a customized shell, due to concerns
about clobbering settings from existing machines, e.g. lua module
settings.
POSIX compatibility is here to stay on most machines. It is unlikely that this
will change in the near future. To that end, it makes more sense to adaptively
stick to bash and save my “strangeness budget" 7 for new-fangled programming
languages instead of shells8.