Dotfiles


Table of Contents
What Are Dotfiles?
How Are Dotfiles Used?
How Do I Get Started?

What Are Dotfiles?

Everyone has specific preferences and needs, and that applies to everything. Including the software and operating system we use on a daily bases for work and or recreation. Some people are happy with the way their operating system and software comes configured out of the box, and others like to invest a lot of time and effort into tweaking every last detail and make their system truly their own. Dotfiles are an important component for the latter group of people.

On Linux systems, most pieces of software place a small number of configuration files in the user’s home directory or in some cases a home/.config directory. Those configurations are typically hidden files, and on Linux, hidden files are prefixed with a dot. Hence the name dotfiles. Due to the fact that most of those important software configurations can be found in textual form in those hidden files, we can easily create backups or put them in a version controlled directory to share and track them between machines or users. When we’re talking about someone’s ‘dotfiles’, we thus typically refer to a person or user’s set of system and software configurations.

How Are Dotfiles Used?

Everyone using his or her dotfiles to customize their system in any way, will immediately benefit from creating a git repository and pushing the dotfiles into said repository. This way you naturally have a backup of your configurations, should something happen to your system, while also having a very easy way to keep track of changes and easily being able to revert specific settings if changing them led to an adverse effect. You’re also able to easily sync configurations between different machines this way.

This is particularly interesting for system administrators that need to deploy a number of systems with the same setup, or constantly need to start on fresh installations of Linux and find themselves always performing the same tedious steps after each installation, just to get the system back to a state in which they feel comfortable again. With your own dotfiles on a remote repository, all you need to do after a fresh install is pull those dotfiles down. Bonus points if you’ve included a shell script to bootstrap the files all to their correct location and install missing software packages.

In addition to that, there’s a huge benefit in sharing your dotfiles with other people (of course without any sensitive password data etc.!). There’s a very vibrant community out there of people willing to share their dotfiles. No matter how well you understand your system, it’s pretty much guaranteed that there’s someone out there that understands specific parts of it even better than you. You can reap an immense benefit from this collective knowledge and learn a ton from other people’s dotfiles.

How Do I Get Started?

Creating and maintaining your own dotfiles is not a hard task. It is made even easier by the fact that there’s so many great resources to pull from online. Wether you’re completely new to the idea of dotfiles, or wether you’re an advanced user who’s trying to maximize what you’re getting out of your configurations, GitHub has an amazing list of resources to get you started, from tutorials to bootstrap scripts, all the way up to full fledged frameworks.