Next: , Previous: , Up: Top   [Contents]


2 Installation

To get started clone the repository of the emacs.g collective. Currently this is the only available collective and, for the time being this manual assume that you use that.

This collective already assimilated a few drones in addition to borg itself, namely magit, epkg, use-package, auto-compile, git-modes, diff-hl, and their dependencies. These drones are not required by borg but their use is highly recommended.

Instructions on how to bootstrap a configuration without basing it on the emacs.g collective will be added in the near future.

Clone the emacs.g repository to either ~/.emacs.d, or for testing purposes to any other location. This repository contains a Makefile that imports lib/borg/borg.mk and defines an additional target whose purpose is to make that file and lib/borg/borg.sh available. Run make bootstrap-borg to clone the borg repository. That does not completely setup the borg repository but it makes the latest version of the mentioned files available. Now that these files are available you can run make bootstrap to get and configure all submodules (including the borg submodule) and to build all drones.

git clone git@github.com:emacscollective/emacs.g.git ~/.emacs.d
cd ~/.emacs.d
make bootstrap-borg
make bootstrap

If you cloned to somewhere else than ~/.emacs.d, then you can use that configuration using emacs -Q --load /path/to/emacs.g/init.elc.

For drones whose upstreams are on Github or Gitlab the emacs.g collective uses the ssh protocol by default, which is a problem if you don’t have accounts there and have not properly setup your keys. Luckily this can easily be fixed using the following right after cloning the super-repository.

git config --global url.https://github.com/.insteadOf git@github.com:
git config --global url.https://gitlab.com/.insteadOf git@gitlab.com:

During package compilation you may notice the submodules relating to those packages become dirty due to the compilation outputs not being ignored in those submodules. For this reason it is useful to ignore these outputs globally, for example in your ~/.config/git/ignore file:

*.elc
*-autoloads.el
dir

You may discover more things that you’ll want to ignore this way as you use borg.


Next: , Previous: , Up: Top   [Contents]