Skip to content

Latest commit

 

History

History
62 lines (41 loc) · 2.07 KB

README.md

File metadata and controls

62 lines (41 loc) · 2.07 KB

dotfiles

Proper dotfiles are the very heart of an efficient working environment.

On macOS, Homebrew is the package manager.

Usage

Synopsis

Clone this repository and bootstrap your system:

git clone [email protected]:mavam/dotfiles.git ~/.dotfiles
cd .dotfiles
./bootstrap

The bootstrap script will ask you whether you'd like to setup specific components.

Dotfile Management

The POSIX shell script dots installs (= symlinks) and removes subsets of dotfiles according to your needs. For example, install all dotfiles as follows:

./dots install -a

Alternatively, install only dotfiles selectively, with positional arguments matching names in this repository:

./dots install git gnupg

Similarly, remove all installed dotfiles:

./dots uninstall -a

The installer script does not override existing dotfiles unless the command line includes the -f switch. When in doubt what the installation of a subset of the dotfiles would look like, it is possible to look at the diff first:

./dots diff -a

To add a configuration for an exemplary tool "foo", create a new directory foo and add the dotfiles in there, as if foo is your install prefix (typically $HOME). You can "scope" a tool as local by adding a tag-file foo/LOCAL. This has the effect of creating a nested configuration directory in your prefix, instead of symlinking the directory. For example, you may not want to symlink ~/.gnupg but only the contained file ~/.gnupg/gpg.conf. Without the scope tag gnupg/LOCAL, you would end up with:

~/.gnupg -> dotfiles/gpg/.gnupg

as opposed to:

~/.gnupg (local directory)
~/.gnupg/gpg.conf -> dotfiles/gpg/.gnupg/gpg.conf