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.
 
 
 

6.9 KiB

Dotfiles

/chris/dotfiles/src/commit/3c7cf7ace8dcc95958b63c294e8b01dcb6005683/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/3c7cf7ace8dcc95958b63c294e8b01dcb6005683/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