summaryrefslogtreecommitdiff
path: root/README
blob: 3a24027508201df3095d22dffe186033ff8a95e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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'.