Skip to content

behaghel/.emacs.d

Repository files navigation

Emacs Configuration — README (draft selector)

This README is under active rewrite. Three new drafts are available:

  • Quickstart-focused: docs/readme/README-quickstart.org
  • Architecture-first: docs/readme/README-architecture.org
  • User handbook: docs/readme/README-handbook.org

Pick a direction and we’ll converge the final README from these. https://www.orgroam.com/manual/ Comment: Set up org-roam and start breaking mega files into small focused topics that are well inter-connected

Setup finances in an Emacs Ledger

[2020-04-26 Sun 23:47] Plain Text Accounting, a guide to Ledger and friends - plaintextaccounting.org

https://plaintextaccounting.org/

[2020-04-26 Sun 23:48] atheriel/evil-ledger: More Evil in ledger-mode.

https://github.com/atheriel/evil-ledger

[2020-04-26 Sun 23:56] Plain Text Accounting with ledger and ledger-likes

https://www.reddit.com/r/plaintextaccounting/

Stuff on the radar

[2020-05-04 Mon 23:21] Elisp Reference Sheet

https://alhassy.github.io/ElispCheatSheet/CheatSheet.pdf Comment: stupendous cheat sheet for elisp

[2020-05-08 Fri 22:38] dired-ref.pdf

https://www.gnu.org/software/emacs/refcards/pdf/dired-ref.pdf Comment: To be archived for easy reference

[2020-06-13 Sat 21:14] Using org-mode for meeting minutes • egli.dev

https://egli.dev/posts/using-org-mode-for-meeting-minutes/ Comment: I need to learn more about columnview. I should probably have a capture template for meeting minutes. Bonus point if it can be derived from PROPERTIES pertaining to meeting (e.g. attendees)

[2020-06-13 Sat 22:51] integral-dw/org-superstar-mode: Make org-mode stars a little more super

https://github.com/integral-dw/org-superstar-mode Comment: seems a more modern alternative to org-bullets

[2020-10-06 Tue 12:40] Emacs Org-mode - Export to another directory? - Stack Overflow

https://stackoverflow.com/questions/9559753/emacs-org-mode-export-to-another-directory Selection:

(defun org-export-output-file-name-modified (orig-fun extension &optional subtreep pub-dir) (unless pub-dir (setq pub-dir “exported-org-files”) (unless (file-directory-p pub-dir) (make-directory pub-dir))) (apply orig-fun extension subtreep pub-dir nil)) (advice-add ‘org-export-output-file-name :around #’org-export-output-file-name-modified)

Comment: avoid clutter when you export org files

Pinning & Caching

To keep CI fast and builds reproducible we pin package versions and cache straight.el artifacts in GitHub Actions.

  • Pin package versions
    • Enable direnv: direnv allow (once)
    • Freeze versions: devenv shell -- emacs --batch -l core/core-packages.el --eval '(core/packages-freeze)' --kill
    • Commit the generated file: straight/versions/default.el
  • CI cache
    • Caches the following paths:
      • straight/repos, straight/build, straight/build-cache.el
      • straight/versions/default.el (keyed), and eln-cache
    • Cache key includes Emacs version and the hash of the pinned versions file to ensure stable reuse across runs, while refreshing on intentional updates.
  • Local tips
    • Run devenv shell -- pre-commit run -a before pushing to catch issues early.
    • Load check: devenv shell -- env HOME=$PWD emacs --batch -l init.el --eval '(message "Loaded")' --kill

Architecture

We organize modules by runtime layers to load only what’s relevant in each context (fast CI, pleasant interactive UX in both GUI and terminal).

  • Layers
    • core: always-on, no UI side effects (paths, packages, defaults).
    • interactive: loaded only when not batch (TTY or GUI) — developer experience features, keymaps, global minor modes, etc.
    • gui: GUI-only adornments (icons, fringes, fancy faces).
    • tty: TTY-friendly alternatives for terminal usage.
    • batch: CI/batch-only optimizations (optional layer).
  • Paths and features
    • Files live under modules/<layer>/<category>/... and provide category features like editing/evil, navigation/treemacs, completion/core.
    • The historic settings/ layout has been retired; language configs now live under modules/lang/ and shared dev defaults under modules/interactive/dev/common.el.
  • Enforcement
    • init.el filters load-path by layer: batch sessions do not include modules/interactive, so interactive-only modules cannot load in CI/batch.
    • GUI/TTY specialization can be added similarly by exposing only modules/gui or modules/tty per session.
  • Predicates
    • core/predicates.el defines helpers used across modules:
      • hub/interactive-p, hub/batch-p, hub/gui-p, hub/tty-p, hub/ci-p.
  • Conventions
    • Keep the hub/ prefix for identifiers (functions/commands) only. Do not use hub/ in feature names or paths; use category namespaces instead.

Insipring Emacs Configs

[2020-05-13 Wed 09:24] dot-emacs/README.org at 22f4c9dfa4de17537af8dccaba7d294382ded9e7 · zamansky/dot-emacs

https://github.com/zamansky/dot-emacs/blob/22f4c9dfa4de17537af8dccaba7d294382ded9e7/README.org#L414 Selection: org-msg Comment: c’est la Z emacs config, lots to take from starting with literate init.el

[2020-04-26 Sun 23:32] .emacs.d/init.el at master · jethrokuan/.emacs.d

https://github.com/jethrokuan/.emacs.d/blob/218ea42779db9d8db5dfdd6c6524abac3f10855c/init.el#L1356 Selection: :init (with-eval-after-load ‘flycheck (flycheck-add-mode ‘proselint ‘org-mode)) Comment: inspiration for my agenda view

Setup

[2020-04-23 Thu 09:28] jeremy-compostella/org-msg

https://github.com/jeremy-compostella/org-msg OrgMsg is a GNU/Emacs global minor mode mixing up Org mode and Message mode to compose and reply to emails in a Outlook HTML friendly style.

Comment: reply to emails that requires HTML using org-mode

System / outside Emacs

[2020-04-28 Tue 23:07] Exim4Gmail - Debian Wiki

https://wiki.debian.org/Exim4Gmail Comment: what helped me configure SMTP for mu4e

[2020-05-02 Sat 22:48] Fastmail setup with Emacs, mu4e and mbsync on macOS - Rakhim.org

https://rakhim.org/2020/01/fastmail-setup-with-emacs-mu4e-and-mbsync-on-macos/ Selection: mu4e-attachments-dir “~/Downloads” Comment: has been really useful in setting up emails in my Emacs

Development

This repository provides a devenv + direnv environment for reproducible development. Enable it with `direnv allow` and the environment will auto-activate when entering the repo. Pre-commit hooks will format and check Elisp and run parse/tests before commit.

About

My Emacs config.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors