Streamlining Laptop Setup

Two steps towards consistency and repeatability

Streamlining Laptop Setup

I recently received a welcome upgrade to my professional workstation. However, with great power comes great anxiety and, as with any new machine, I quickly found myself in the familiar territory of stressing about environment setup.

Yet, while stressful, I've often found that setting up a new workstation can be an opportunity to improve the process itself. This time around, in an effort to lean further into consistency and repeatability, I adopted two new practices.

  • Version control to manage Zsh configuration and dotfiles

  • Consistent and flexible color theme across applications

Version control to manage Zsh configuration and dotfiles

In setting up my .zshrc config and learning more about the semantic differences between additional Zsh dotfiles like .zprofile and .zlogin, I decided it was the right time to start thinking about how version control could speed up this process in the future. In considering how a Git repository of my config files could assist, my naive solution would be to set up said repository and use a system of symlinks to connect that repository's files to my $HOME directory and the dotfiles within it.

However, before blindly walking this path, I gave the internet a cursory search to see if similar solutions were commonplace and quickly stumbled upon this guide for "A simpler way to manage your dotfiles", which walks you through the process of using a bare Git repository to manage your $HOME directory dotfiles with version control while avoiding the headaches of symlinks at the same time.

The magic of the bare Git repository may still be a bit beyond me, but after setting up the workflow and committing several files and changes, I can't recommend it enough.

Consistent and flexible color theme across applications

While not necessary, I imagine that terminal and text editor color theming is a common part of any engineer's environment setup. However, the plethora of options and the complexities of Zsh prompt and output customization can easily take what should be a simple and fun process and turn it into one that breeds anxiety and uncertainty.

In order to avoid these stressors now and moving forward, I have adopted the usage of a single, flexible color theme across applications. Note that in order to do so and avoid painful manual configuration, you will need to choose a common theme that most applications support by default. In my case, I have chosen the Solarized color theme. Among the many benefits that Solarized provides, the most notable for this use case are its natural support for light and dark modes and its widespread adoption across popular applications like iTerm2 and Visual Studio Code.

Solarized Dark theme for Visual Studio Code

Solarized Dark theme for iTerm2

Solarized Light theme for Visual Studio Code

Solarized Light theme for iTerm2