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 www.faijdherbe.net.
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"))
4
5(package-initialize)
6
7(setq faijdherbe-config--config-path
8 "~/Documents/git/faijdherbe.net/emacs-config/literate")
9
10(org-babel-load-file
11 (expand-file-name (concat (string-trim faijdherbe-config--config-path "/")
12 "/01-main.org")))
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]
Name=Mymacs
Type=Application
Comment=Emacs with my WIP Configuration
Exec=/usr/bin/emacs -Q --eval "(setq jf/dev-env t)" -l "~/Documents/git/faijdherbe.net/emacs-config/literate/init.el"
Icon=/opt/giteye/icon.xpm
Name[en_US]=Mymacs
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.
config | filename | enabled | description |
---|---|---|---|
package | 02-package.org | yes | setup package repository and package manager. |
exwm | 03-exwm.org | no | setup emacs as window-manager |
theme | 20-theme.org | yes | theme and ui config |
navigation | 30-navigation.org | yes | navigation and autocomplete |
dev | 40-dev.org | yes | generic development |
php | no | as this is my main language, it deserves its own config file | |
org-mode | no | org-roam and org-agenda configuration | |
config | 99-config.org | yes | Local 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)))))