Main config

This is the main entry point for my literate configuration. I've decided to split my configurations into seperate .org files to keep related stuff together. You can find this configuration at GitHub, and on

To use this configuration add the following codeblock to your ~/.emacs.d/init.el, changing the path to this configuration file accordingly.

 1;; load main literate configuration file
 2;(setq user-init-file (or load-file-name (buffer-file-name)))
 3;(setq user-emacs-directory (concat (file-name-directory user-init-file) "../.emacs.d"))
 7(setq faijdherbe-config--config-path
 8      "~/Documents/git/")
11 (expand-file-name (concat (string-trim faijdherbe-config--config-path "/")
12                           "/")))

Alternatively, you can press C-c C-c on this codeblock to evaluate immediately.

Desktop file for testing

During debugging i'd like to use a desktop file for quick launching Emacs with our own configuration. Let's call our app Mymacs.

The path from the configuration earlier is injected upon tangling this file (C-c C-v t).

[Desktop Entry]
Comment=Emacs with my WIP Configuration
Exec=/usr/bin/emacs -Q --eval "(setq jf/dev-env t)" -l "~/Documents/git/"

note: It looks like GitHub and Hugo don't support conf-desktop, hence the lack of syntax highlighting. I'll need to look into this some other time.

Specific Configurations

Below we find all our configuration files. I should be able to merge the first two columns as it's pretty much redundant info, but let's postpone this for now.

package02-package.orgyessetup package repository and package manager.
exwm03-exwm.orgnosetup emacs as window-manager
theme20-theme.orgyestheme and ui config
navigation30-navigation.orgyesnavigation and autocomplete
dev40-dev.orgyesgeneric development
phpnoas this is my main language, it deserves its own config file
org-modenoorg-roam and org-agenda configuration
config99-config.orgyesLocal config that can set some specific settings

The following script will use the table above as source to load all other configurations in order - if enabled.

 1(dolist (record files)
 2  (let* ((filename (cadr record))
 3         (enabled (caddr record))
 4         (dir (or faijdherbe-config--config-path ""))
 5         (path (expand-file-name (concat (string-trim dir "/")
 6                                         "/" filename))))
 7    (if (and (string= "yes" enabled)
 8             (file-readable-p path))
 9        (progn 
10          (message "load: %s" filename)
11          (org-babel-load-file path)))))