If I do something on the command line more than a couple of times, I start thinking about how to stop doing it by hand. That instinct is the thread running through all of these articles. Most of them came straight out of my own workflow: a small annoyance, a few lines of shell, and a task that never needs my full attention again.
It adds up. Individually none of these scripts is impressive. Together they are the difference between a machine that works the way I think and one I am constantly fighting. The most complete version of this is my bootstrap script, which sets up an entire Mac from nothing in one command, but it started with exactly the kind of small one-off functions you will find in the first section.
Shell scripting
Reusable shell techniques: writing functions that accept named or abbreviated arguments, switching Node versions automatically per project, and batch-converting files from the command line.
-
How to Quickly Change Node Versions Between Projects Using Nvm And Shell Scripting
Learn how I quickly switch between node versions when working on different projects.
-
How to quickly convert multiple word documents to PDFs on macOS
Learn how to use soffice on the command line to quickly convert multiple word documents to pdf documents.
-
Shell script functions that can take arguments as either named or abbreviated values
Using case statements in shell script functions to pass in named or abbreviated parameters as arguments.
macOS automation
Bending macOS to fit how I work: spacing out the Dock, hiding the desktop for screen shares, tiling windows with yabai, and automating a full machine setup with a single script.
-
Automating macOS Setup: Bootstrap, Teardown, and Keeping It All in Sync
Setting up a new Mac used to mean an afternoon of clicking through installers and trying to remember what I had last time. I fixed that with a single bash script — and learned a few things the hard way.
-
My yabai and skhd Config for macOS Tiling Window Management
My complete yabai and skhd config files for tiling window management on macOS: keybindings, rules, and scripts you can copy and adapt.
-
Hide Desktop Icons in macOS
Conducting a training or giving a presentation? Look more professional and hide your desktop.
-
Adding Empty Spaces to macOS Dock
Having spaces in your docker sometimes makes it easier to organize your applications into groups.
Want to get in touch? Connect on LinkedIn or send an email .