Home

Awesome

pradyunsg's dotfiles

Setting up a new machine

Clone this repository and run the sync script.

mkdir ~/Developer && cd ~/Developer && \
  git clone https://github.com/pradyunsg/dotfiles.git && cd dotfiles && \
  scripts/sync

Functional overview

This follows a topical layout (taking inspiration from @holman's dotfiles) where each topic is a directory containing related files. The home directory's files are symlinks to the actual files in this repository's clone.

This repository's is managed as a symlink farm, with the logic for managing the farm living in scripts/sync.

Additional repositories

This setup uses a ~/.dotfiles.toml file for determining what files need to be brought over. This is intended to be customizable.

You can add an additional repository by name, by adding another entry to the [repositories] table in the ~/.dotfiles.toml file.

[repositories]
personal = "/Users/pradyunsg/dotfiles"
work = "/Users/pradyunsg/work-dotfiles"

Resolving conflicts between repositories

If two repositories provide the same dotfile, you can set up an override using the [[conflicts]] array of tables.

[[conflicts]]
file = ".bashrc"
use = "work"

[[conflicts]]
file = ".zshrc"
use = "personal"

License

The contents of this repository are licensed under the GPL v3 license.