We set up this project because of a few reasons:
- We want everybody to be up and running within 1 hour after joining our company
- We want to share our default configuration to continuously pimp our workflow
- We want to be able to use this script for not only developers, but designers and everybody in the company
Run this:
git clone git@github.com:themainingredient/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
script/bootstrap
This will symlink the appropriate files in .dotfiles
to your home directory.
Everything is configured and tweaked within ~/.dotfiles
.
Everything's built around topic areas. If you're adding a new area to your
forked dotfiles — say, "Java" — you can simply add a java
directory and put
files in there. Anything with an extension of .zsh
will get automatically
included into your shell. Anything with an extension of .symlink
will get
symlinked without extension into $HOME
when you run script/bootstrap
.
A default topic folder looks like this:
- topic/*.zsh: Any files ending in
.zsh
get loaded into your environment. - topic/path.zsh: Any file named
path.zsh
is loaded first and is expected to setup$PATH
or similar. - topic/completion.zsh: Any file named
completion.zsh
is loaded last and is expected to setup autocomplete. - topic/install.sh: Any file named
install.sh
is executed when you runscript/install
. To avoid being loaded automatically, its extension is.sh
, not.zsh
. - topic/*.symlink: Any file ending in
*.symlink
gets symlinked into your$HOME
. This is so you can keep all of those versioned in your dotfiles but still keep those autoloaded files in your home directory. These get symlinked in when you runscript/bootstrap
.
We made sure everybody (also non-developers 🖖) can use this script. Therefore we made different Brewfiles for everybody in the homebrew/brewfiles
folder:
common
, suitable for everybodydesigner
, you can probably guess for whom this is suited 😉developer
If you think you have a change that more folks could benefit from, please propose and make a change or addition. Take these steps:
- Create a branch
- Create a pull request
- Add a reviewer to make sure it gets reviewed and merged
A big shout out goes out to @holman. This repository drew inspiration from his set up.