Dotmatrix is a collection of dotfiles used at Hashrocket to customize various deveopment tools. This project is the culmination of many years worth of tinkering with our favorite tools to get them to behave just right. We think using dotmatrix makes working with these tools more pleasant and hope you will too!
Looking for wmenv documentation? See WMENV.md.
What are dotfiles?
Dotfile are really just plain text files that start with a '.' and they are used to set preferences for things like Git and Vim. To see your current dotfiles, open a terminal and in your home folder run this:
$ ls -a
Start by cloning down the repo:
$ git clone https://github.com/healthagentech/dotfiles.git
Then run this script:
This script symlinks all dotfiles into your home directory.
Please note: This will only install files that do not already exist in your $HOME directory. If you have, e.g. your own .bashrc file, you can move it to ~/.bashrc.local, and dotmatrix will source it for you.
Sometimes it's useful to only install part of dotmatrix. For partial
installation, you can create a
FILES file in the root of dotfiles that
contains a newline-delimited list of dotfiles to symlink and keep up to date
FILES exists in the dotfiles source directory, running
will only symlink the dotfiles listed within
If, for example, you only want the tmux configuaration and wmrc files, and want to ignore all of the rest of dotfiles's dotfiles:
$ cd path/to/dotfiles $ cat FILES .tmux.conf .wmrc $ bin/install # Only installs .tmux.conf and .wmrc
For Vim users, there's another script you might want to run, after you've run bin/install:
This will install the set of Vim bundles we use.
After you've done ./bin/install, you'll have a .vimbundle file and this is a manifest of sorts that the vimbundles.sh script will use to install various vim plugins. If you have other plugins that you like that aren't on this list, you can put them in a ~/.vimbundle.local and that will be installed secondarily.
The ~/.vimbundle.local file should include one plugin per line, each having the following format:
You need not include a trailing
In addition, our Dotfiles support the ability to limit plugins for a given project. Simply place a
.vimbundle file in the project root, containing a whitelist of the plugins that should be loaded. This gives us the flexibility to have specific global, personal and project-specific plugin configurations that match the behavior of the
.vimrc file. This gives us the ability to experiment with new plugins easily, as well as to triage potential issues by limiting what is loaded.
.vimbundles are also consulted when installing/updating plugins -- as long as they are within the
$WELLMATCH_DIR. This directory can, of course, be overridden on your local machine should you choose to organize things differently.
In order for this to work, your terminal emulator needs to use a font with the requisite symbols. A list of them can be found in the powerline-fonts repository. Some recommended choices are Hack, Meslo or Fira. To use, download the font to your local machine, install it (on OSX, this means using Font Book), and configure your terminal emulator to use them. Note that you may need to tweak the font settings (particularly the size) to get the chevrons to line up juuuuuuust so.
In case you're using iTerm2: to configure, go to
Text, and set both the
Regular Font and
Non-ASCII Font settings to the one you just installed. You may have to tweak the font size, particularly for the
Non-ASCII Font setting, to get the chevrons to line up. Using the Hack font, you will likely need to set
Non-ASCII Font size to be 1pt smaller than the
Regular Font size.
Keeping your dotfiles up-to-date is easy. Just visit the dotfiles directory
bin/upgrade. This will fetch the latest changes from GitHub and
symlink any new files.