• Stars
    star
    363
  • Rank 117,374 (Top 3 %)
  • Language
    Vim Script
  • Created about 15 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Hashrocket Dot Files

DOTMATRIX

Dotmatrix is a collection of dotfiles used at Hashrocket to customize various development 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!

What are dotfiles?

Dotfiles 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

Most users will see a long list of files that you might not have know were even there! Since they start with a '.' the OS ignores them (usually) - those are your current dotfiles, Dotmatrix hopes to replace/augment whatever configuration you already have.

Install

Start by cloning down the repo:

$ git clone https://github.com/hashrocket/dotmatrix.git

Then run this script:

$ bin/install

This script symlinks all dotfiles into your home directory.

Hashrocket Workstation

Dotmatrix comes with gitconfig for our Hashrocket Workstations that can be installed like so:

$ bin/install --workstation

Safe by Default

When you install Dotmatrix like this, only files that do not already exist in your $HOME directory will be linked. If you have your own .bashrc file, for example, Dotmatrix won't mess with it.

What we'd recommend, however, is moving that file to ~/.bashrc.local, and Dotmatrix will source it for you.

Partial Installation

Sometimes it's useful to only install part of Dotmatrix. For partial installation, you can create a FILES file in the root of Dotmatrix that contains a newline-delimited list of dotfiles to symlink and keep up to date with Dotmatrix.

When FILES exists in the Dotmatrix source directory, running bin/install will only symlink the dotfiles listed within FILES.

If, for example, you only want the tmux configuration and sharedrc files, and want to ignore all of the rest of Dotmatrix's dotfiles:

$ cd path/to/dotmatrix
$ cat FILES
.tmux.conf
.sharedrc
$ bin/install # Only installs .tmux.conf and .sharedrc

Vim Plugins

For Vim users, there's another command you might want to run, after you've run bin/install from inside Vim:

:PlugInstall

Or from the command line:

vim -c 'PlugInstall | qa'

This will install the set of Vim plugins we use.

After you've done ./bin/install, you'll have a .vimbundle file and this is a manifest of sorts that Vim Plug 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:

Plug 'github-user/repo-name'

You need not include a trailing .git.

If you are upgrading from a previous version of Dotmatrix that used Pathogen make sure to update your .vimbundle.local to the above format. You can do that easily with the following command:

sed -ie "s/\(.*\)/Plug '\1'/" .vimbundle.local

hr

hr is a command with lots of useful scripts as subcommands, based loosely on Basecamp's sub.

When you run bin/install, hr is installed automatically. If you don't want it, simply comment out the line from ~/.zshrc.local or ~/.bashrc.local that initializes it.

To use, just run hr. Each subcommand is self-documenting.

hr plugins

If you have have commands you'd like to add to hr, add them within a "plugin". Plugins are really just folders within hr's "plugins" folder.

The anatomy of a plugin follows:

<root>/
  libexec/
    hr-my-awesome-command
    hr-my-other-command

With the above plugin, hr my-awesome-command would run the script located at hr-my-awesome-command.

Plugins are designed to be git repos. For example, if there were another hr plugin you wanted to add, you could add it like this:

$ hr plugins add my_plugin git://github.com/path/to/git/repo.git

For more information, run hr help plugins

Actively Maintained

At Hashrocket we use Dotmatrix on all of our development machines, then for many of us we get so familiar with the setup that we use it on our personal machines too. That means there's a lot of picky nerds using Dotmatrix every day to make their tools easy and fun to use.

Update

Keeping your Dotmatrix up-to-date is easy. Just visit the Dotmatrix directory and run bin/upgrade. This will fetch the latest changes from GitHub and symlink any new files.

About

Hashrocket logo

Dotmatrix is supported by the team at Hashrocket, a multidisciplinary design and development consultancy. If you'd like to work with us or join our team, don't hesitate to get in touch.

More Repositories

1

decent_exposure

A helper for creating declarative interfaces in controllers
Ruby
1,799
star
2

gatling

Deployment tool for Phoenix apps
Elixir
498
star
3

tilex

Today I Learned
Elixir
495
star
4

ws

websocket command line tool
Go
425
star
5

websocket-shootout

A comparison of websocket servers in multiple languages and frameworks
JavaScript
417
star
6

hr-til

Today I Learned in Ruby
Ruby
341
star
7

slurper

Gem for slurping plain text stories into Pivotal Tracker
Ruby
127
star
8

view_specify

Auto-generate RSpec view specs by interrogating your existing views.
Ruby
55
star
9

unencumbered

Just enough Cucumber in RSpec.
Ruby
53
star
10

capybara-webmock

Mock external requests for Capybara JavaScript drivers
Ruby
48
star
11

mousetrap

CheddarGetter API Client in Ruby
Ruby
34
star
12

namecheap

ruby namecheap API wrapper
Ruby
32
star
13

coming-soon

App to register emails addresses. Intended as a coming soon, pre-launch, splash page.
JavaScript
27
star
14

acts_as_featured

Ruby
25
star
15

design_patterns_in_ruby

Wherein we reimplement the design patterns from the _Design Patterns in Ruby_ book, by Russ Olsen.
Ruby
25
star
16

vim-hashrocket

Mappings we find useful
Vim Script
23
star
17

localpolitics.in

Hashrocket's Martin Luther King Jr. Memorial 2009 Hack Day Apps for America Celebrity Rabies Awareness Pro-Am Fun Run Race For The Cure
JavaScript
18
star
18

terraformation

Generators with a Hashrocket twist
Ruby
15
star
19

vim-macdown

write markdown in Vim with live-reloads in MacDown
Vim Script
14
star
20

hashrocket-rails

Rails engine & generators for bootstrapping a Hashrocket project
Ruby
12
star
21

slack-command-api

A Sinatra API for processing custom Slack commands
Ruby
12
star
22

boot_devcards_example

Example of using devcards with boot
Clojure
10
star
23

graphql_way_rails

This is a Proof of Concept Rails project using GraphQL
Ruby
6
star
24

wowza

Ruby wrapper around the Wowza REST API
Ruby
5
star
25

hr_hotels

Example database for hotels.
Ruby
5
star
26

hr

Hashrocket Sub
Ruby
5
star
27

ecto_pg_extras

A collection of custom functions for PostgreSQL features in Ecto
Elixir
4
star
28

my_emma

Ruby wrapper for the MyEmma Remote Signup API
Ruby
4
star
29

university-bookstore

Hashrocket Training Project for Pre-RailsConf 2010 Workshop
Ruby
4
star
30

hashrocket-vr-example

JavaScript
3
star
31

dibs-ios

An iOS client for the Dibs "Online classifieds without the strangers" web application.
Objective-C
3
star
32

OffBot

πŸ”Œ πŸ€– Timely slack notifications for scheduled holidays and vacations
Ruby
3
star
33

learn_to_program

Curriculums and Programs for Teaching people how to build web applications
Ruby
2
star
34

concepts

A gallery for our side projects
JavaScript
2
star
35

wowza-webhooks

Java
2
star
36

vim-hr-psql

Open psql formatted table definitions from Vim Postgres
Vim Script
2
star
37

chime

Chimes in the Chicago office when someone comes in the front door
Arduino
1
star
38

hacktive

Github activity tracker
Ruby
1
star
39

homebrew-formulas

Hashrocket homebrew formulas
Ruby
1
star
40

spices

Ruby
1
star
41

metro_relic

Easily track custom newrelic metrics with a config file
Ruby
1
star
42

vostok

The Hashrocket middleman template
CSS
1
star
43

trybool

The value parsing tool to return a boolean that you never knew you needed!
Ruby
1
star
44

homebrew-fdw

FDW formulas for Homebrew package manager
Ruby
1
star
45

scored

Simple iPhone app
Objective-C
1
star
46

hashshake

Hashrocket shakes hands 🀝
Ruby
1
star