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 42980e45ea Notes 4 years ago
bin Update modules 4 years ago
config Identify as xterm-256color 4 years ago
docs Notes 4 years ago
hosts Fix font 4 years ago
modules Identify as xterm-256color 4 years ago
.gitattributes Fix attributes 4 years ago
.gitignore Remove dotfiles/install method 4 years ago
.gitmodules Move submodule 4 years ago
LICENSE Update README/LICENSE 4 years ago
README.org Cleanup option README 4 years ago
early-init.el Add early init 4 years ago
init.el Refactor README 4 years ago

README.org

Dotfiles

/chris/dotfiles/src/commit/42980e45eaed3a31f04ce56c1e4bb1bcb2a11421/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/42980e45eaed3a31f04ce56c1e4bb1bcb2a11421/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

Constants

Symbol Default Description
dotfiles/home ~/.emacs.d Origininal value of user-emacs-directory.
dotfiles/cache ~/.cache/emacs Redirection target of user-emacs-dictory.
dotfiles/modules-p Modules All of the available system modules.

Variables

Symbol Default Description
dotfiles/browser $BROWSER Default system web browser.
dotfiles/language $LANG Default system language.
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 Completion delay time.
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 5EAG356GFAE... GPG key to encrypt org files for.

Resources