2016-03-03 08:03:47 -08:00
|
|
|
# Henrik's dotfiles
|
2016-03-22 15:20:13 -07:00
|
|
|
[![MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
|
2013-03-01 01:47:00 -08:00
|
|
|
|
2016-11-09 04:38:26 -08:00
|
|
|
<img src="http://i.giphy.com/ZHlGzvZb130nm.gif" align="right" />
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-14 17:20:36 -08:00
|
|
|
My dotfiles. Fuel for my madness. Designed for MacOS, Arch Linux and
|
|
|
|
the various debian-based boxes I frequently ssh into.
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-14 17:20:36 -08:00
|
|
|
It is organized into topics, some with their own READMEs. Check them out for
|
|
|
|
more targeted information. The `./boostrap` script is used to install and update
|
|
|
|
them.
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-14 17:20:36 -08:00
|
|
|
## Bootstrap
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-14 17:20:36 -08:00
|
|
|
`bootstrap` is my idempotent dotfile deployment script. This is how it works:
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-14 17:20:36 -08:00
|
|
|
You pass the directories of "topics" you want to install and it will:
|
|
|
|
|
|
|
|
1. symlink `$topic/bin/*` to `~/.bin/`
|
|
|
|
2. symlink `$topic/.*` to `~/` _and_ `$topic/.*/*` to `~/.$1/` (i.e. 2-level
|
|
|
|
symlinking). e.g. `os/arch/.Xresources` will be symlinked to
|
|
|
|
`~/.Xresources`, and `os/arch/.config/redshift.conf` will be symlinked to
|
|
|
|
`~/.config/redshift.conf` (`~/.config` is not a symlink).
|
|
|
|
3. run `$topic/install` the first time
|
|
|
|
4. run `$topic/update` on consecutive runs
|
|
|
|
5. symlink `$topic` to `$DOTFILES/.enabled.d/` to keep track of what's enabled.
|
|
|
|
Running `bootstrap` without arguments will run this process on all
|
|
|
|
enabled topics in `.enabled.d/`.
|
|
|
|
|
|
|
|
> NOTE: Be sure to add ~/.bin to PATH
|
|
|
|
|
|
|
|
```
|
|
|
|
Usage: bootstrap [-iuldyn] [topic1[ topic2[ ...]]]
|
|
|
|
|
|
|
|
Options:
|
|
|
|
-d Do a dry run (only output commands, no changes)
|
|
|
|
-i Don't run install scripts
|
|
|
|
-l Don't symlink dotfiles or bin scripts
|
|
|
|
-n Don't overwrite conflicts (no prompts
|
|
|
|
-u Don't run update scripts
|
|
|
|
-y Overwrite conflicts (no prompts)
|
|
|
|
```
|
|
|
|
|
|
|
|
Or write a recipe list (examples in `recipes/`):
|
|
|
|
|
|
|
|
+ `bootstrap $(recipes/ganymede)` (my laptop)
|
|
|
|
|
|
|
|
To update the topics that you've already enabled, simply run `bootstrap`, and it
|
|
|
|
will update your symlinks and run `$topic/update` wherever they may exist.
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-09 04:38:26 -08:00
|
|
|
A few good-to-knows (where $topic is an enabled topic):
|
2016-10-19 07:56:37 -07:00
|
|
|
|
2016-11-09 04:38:26 -08:00
|
|
|
+ zshrc auto-sources `$topic/*.zsh`
|
2016-11-14 17:20:36 -08:00
|
|
|
+ `$topic/bin/*` scripts will be symlinked to `~/.bin`. The included bash/zsh
|
|
|
|
topics add `~/.bin` to `PATH`.
|
|
|
|
|
|
|
|
## Clean
|
|
|
|
|
|
|
|
`clean` will delete broken symlinks in `$HOME`, and can "disable" topics by
|
|
|
|
removing their symlinks in `.enabled.d/`
|
|
|
|
|
|
|
|
```
|
|
|
|
Usage: clean [-du]
|
|
|
|
|
|
|
|
Options:
|
|
|
|
-d Do a dry run (only output commands, no changes)
|
|
|
|
-u Uninstall all enabled topics
|
|
|
|
```
|
2016-03-22 15:20:13 -07:00
|
|
|
|
|
|
|
## Relevant
|
|
|
|
|
|
|
|
+ [Vim config](https://github.com/hlissner/.vim)
|
|
|
|
+ [Emacs config](https://github.com/hlissner/.emacs.d)
|