A simple way to keep and use your dotfiles

September 6, 2025

Reinstalling a system is usually boring and time-consuming. Why not speed it up?

We can do it by keeping our Dot Files organzied and ready.

Dot Files

But what are Dot Files?

Dot Files (we’re calling them from now on “dotfiles”) are files on Unix-like systems whose names (usually) start with a period, used to keep configurations.

Common examples include:

  • .bashrc – settings for the Bash shell.
  • .zshrc – settings for the Zsh shell.
  • .gitconfig – personal Git configuration (username, email, aliases).

Why care? If we back them up, we can easily transfer our settings to a new machine.

Note that those can also be folders such as .ssh.

Eget

Some softwares are distributed as releases on their github pages. We can grab the one by one or use eget to grab them for us.

Eget is a little program that goes to the github page, downloads the binary, and place them inside the bin folder of our system.

I use the following eget.toml configuration file:

[global]
target = "~/.local/bin"
upgrade_only = true

I keep an eget.txt file and install them one by one by running:

Terminal window
eget <git_user/repo_name>

I usually do this one by one. Why? I want to make sure the software I am installing is still relevant to me.

Package Managers

Some other programs are only installed via package managers.

For those, I keep a <package-manager.txt> file, and then install them one by one.

Some example of package managers include:

  • apt for Debian-based systems.
  • homebrew for macOS
  • pacman for Arch

I keep a github repository with all my dotfiles inside.

I usually export the dots folder using:

Terminal window
export DOTS_PATH="${HOME}/repos/dots"

Then, I create symbolic links from the proper dotfile location to the ones inside the repository:

Terminal window
ln -s ${DOTS_PATH}/.bashrc ${HOME}

I also add symlinks one by one, for the same reason as before.

Keep a README.md

This one is self-explanatory. Help our future self out by keeping a README.md so that we know what we did.