Join 5000 CTOs and engineering managers for opinionated insights Subscribe

Upgrading my WSL with Zsh and better tools

Fsf, Tabby, Lsd, bat and more


After 15 years with Apple I left my iMac Pro behind and had switched to Windows some years ago. The reason pre-M1 was mainly because I wanted to run some local AI models and needed a powerful GPU to do so, my eGPU experiments had failed (and I need Affinity and PowerPoint, so no Linux for me. I gave up dual booting after some time).

Luckily - although some parts of Windows are really annoying, settings for example, or bluetooth headsets - there is not too much difference to me, mainly because:

Me OSX:     Zsh-Obsidian-Goland-Affinity-PowerPoint-FF
Me Windows: Zsh-Obsidian-Goland-Affinity-PowerPoint-FF

WSL has been working for me for some time now, but it was time to upgrade my shell.

Following some guides, I came up with:

  • Tabby for a better terminal - WSL had some problems with Nerdfonts for me, and CTRL-Space to get Tabby to the front is a really useful and nice feature
  • lsd for better ls - the icons are nice, and the colors, mostly for the type and age of files
  • bat for an excellent cat replacement with syntax highlighting - I love this so much, how could I have lived with cat for 30 years with no syntax highlighting and nice line numbers? And it just works, acting as a simple cat if needed, showing its power when it can
  • fzf for fuzzy search - a lot has been said about this before, it’s a game changer to find a file or directory based on realtime search
  • zoxide for a better cd - it remembers all directories, instead of cd ..\..\a\b\c you just type cd c. Together with zsh history autocompletion even stronger
  • zsh and oh my zsh with plugins - autocompletion, better history plugins, syntax highlighting. The problem I had in the past with oh-my-zsh, long startup times, is gone. But it frightens you when your shell has a profiler to profile startup times.
  • topgrade to update all my coding environments at once - very nice, especially the upgrade of all #Golang and #Rust shell commands I use in development, like air. Before topgrade I did not upgrade them at all.
  • broot for browsing directories - an alternative to fzf if you don’t remember the directory name
  • fd for find - Working with find for 30 years, never very happy, fd just works and is faaaaaaast
  • difftastic for syntactic diffs - Looking for a better diff since years, tried this and that, for now this is my default shell diff (not the UI one)

I wonder now which of these do I need on my Linux production servers. Or does that make them insecure?

Overall very happy now. Colorful, but I like colors. The reason I did like my Amstrad CPC more than C64s was the colors even forty years ago.

More Stuff from Stephan

My Book for CTOs Amazing CTO Book
Join 5000 #CTOs and engineering managers for weekly insights
- no ads, no sponsorships, free.