Skip to content

Cookiecutter Dotfiles

Cookiecutter Dotfiles is a template for creating your own dotfiles repository powered by Cookiecutter.

What is a dotfiles repository?

Many programs (specially the ones related with software development) store their configuration in plain text files under the user's home directory. These files are called dotfiles because their names start with a dot, ., to indicate most of the Unix operating systems that they are hidden files.

A dotfiles repository is a Git repository that contains all the dotfiles of a user so that they can be easily copied or linked to their target location. This repository can be used to keep track of the changes made to the dotfiles and to share them across different machines using remote Git repositories services like GitHub.

We can extend the concept of dotfiles to include other basic scripts which can be used to install and configure the desire software in a new machine. In this way, we can automate the process of setting up a new machine.

Explore other dotfiles repositories

Since many developers use dotfiles repositories, you can find many examples across the web. In GitHub, you can find "The unofficial guide to dotfiles on GitHub", a list of dotfiles repositories and resources.

Our template was initially inspired by the Cătălin dotfiles repository, a great example of a dotfiles repository that we recommend to check.

How does this template work?

This template is a Cookiecutter template. Cookiecutter is a command-line utility made in Python that allows you to create projects from templates by prompting you for information about your project.

Cookiecutter resources

The idea behind this template is to provide a basic structure for a modular dotfiles repository. This means that the repository can be divided into several modules or packages, each one containing specific install and setup scripts and files to link. This way, you can easily add new modules to the repository and keep the repository organized.

Furthermore, the template provides some scripts so that you can easily install and setup the dotfiles in a new machine with just a single command. For this, your template repository should be hosted in a remote Git repository service, e.g., GitHub.

Supported remote Git repositories

For the moment, the template only supports repositories hosted in GitHub. If you want to use another remote Git repository, you can contribute to the project. Please, refer to the Contributing section for more information.

Refer to the Usage section to learn how to use this template.