Skip to content

My Backup Setup (Part 2): Installation Scripts

Terminal window showing a generic bash setup script

In my last post, I covered how I use Dropbox, Git, and yadm to back up and sync my documents, projects, and config files. In part 2, I want to focus on how I install apps and customize my system with Bash scripts.

What happens when you install or update Omarchy? A ton of Bash scripts are executed to install software, configure the machine, and start services. What happens when you select something from the Omarchy menu (Super + Alt + Space)? A Bash script is executed.

Omarchy’s source code is about 90% Bash scripts. The best way to understand how Omarchy works under the hood is to read the scripts in the bin directory. Once you understand how the commands work, you can leverage Omarchy’s built-in scripts to customize and automate your setup.

For example, let’s say you’re setting up a new machine and want to install Dropbox. You could open the Omarchy menu and select Install > Service > Dropbox. Or you can open a terminal and run:

omarchy-install-dropbox

How about removing a pre-installed web app like Basecamp? Again, you can do it from the Omarchy menu or with a single command:

omarchy-webapp-remove "Basecamp"

Ask yourself:

All of this can be scripted with Bash so you can quickly apply the same changes on a new machine or keep two machines in sync.

Bash is not the most intuitive programming language, but in this age of agentic programming, that shouldn’t stop you from getting your feet wet.

I created my own set of personal installation scripts, which are available on GitHub. These scripts are tailored for my needs. They are not meant to be used as-is, but you can absolutely borrow ideas and recipes for your own configuration. That’s the beauty of open-source.

When I created the scripts, I had three goals in mind:

Now, whenever I tweak my setup or add a package I want to keep long-term, I make sure to add a script. It takes a bit of discipline, but it keeps my two computers aligned and lets me rebuild a new machine quickly when needed.

Enough talking, let’s go scripting! 🤓


Previous Post
My backup setup (Part 1): documents, projects, and configs
Next Post
5 small quality-of-life tweaks I contributed to Omarchy 3.4.0