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.
 
 
 
Christopher James Hayward 8657544b81 Hide code block 4 years ago
bin Update modules 4 years ago
config Add support for vnc server 4 years ago
docs Add module dep graph 4 years ago
hosts Cleanup module list & hostnames 4 years ago
modules Put presentations in its own module 4 years ago
.gitattributes Fix attributes 4 years ago
.gitignore Ignore native compiled el 4 years ago
.gitmodules Move submodule 4 years ago
LICENSE Update README/LICENSE 4 years ago
README.org Hide code block 4 years ago
init.el Refactor README 4 years ago

README.org

Dotfiles

/chris/dotfiles/src/commit/8657544b81a57029db33cc8dbb0c78a9a8be1800/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. Here are all of the available modules, also listed in the variable dotfiles/modules-p.

Dependency graph

Here's a visualization of the modules and their respective dependencies.

/chris/dotfiles/src/commit/8657544b81a57029db33cc8dbb0c78a9a8be1800/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 (…) 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) 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 (…) GPG key to encrypt org files for.

Resources