This year I have set up three new dev machines, probably one a quarter. Most have been work-related Macs but I have also setup a Linux home development machine.
I've wanted to have a consistent set of tools that could potentially be used across different operating systems. I've also wanted a bit more power than the standard UNIX command line tools.
Here's a rough list of what I've been installing in the rough order that I've been doing it.
Rust #
Weirdly I don't really do much programming in Rust but all the tools I seem to want to use use it and it is handy to have cargo available wherever you are working.
Atuin #
Atuin is a godsent for any work machine as it is fast, searchable interface into your command history. If someone shows you something it is going to be there and there is a fast interface to quickly recall and modify a command or simply repeat it.
Interestingly I was slow to install it on my older personal machines and kept using the built-in command history but the experience confirmed that I'm a convert and I'm going to put on my oldest machines soon.
Ghostty #
For a long time I was using Wezterm and I really liked it but with the Macs it was easier to get Ghostty via Homebrew. I was also trying to use Ghostty on my Linux machines but I've ended up sticking to Terminator because I've used it forever.
I would probably like to have just one set of shortcuts to learn but so far I haven't really settled on one universal terminal.
asdf #
The universal toolkit, I've struggled to learn the commands (and I didn't love the change in syntax when the project was rebuilt) but it really is your one-stop shop for language management and allows you to specify common project combinations like Node and Python/Ruby versions in the same project folder.
Once I have asdf then I tend to install Python first and then Node.
eza #
I'm not always convinced that this is a better version of ls but then I use ls and it reminds me that is certainly is.
rip2 #
Macs have a pretty good recycle bin but this improved deletion program is a lifesaver on Linux and again I don't want to really have to different experiences on different systems.