summary refs log tree commit diff stats
path: root/README.org
blob: 2ed063327b3e2f13889366ede3c356f0b0696dae (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
74
* Dotfiles

I've organised this repository with [[https://www.gnu.org/software/stow/][GNU Stow]].  It focuses on [[http://zsh.sourceforge.net][Z Shell]] and
[[http://emacs.sexy][Emacs]].

It doesn't use any configuration frameworks, just packages installed
via package managers.  For Z shell I use [[https://zplug.sh/][zplug]] and for Emacs I use the
built-in package.el via [[https://github.com/jwiegley/use-package][use-package]].

I've included a wrapper script for =stow= which sets the target
directory to =$HOME=, instead of =../=.  This allows the repository to
be cloned anywhere, instead of following the =stow= convention of
being one level below the target directory.

It should work on:
- Linux
- OSX
- FreeBSD
- Windows/Ubuntu

** Installation

Clone the project anywhere, e.g. with =[[https://github.com/motemen/ghq][ghq]]=

#+BEGIN_SRC sh :exports code
ghq get git://git.alanpearce.eu/dotfiles
ghq look git.alanpearce.eu/dotfiles
#+END_SRC

Or just with normal git

#+BEGIN_SRC sh :exports code
git clone git://git.alanpearce.eu/dotfiles ~/projects/alanpearce-dotfiles
#+END_SRC

Installing a set of dotfiles with =stow= is simple.  For example, with
Emacs:

#+BEGIN_SRC sh :exports code
./stow -S emacs
#+END_SRC

And then to uninstall

#+BEGIN_SRC sh :exports code
./stow -D emacs
#+END_SRC

*** Z Shell

My zsh configuration uses [[https://zplug.sh/][zplug]], so that will need to be installed:

#+BEGIN_SRC sh :exports code
git clone git://github.com/zplug/zplug ~/projects/zplug/
#+END_SRC

To install the packages:

#+BEGIN_SRC sh :exports code
zsh -ic "zplug install"
#+END_SRC

Note that this will log some errors about a pipe, but that's okay.
zplug is meant to be used in a real interactive shell.

*** Emacs

I use org-mode for my Emacs init file.  To simplify setup, I created a
[[file:emacs/.emacs.d/Makefile][Makefile]].

#+BEGIN_SRC sh :exports code
cd ~/.emacs.d/
make
#+END_SRC