diff --git a/README.org b/README.org index adccd3a..c544311 100644 --- a/README.org +++ b/README.org @@ -13,15 +13,19 @@ #+ATTR_LATEX: :width 420px [[./docs/images/desktop-alt.png]] -Immutable GNU Emacs dotfiles. Built for Life, Liberty, and the Open Road. +Immutable *GNU Emacs* dotfiles. Built for Life, Liberty, and the Open Road. + 100% Literate + 100% Immutable + 100% Reproducible - -* Options -Here's a complete list of all of the options configurable for each host, and their default values. All variables prefixed with ~dotfiles/~. If you need to make configurations to another variable, consider creating a new option. +* Init + +Contains all of the options and runs some required pre-configuration code. + +** Options + +Here's a complete list of all of the options configurable for each host, and their default values. All variables prefixed with ~dotfiles/~. If you need to make configurations to another variable, consider creating a new option. #+begin_src emacs-lisp (defvar dotfiles/font @@ -89,9 +93,18 @@ Here's a complete list of all of the options configurable for each host, and the "GPG key to encrypt org files for.") #+end_src +** Startup + +This project makes heavy use of modern features and libraries. Since *Babel's* used in initialization, *Org* must load prior to importing any of custom modules. This introduces a unique *chicken before the egg* problem. My solution included some initialization code in *Emacs Lisp* called before using any *Babel* APIs. + +#+begin_src emacs-lisp +(load-file "~/.emacs.d/bin/startup.el") +(load-file "~/.emacs.d/bin/packages.el") +#+end_src + * Hosts - Each host machines configuration is loaded immediately after the options are declared, before any configuration is applied. This allows system to system control while remaining immutable. Override any of the available options configurations in a host file. Here's some examples to get started: + Each host machines configuration loaded immediately after declaring the options, before applying any configuration. This allows system to system control while remaining immutable. Override any of the available options configurations in a host file. Here's some examples to get started: + [[file:hosts/localhost.org][Termux]] + [[file:hosts/raspberry.org][Raspberry]] @@ -106,7 +119,7 @@ Here's a complete list of all of the options configurable for each host, and the (org-babel-load-file host-file))) #+end_src -** Modules +* Modules Breaking down the project into logical units or chapters to keep the code more maintainable and organized. This is also a fundamental requirement to achieve the goal of modularity. Here are all of the available modules, also listed in the variable ~dotfiles/modules-p~. diff --git a/init.el b/init.el index 9d2e45c..d0480d6 100644 --- a/init.el +++ b/init.el @@ -1,6 +1,6 @@ ;; Options -;; Here's a complete list of all of the options configurable for each host, and their default values. All variables prefixed with ~dotfiles/~. If you need to make configurations to another variable, consider creating a new option. +;; Here's a complete list of all of the options configurable for each host, and their default values. All variables prefixed with ~dotfiles/~. If you need to make configurations to another variable, consider creating a new option. (defvar dotfiles/font @@ -67,9 +67,17 @@ "37AB1CB72B741E478CA026D43025DCBD46F81C0F" "GPG key to encrypt org files for.") +;; Startup + +;; This project makes heavy use of modern features and libraries. Since *Babel's* used in initialization, *Org* must load prior to importing any of custom modules. This introduces a unique *chicken before the egg* problem. My solution included some initialization code in *Emacs Lisp* called before using any *Babel* APIs. + + +(load-file "~/.emacs.d/bin/startup.el") +(load-file "~/.emacs.d/bin/packages.el") + ;; Hosts -;; Each host machines configuration is loaded immediately after the options are declared, before any configuration is applied. This allows system to system control while remaining immutable. Override any of the available options configurations in a host file. Here's some examples to get started: +;; Each host machines configuration loaded immediately after declaring the options, before applying any configuration. This allows system to system control while remaining immutable. Override any of the available options configurations in a host file. Here's some examples to get started: ;; + [[file:hosts/localhost.org][Termux]] ;; + [[file:hosts/raspberry.org][Raspberry]]