Rcs, profiles, other dotfiles, I love 'em all
Shell Lua Emacs Lisp Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.byobu autolaunch byobu Sep 12, 2013
.config Autostart Tor Browser Sep 9, 2017
bin Extract filter-other-days into a separate project Oct 2, 2017
.bash_aliases Merge alex-ubuntu-server configs Jul 7, 2013
.bash_logout Merge alex-ubuntu-server configs Jul 7, 2013
.bash_profile move some OS X stuff from .bash_profile into the generic .profile Dec 31, 2013
.gitmodules rm submodules Aug 12, 2014
.npmrc Restore some older defaults to npm@5 Jul 6, 2017
.offlineimaprc Update TLS fingerprints Oct 17, 2017
.pam_environment Add DEBFULLNAME and DEBEMAIL to environment Aug 5, 2017
.zprofile source .profile better in zsh Sep 6, 2013
.zshrc Fix typo Aug 5, 2017
README.md Add `local-config` option for ignoring Linux-specific binaries Jan 13, 2017
configctl Extract filter-other-days into a separate project Oct 2, 2017




This repository contains my personal dotfiles. Most of it is geared towards a git-, Emacs-, and zsh-centric workflow. You'll also find some legacy files for e.g. bash that haven't been touched in ages.

This repository also contains a pretty useful script called configctl, which is used to manage all the files in this repository. It's very smart, fully automatic, and is pretty easy to understand (head -25 configctl will show a nice overview of the parameters, and you can get a nice help summary by executing ./configctl help).

configctl knows how to:

  • Link configurations into place
  • Install tools in ~ from both git clones and tarballs
  • Preinstall Emacs packages
  • Migrate old configurations
  • Precompile zsh scripts
  • Check for common binaries that I expect to have available
  • Perform other miscellaneous tasks

To put it another way, configctl knows how to bootstrap most of the environment I expect by itself, and it knows how to tell me what's missing for almost all of the rest.

configctl requires only POSIX, so it will run under almost any Unix under the sun.


configctl has the capability to read in a local configuration file, local-config. With this file you can override the behavior of certain routines of configctl. local-config is written with one keyword per line. Here are the options:

Option Description
no-ssh Specifies that configctl check should not warn if it cannot find a general-purpose SSH key.
headless Specifies that configctl check should not warn if it cannot find programs that would only make sense to have under a graphical environment.
no-nodejs Specifies that configctl check should assume that Node.js is not available.
darwin Specifies that configctl check is running on a Darwin (macOS) system. Linux is assumed otherwise.


Unless otherwise noted, the contents of this repository are licensed under the WTFPL.