Show HN: Ls-f a fast, zero-dependency ls with Nerd Font icons (Rust rewrite)
0x0003r Monday, February 16, 2026Hey HN People, Like many of you on Arch + Hyprland (or really any rolling distro), I used to rely on eza for nice-looking ls output with icons, git status, tree view, etc.
Then a recent update broke eza's package icons just turned into ugly boxes/rectangles everywhere.anyhow ls is also stop working .Reinstall, rebuild deps, downgrade, nothing helped. Classic rolling-release Friday night.
I got tired of fighting it so I finally finished something I'd been tinkering with for a while: ls-f.
It's a from-scratch Rust rewrite (v5 is the new one) of an old Bash ls wrapper I made years ago. Main goals were:
- Single static binary → zero runtime deps (no drama when Arch updates something) - Nerd Font icons for file types (hundreds supported) - Tree view built-in (--tree) - Git indicators (--git) without extra cruft - Speed basically on par with GNU ls (benchmarks in the readme — icons add ~0 overhead in most cases) - Supports most common ls flags so aliases just work: ls='lsf', ll='lsf -l', la='lsf -la', lt='lsf --tree'
No config files needed anymore, no Python/Bash layers. Just drop the binary in PATH.
Repo: https://github.com/swadhinbiswas/ls-f
Quick install on Arch (or anywhere with Rust/cargo): ```bash git clone https://github.com/swadhinbiswas/ls-f.git cd ls-f make install # or cargo install --path . ```
Make sure your terminal uses a Nerd Font (JetBrainsMono NF, MesloLGS NF, etc.) , otherwise icons show as boxes (there's a troubleshooting section in the readme).
It currently has only a handful of stars because I mostly built it for myself + a few friends, but after this eza breakage I'm actually using it daily now and it feels more reliable.
Would love to hear thoughts / feedback / brutal honesty: - Does it cover the flags you actually use? - Any missing icon or weird rendering in your setup? - Better name? (ls-f is short but maybe too generic)
Thanks for looking!
(Using it right now in Hyprland on Arch feels snappy and zero surprises so far.)