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.
Subscribe to my newsletter
Read articles from Davis Barber directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Davis Barber
Davis Barber
I am a software engineer and engineering leader with over a decade of experience in the industry. I've worked for seed stage startups and seasoned tech titans. I've seen what success looks like and what failure can teach you. I value strong cross-functional relationships and a willingness to wear many hats.