Find a file
2017-04-25 02:58:25 -04:00
.enabled.d Complete refactor + arch linux support 2016-10-19 16:56:37 +02:00
bin Refactor bin/{duckduckgo,urlencode} 2017-04-25 02:58:25 -04:00
browser browser/firefox: rewrite bookmark/history scripts (text only) 2017-04-25 02:37:59 -04:00
dev dev/go: move GOPATH 2017-04-23 00:40:20 -04:00
docker docker: remove dki alias for linux; refactor 2017-01-04 00:39:38 -05:00
editor editor/emacs: remove bin/org-capture (moved); add ~/.emacs.d/bin to PATH 2017-04-22 21:55:42 -04:00
os Add [unix-]OS-agnostic bin/open + shell/tmux/bin/tmux-session-name 2017-04-25 02:40:45 -04:00
recipes recipe/remote: server mode 2016-12-23 20:07:28 -05:00
shell shell/fzf: add bin/fzf-mpc 2017-04-25 02:42:11 -04:00
vcs Add vcs/git/bin/git-old-commit 2017-04-22 22:00:46 -04:00
weechat Remove .sh suffix on bin scripts 2017-04-04 01:48:55 -04:00
.gitignore Add weechat/.weechat/* to .gitignore 2017-03-16 15:07:49 -04:00
bootstrap bootstrap: fix spacing on output + redirect stderr to stdout 2017-01-09 00:44:23 -05:00
clean clean: remove enabled topics before cleaning dead links 2016-12-23 18:21:40 -05:00
LICENSE Update license 2017-01-06 17:39:22 -05:00
README.md Update README 2017-01-16 22:34:08 -05:00

Henrik's dotfiles

MIT

My dotfiles. Fuel for my madness. Designed for MacOS, Arch Linux and the various debian-based boxes I frequently ssh into.

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.

Bootstrap

bootstrap is my idempotent dotfile deployment script.

e.g. ./bootstrap os/arch shell/{zsh,tmux} dev/python

Usage: bootstrap [-iuldypLSU] [topic1[ topic2[ ...]]]

Options:
  -i  Don't run install scripts
  -u  Don't run update scripts
  -l  Don't symlink dotfiles
  -d  Do a dry run (only output commands, no changes)
  -y  Overwrite conflicts (no prompts)
  -p  Prompt on file conflict (to overwrite)
  -L  Refresh links; the same as -ui
  -S  Server mode; only install the bare minimum
  -U  Update mode; run update scripts only

Here's a simplified break down of what it does:

# 1. Symlinks dotfiles to $HOME
ln -sfv $topic/.* ~/
ln -sfv $topic/.{config,local}/* ~/.{config,local}/

# 2. Track enabled topics in ~/.dotfiles/.enabled.d.
# 3. If topic is enabled, run its update script. Otherwise, run its install script
if [[ -e ~/.dotfiles/.enabled.d/$topic ]]; then
    $topic/update
else
    ln -sfv $topic ~/.dotfiles/.enabled.d/
    $topic/install
fi

Clean

clean will delete broken symlinks in $HOME, and can "disable" all 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

Other Relevant Configs

  • Vim (pulled in by the editor/vim topic)
  • Emacs (pulled in by the editor/emacs topic)