A collection of my configuration files.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



This repo contains my standard configurations for POSIX systems. The intention is that this repo can be easily cloned and deployed to configure new machines and users. The dotfiles themselves are located in the files directory.


You need to be using zsh to make use of these dotfiles. Change your shell using the following command:

chsh -s /bin/zsh

If you don't have zsh installed yet, do:

sudo apt-get install zsh

Then restart your shell session.


Get set up with these dotfiles:

git clone --recursive git@github.com:adamheins/dotfiles ~/.dotfiles
cd ~/.dotfiles

The dotfiler.py script backs up all of the local machine's current dotfiles and then creates symlinks to the dotfiles in this repo.


The dotfiler.py script will automatically install the brew package manager.


The Antigen plugin manager is used for zsh plugins. It is already packaged as part of these dotfiles and should automatically install plugins listed in the .zshrc upon session startup.


Install a recent version:

brew install tmux

Initialize the Tmux Plugin Manager:

tpm init



brew tap neovim/neovim
brew install neovim

You'll also need to get Python support for neovim:

pip2 install neovim
pip3 install neovim

Open neovim and initialize plugins:


Further Provisioning

# Install NodeJS. This is needed as a runtime for other utilities.
sudo apt-get install nodejs

# Install safe-rm.
sudo apt-get install safe-rm

# Install insect scientific calculator.
sudo npm install -g insect

User Directories

Change the $HOME directory structure by editing ~/.config/user-dirs.dirs.


Add a dotfile

  1. Move the dotfile from its current location to ~/.dotfiles/files/.
  2. Add the file to the config/links.json file.
  3. Run the dotfiler.py script to create the symlink.

Managing Dependencies

There may be dependencies that must be installed on the system before the dotfiler is run. These would be programs without which the system would be unusable with the dotfile set up. These programs should be added to the config/dependencies.json file.

Running shell scripts

The dotfiler is also capable of running shell scripts as its final step, to further configure the system. The shell scripts are assumed to reside somewhere in the tools directory, and should be listed in the next.json file.