I showed you my source code, pls respond
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

7.3 KiB

Dotfiles

/chris/dotfiles/src/commit/58842a7b370ee9dd080dbcafb7070edb7ebe690b/docs/images/desktop-alt.png

Portable GNU/Emacs1 dotfiles. Built for Life, Liberty, and the Open Road.

  • 100% Literate

  • 100% Immutable

  • 100% Reproducible

Init

This project makes heavy use of modern features and libraries. Since Org-babel2's used during the initialization, Org-mode3 must load prior to importing any custom modules. My solution includes the introduction of some early intitialization code written in Emacs Lisp4.

(load-file "~/.emacs.d/bin/options.el")
(load-file "~/.emacs.d/bin/cleanup.el")
(load-file "~/.emacs.d/bin/packages.el")

Load host definition

Begin the process by loading any host specific option overrides. The host configuration tangles, and loads (if it exist) using the systems name. If a host definition doesn't exist the default values remain.

(let ((host-file (concat dotfiles/home "/hosts/" system-name ".org")))
  (when (file-exists-p host-file)
    (org-babel-load-file host-file)))

Load enabled modules

All of the modules in dotfiles/modules load after the host overrides. By default, all of the packages defined in dotfiles/modules-p load. Override this behaviour in a host configuration file.

(dolist (m dotfiles/modules)
  (let ((mod-file (concat dotfiles/home "/modules/" (symbol-name m) ".org")))
    (when (file-exists-p mod-file)
      (org-babel-load-file mod-file))))

Hosts

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:

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. Below are details of the modules, and their respective dependencies.

/chris/dotfiles/src/commit/58842a7b370ee9dd080dbcafb7070edb7ebe690b/docs/images/modules.png

Options

Here's a complete list of all of the options configurable for each host, and their default values.

  • All variables prefixed with dotfiles/

  • Initialized prior to loading of packages or hosts

Name Default Description
dotfiles/home ~/.emacs.d Original value of `user-emacs-directory'.
dotfiles/cache ~/.cache/emacs Redirection target of `user-emacs-directory'.
dotfiles/browser $BROWSER Default system web browser.
dotfiles/language $LANG Default system dictionary language.
dotfiles/modules-p Modules All of the available modules.
dotfiles/modules dotfiles/modules-p ALl of the enabled modules.
dotfiles/font Fira Code Unified system font family.
dotfiles/font-size 96 Unified system font size.
dotfiles/idle 0.0 Delay time before offering suggestions and completions.
dotfiles/leader-key SPC All powerful leader key.
dotfiles/leader-key-global C-(dotfiles/leader-key) Global prefix for the leader key.
dotfiles/projects ~/.local/source Location of source code projects.
dotfiles/passwords ~/.password-store Location of local password store.
dotfiles/public-key My public key GPG key to encrypt org files for.

Resources