erdtree (erd) replaces GNU tree as the tree-style directory lister. It uses
a parallel walker (the `ignore` crate, one thread per core) where GNU tree is
strictly serial. Benchmarked over 658k entries under ~/development, best-of-3,
warm cache, plain output, hidden included, gitignore off:
erd (16 threads) 2.35s
GNU tree 2.1.0 4.22s (1.8x slower)
erd (1 thread) 4.97s (so ~2.1x thread scaling)
eza --tree 15.87s (6.8x slower)
Three changes:
- home_config/erdtree/.erdtree.toml — erd ships as a disk-usage tool, so its
stock defaults are root-at-bottom, size-sorted, with a du column. The
top-level table overrides that to behave like GNU tree; `erd -c du` keeps
the original behaviour and `erd -c all` disables the gitignore/hidden
filtering. Stowed to ~/.config/erdtree.
- home_root/.zshrc — `alias tree='erd'`, plus ~/.zfunc prepended to fpath for
the generated completion. The fpath line goes before the primary compinit
at the top of the file rather than adding a third compinit call after it.
- lk-installers/install-apps — erd is now a runtime assumption of the
dotfiles (the alias depends on it), so a fresh box must get it: brew on
macOS, cargo on Linux (not packaged in Debian apt). The zsh completion is
generated per installed version rather than tracked, matching how the other
generated completions in this repo are handled.
Caveat worth knowing: erd respects .gitignore by default, which GNU tree does
not. `-i` disables it, `-.` shows hidden files.