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.

Join CTO Newsletter

Join more than 2600 CTOs and Engineering Managers

More Stuff from Stephan

Other interesting articles for CTOs

β€’ Best books for CTO β€’ The CTO Book β€’ Experienced CTO Coach β€’ Engineering Manager Coaching β€’ CTO Mentor β€’ CTO Mentoring β€’ CTO Newsletter β€’ How many developers do you need? β€’ Postgres for Everything Product Roadmaps for CTOs β€’ How to become a CTO in a company - a career path

Other Articles

Scrum is no longer fit with remote work

Learn from Success Not From Failure

I'm too old

Musings about error handling mechanisms in programming languages