The Joy of Dotfiles

Why Your Computer Should Be Reproducible

Dotfiles make it possible to backup your customizations without necessarily starting all over: find the true joy of working with these powerful files
Unix
Configuration
Reproducible Computer
Author

Ishe Chinyoka

Published

July 9, 2026

When I first discovered applications that stored their settings in plain-text configuration files, it felt like someone had finally switched the lights on.

The mystery disappeared.

Instead of hidden settings buried inside a binary registry or an opaque database, I could simply open a file and read what my computer was doing. Better still, I could change it.

That realization changed how I thought about software.

But another discovery a few years later changed how I thought about computers themselves.

That discovery was dotfiles.

More Than Hidden Files

On Unix-like systems, files whose names begin with a period are hidden by default. These include familiar names like:

  • .bashrc
  • .vimrc
  • .gitconfig
  • .profile

Collectively, people often call these dotfiles.

The name sounds rather unremarkable.

In reality, they represent something much more interesting: they describe your computer.

Not the hardware.

Not the operating system.

Your environment.

Your editor behaves the way it does because of them.

Your shell knows your aliases because of them.

Git knows your preferred editor because of them.

Your prompt, your keyboard shortcuts, your plugins, your themes, your workflow—all of it lives in ordinary text files.

They become a written description of how you like your computer to behave.

Configuration Becomes Knowledge

Once configuration is stored as text, something wonderful happens.

Text can be read.

Text can be searched.

Text can be documented.

Text can be version controlled.

Text can be copied.

Text can be shared.

Instead of being trapped inside one particular machine, your computing environment becomes knowledge.

It becomes portable.

My Computer Became Reproducible

Around 2019, I started maintaining my dotfiles properly.

Seven years later, I still use essentially the same Vim configuration.

My shell setup has remained remarkably consistent.

In fact, I have a directory called .rc that is sourced from my ~/.bashrc. Over the years I have occasionally added a new file, removed an obsolete alias, or adjusted a setting for new software.

Otherwise…

It has simply kept working.

The amusing part is that I have almost forgotten how I originally built it.

That sounds like a bad thing until you realize what it actually means.

I don’t have to remember.

The knowledge has already been written down.

A New Computer Is No Longer a Project

There was a time when getting a new computer meant spending an afternoon rebuilding my environment.

Which aliases had I forgotten?

How did I configure Vim?

What plugins did I use?

Which environment variables mattered?

What did my prompt look like?

Every new machine felt like starting over.

Today, the process is almost boring.

As long as I have a network connection, I clone my bare Git repository containing my dotfiles.

Less than a minute later, I am largely back in business.

My editor behaves correctly.

My shell behaves correctly.

My shortcuts are there.

My workflow feels familiar.

The machine may be new.

The environment is not.

Version Control Changes Everything

Years ago, backing up configuration usually meant copying files onto another disk and hoping you remembered everything.

Git changed that.

Every change becomes part of a history.

If I experiment with a configuration that turns out to be a terrible idea, I can simply roll it back.

If I discover a useful improvement, it becomes part of the permanent record.

My configuration evolves in small, understandable steps.

That is exactly how software evolves.

Why shouldn’t my computing environment evolve the same way?

The Opposite of Starting From Scratch

One thing I never enjoyed about registry-based systems was that customizations often felt tied to a particular installation.

You could certainly back up an entire machine.

You could export sections of the registry.

But neither felt like carrying your environment with you.

Dotfiles turn that idea inside out.

Instead of backing up an entire operating system, you preserve the parts that actually express your preferences.

The operating system becomes replaceable.

Your workflow does not.

Documentation You Write Without Realizing

There is another benefit that is easy to overlook.

Every configuration file explains something.

Every alias has a purpose.

Every function tells a small story.

Every comment reminds your future self why a decision was made.

Over time, your dotfiles become one of the most honest forms of technical documentation you will ever write.

Not because you intended to write documentation.

Because you intended to solve problems.

The documentation emerged naturally.

Plain Text Wins Again

One of the recurring themes on this blog is that plain text has surprising staying power.

Dotfiles are another example.

They are ordinary text files.

No special editor is required.

No proprietary format needs decoding.

No vendor controls how they are interpreted.

They can be edited with Vim, Emacs, Nano, Notepad, or any editor you happen to have available.

They survive operating system upgrades.

They survive hardware replacements.

They survive decades.

Reproducibility Is Freedom

Software developers often speak about reproducible builds.

Scientists care about reproducible experiments.

I think ordinary computer users deserve reproducible computers.

Your machine should not be a collection of lucky accidents accumulated over several years.

It should be something you can describe.

Something you can rebuild.

Something you can understand.

Something you can carry with you.

That is the real joy of dotfiles.

They remind us that our computers are not magical objects that gradually drift into a usable state.

They are systems whose behavior can be written down, preserved, and recreated.

And once your computing environment becomes reproducible, a new computer stops feeling like the beginning of a long weekend.

It becomes just another machine waiting to read your text.