Bladeren bron

Update and better explain installation instructions

Alois Mahdal 8 jaren geleden
bovenliggende
commit
1b8d8fc196
1 gewijzigde bestanden met toevoegingen van 33 en 17 verwijderingen
  1. 33
    17
      INSTALL.md

+ 33
- 17
INSTALL.md Bestand weergeven

@@ -2,11 +2,6 @@ INSTALLATION
2 2
 ============
3 3
 
4 4
 
5
-Note that this will only work for dotfiles stored right in your `$HOME`.
6
-Support for configuration stored in folders like ~/.config/application or
7
-~/.local/application is planned.
8
-
9
-
10 5
 To install, you need to perform following steps:
11 6
 
12 7
 1.  Clone repository to a stable place on your box
@@ -18,11 +13,13 @@ To install, you need to perform following steps:
18 13
 
19 14
         $ mv ~/.gnucash ~/local/mydots/dotfiles/gnucash
20 15
 
21
-    This works for directories as well as files, although e.g. for bash, vim
22
-    or git, I recommend different solutions--see below.
16
+    If your configs live under `~/.config` folder, put them under a folder
17
+    similar to the dotfiles:
23 18
 
24
-    Also note that you can name the dotfiles folder whatever you want;
25
-    there's no real connection with the repository.
19
+        $ mv ~/.config/dunst ~/local/mydots/dotfiles.config/dunst
20
+
21
+    Note that for bash, vim and git, I recommend different solutions--see
22
+    below.
26 23
 
27 24
 3.  Run mklinks script with single argument: path to dotfiles folder (or how
28 25
     you named it), e.g.:
@@ -34,29 +31,48 @@ To install, you need to perform following steps:
34 31
     makes it easy to exclude some of your applications from some of your
35 32
     machines: just skip step 2 for them.
36 33
 
34
+    Pro tip: Notice how the mklinks script discovers your `.config/`-bound
35
+    files such as dunst.
36
+
37
+     1. The path you pointed to is "path/to/dotfiles", so this will be
38
+        regarded as "base path" of your config pool.
39
+
40
+     2. Any members of the *base* directory will be prefixed with single
41
+        dot and symlinked *directly* to your home--just as the ancient
42
+        tradition dictates.
43
+
44
+     3. If the "base path" has neighbor called the same but with suffix
45
+        `.config`, i.e. `path/to/dotfiles.config`, it will symlink all
46
+        present members to `~/.config` path--just as XDG convention
47
+        uses in its most common version.
48
+
49
+     4. The case is similar for `.local/share` files; here you'll just need
50
+        to go one step deeper: files that should be linked to `~/.local/share`
51
+        should be in `dotfiles.local/share`.
52
+
37 53
 
38 54
 Instructions for bash
39 55
 ---------------------
40 56
 
41
-Although similar technique could be used for bash, I prefer toi have defaults
57
+Although similar technique could be used for bash, I prefer to have defaults
42 58
 specified by distro.  Therefore I use other technique:
43 59
 
44 60
 Instead of step 2 above, move/merge your specific ~/.bashrc changes to either
45 61
 one of these, or preferably, split them as needed:
46 62
 
47
-    dotfiles/bash/global-before.bashrc
63
+    dotfiles/bash/main.bashrc
48 64
     dotfiles/bash/user/<your-username>.bashrc
49 65
     dotfiles/bash/host/<your-hostname>.bashrc
50
-    dotfiles/bash/global-after.bashrc
66
+    dotfiles/bash/post.bashrc
51 67
 
52 68
 Then, replace your ~/.bashrc with your default distro's one, commonly found
53
-in /etc/skel/.bashrc, and patch it with dotfiles/bash/setup/bashrc.diff:
69
+in /etc/skel/.bashrc, and use `dotfiles/bash/setup` to patch it:
54 70
 
55 71
     $ cp /etc/skel/.bashrc ~/
56
-    $ patch -u ~/.bashrc local/mydots/dotfiles/bash/setup/bashrc.diff
72
+    $ local/mydots/dotfiles/bash/setup
57 73
 
58
-From that point on, .bashrc will source appropriate fies for you, so do not
59
-make any changes to your local .bashrc, unless you really want them to be
74
+From that point on, `.bashrc` will source appropriate fies for you, so do not
75
+make any changes to your local `.bashrc`, unless you really want them to be
60 76
 local, i.e. private only.
61 77
 
62 78
 
@@ -100,7 +116,7 @@ The pricnicple is the same as in bash section above: a new folder is created,
100 116
 local config is split into parts per user/host or global one, and original
101 117
 file becomes just a crossroads into these.
102 118
 
103
-Except that since git does not support expansion in config paths, the fil
119
+Except that since git does not support expansion in config paths, the file
104 120
 must be created by a script.  So what you want to do is the same as for bash
105 121
 above, except that instead of applying patch to your .gitconfig, you simply
106 122
 delete it and run dotfiles/git/setup.