This is Sean Whitton's dotfiles. I try to note when things were written by me, and when they was taken from elsewhere. Things I've written are released under the GNU General Public License, version 3, or any later version as published by the Free Software Foundation. The master branch should work on most hosts, and host-specific configurations for host `host.domain' live in the branch `host'. All such host branches have master as their parent and are rebased onto master. This restriction is to make usage less complex, even if it results in some patches being duplicated between multiple host branches (that aren't suitable for master). My dotfiles are too important for the repository to require time-consuming, complex rebase operations. On host branches, following the host-specific patches, there may be commits destined for master. This is because hosts without access to my PGP keys cannot update master. These commits are reviewed and cherry-picked onto master from time to time. Batching the reviews like this is more efficient than continually creating temporary branches, mailing patches to myself, etc., and usually there is no hurry to install patches on master because the changes are relevant mostly for just that one host. Configuration here should be mostly passive. Use Consfigurator to set up other things. E.g. i3 config is here but ~/.dmrc and ~/.config/autostart, which actually start up i3 etc., would be set up by consfig. This makes cloning this repo into HOME on arbitrary machines less intrusive. ================================ Minimal system requirements ================================ POSIX.2 shell and utilities ================================ Recommended pre-installed extras ================================ git; Perl 5/7; Git::Wrapper ================================ Minimal setup ================================ 1. Get the repo: % git clone https://git.spwhitton.name/dotfiles ~/src/dotfiles 2. Run bootstrap script: % ~/src/dotfiles/bin/bstraph ================================ Subdirectories ================================ bin/: Scripts and programs relatively early in PATH. scripts/: Helper scripts and programs that I don't want on PATH. Shell pipelines, scripts for `git bisect', and Perl one-liners turned into files commencing `#!/usr/bin/perl -wnl', are the sort of thing we have in here. The scripts are loosely categorised, e.g. dgit/ might contain tools useful when developing dgit. lib-src/: Miscellaneous includes and configuration. The directory does not contain any source code that is compiled into object files, as its name might suggest. Any replacement name should be one where either I'm unlikely to want a directory of that name directly under HOME, or at least such that I'll never want to stow any files into that directory directly under HOME; this is in order that I can just hstow-ignore the whole thing. Some ideas: 'lib', 'share', 'lib-inc'.