3 Startup

The early init file, early-init.el (see (emacs)Early Init File), should contain a call to borg-initialize.

Changing the values of load-prefer-newer and package-enable-at-startup as shown here is optional but strongly recommended. load-prefer-newer should be enabled before loading borg.

;; -*- lexical-binding:t; no-byte-compile:t -*-

(setq load-prefer-newer t)

(add-to-list 'load-path (expand-file-name "lib/borg" user-emacs-directory))
(require 'borg)
(borg-initialize)

(setq package-enable-at-startup nil)
Function: borg-initialize

This function initializes assimilated drones using borg-activate.

To skip the activation of the drone named DRONE, temporarily disable it by setting the value of the Git variable submodule.DRONE.disabled to true in ~/.config/emacs/.gitmodules.

Borg automatically reports how long it takes to load borg.el itself, early-init.el, and other config files that it loads directly. It cannot do the same for init.el, so you should explicitly call the following function from that file, and possibly from other home-made config files.

Function: borg-report-load-duration &optional file format-string

This function reports how long it takes to load the file currently being loaded. It should be called very early in the file, ideally before doing anything else. This prints two messages; one right when the function is called and another once the file has been loaded.

If optional FILE is non-nil, this function instead reports how long it takes to load that file (this assumes that it is currently being loaded). Optional FORMAT-STRING, if non-nil, is passed to message. It should should end with "…" and contain zero or one %s, which stands for the file name.

Function: borg-report-init-duration

This function adds functions to after-init-hook, which, once that hook is nearly done running, will report how long it took to run that hook and also how long Emacs initialization took. Calling this function does nothing if the hook already ran.