I recently got a new work computer (a 15″ MacBook Pro) and was given the choice of copying across the image from my old one or starting afresh. It’s always good to take stock of what software you are using so I chose the second option. Here’s what I installed:
From my point of view, the most essential piece of software that you can install on MacOS. It’s a package manager that installs command line software as well as GUI applications. It gives you a way to install software in a generic way and from a reputable source, upgrade it when a new version comes out, and a way to keep track of what you’ve already installed. Unless stated, all the following software is installed using it.
The Terminal Client that comes with MacOS is not very good and it doesn’t need to be because ITerm2 exists. It is easy to configure, contains a multitude of shortcuts and helpful features and just gets out of your way.
I spend a lot of time on the command line and I’m not a huge Bash fan (the default shell that is installed in MacOS). Fish feels intuitive, and easy to learn. Function are easy to write, autocompletion works better than you could expect and you can always switch back to bash if you need to run a specific Bash script.
Configuring Fish manually is an intimidating task. Oh-my-fish (named after the Zsh equivalent) gives you a set of packages and themes to install. Themes are the most interesting feature for me. I use the bobthefish theme to display interesting information on my shell prompt. It tells me what directory I’m in, what the return status of the last command was and has git integration too.
IntelliJ is a Java IDE but calling it that does it a disservice. It’s also a terminal client, a database client, and a workflow manager. The Java coding experience is brilliant and it makes huge projects easy to browse. It does have it’s downsides: it eats memory and CPU and doesn’t cope brilliantly with generated source code.