https://github.com/dbr/dotemacs
Emacs configuration, structured as an org-mode file
https://github.com/dbr/dotemacs
Last synced: over 1 year ago
JSON representation
Emacs configuration, structured as an org-mode file
- Host: GitHub
- URL: https://github.com/dbr/dotemacs
- Owner: dbr
- Created: 2010-03-01T21:39:27.000Z (over 16 years ago)
- Default Branch: master
- Last Pushed: 2022-10-21T07:28:37.000Z (over 3 years ago)
- Last Synced: 2025-01-12T18:15:49.863Z (over 1 year ago)
- Language: Emacs Lisp
- Homepage:
- Size: 9.17 MB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Emacs version
This is used with emacs 27
## To use
- `git clone` the repo to ~/.emacs.d
- Launch emacs
## Making customisations
All the configuring is done in `config.org` using org-babel blocks, e.g:
#+begin_src emacs-lisp
(require 'somemodule)
#+end_src
These blocks are automatically evaluated when emacs is launched, using
`org-babel` - they can be organised using regular org-mode stuff
To enable customiations live, it's easiest to use `eval-last-sexp`
(`C-x C-e`) or `eval-region` on the code block
## External modules
Most third-party packages are installed via `package-install` and
committed to this repo.
There are updated via `M-x list-packages` then press `U` to mark
available updates for install, then perform the install with `x`.
Things which cannot be installed this way live in the `ext/` folder.
Singular `.el` live in the root of `ext/`, e.g:
config.org
ext/
tempbuf.el
markdown-mode.el
These can be loaded with `(require 'tempbuf)` as `ext/` is added to
the `load-path`
Code with multiple files live in a subdirectory of `ext/`,
config.org
ext/
tempbuf.el
markdown-mode.el
magit/
magit-bisect.el
magit-blame.el
...
org-mode/
...
Under the "Load path" heading, there is a "Subdirs of ext/" section -
subdirectories are added to the list in the code block.
## How it works
Using [`org-babel`](http://orgmode.org/worg/org-contrib/babel/intro.html)
Basically, the code in `init.el` calls `org-babel-load-file`, which
evaluates any code-blocks in `config.org`
Customisations live tidily in `config.org`, removing the need to keep
`init.el` organised manually (as the init file just contains the
bootstrapping code for `org-babel`)