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
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 email@example.com:adamheins/dotfiles ~/.dotfiles cd ~/.dotfiles ./dotfiler.py
The dotfiler.py script backs up all of the local machine's current dotfiles and then creates symlinks to the dotfiles in this repo.
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:
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:
# 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
$HOME directory structure by editing
Add a dotfile
- Move the dotfile from its current location to
- Add the file to the config/links.json file.
- Run the dotfiler.py script to create the symlink.
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.