██████╗ ███╗ ██╗██╗ ██╗
██╔════╝ ████╗ ██║██║ ██║
██║ ███╗██╔██╗ ██║██║ ██║
██║ ██║██║╚██╗██║██║ ██║
╚██████╔╝██║ ╚████║╚██████╔╝
╚═════╝ ╚═╝ ╚═══╝ ╚═════╝
GNU is Not Unix!
ara@talos ──────────────── OS: Guix System Kernel: Linux-libre Host: Raptor Talos II Arch: ppc64le (POWER9) Cert: FSF RYF certified Editor: GNU Emacs (terminal, no-X) Packages: Guix Home + straight.el Mail: Gnus (Fastmail IMAP) News: Gnus (RSS / NNTP) Notes: Org-mode + Denote Browser: Elpher (Gemini / Gopher) LLM: gptel + MCP Stats: R + ESS + Maxima License: GPL all the way down ███ ███ ███ ███ ███ ███
Architecture
Two package managers, non-overlapping scope:
- Guix Home installs Emacs itself (
emacs-no-x) and every Emacs package available in the official Guix channel. - straight.el installs the Drew Adams ecosystem from emacsmirror — the only place those packages live.
Configuration is modular: each init-*.el in ~/.emacs.d/lisp/ provides a named feature, loaded from init.el via (require ...).
Init Modules
| File | Purpose | Packages |
|---|---|---|
init-display.el | Theme, faces, e-ink colors, UI | built-in |
init-straight.el | Drew Adams ecosystem via straight.el | emacs-straight |
init-gnus.el | Email (Fastmail IMAP) + RSS + local mail | built-in |
init-gptel.el | LLM interface + tool definitions | emacs-gptel, emacs-llm-tool-collection, emacs-mcp |
init-org.el | Org-mode + Denote + capture | emacs-org, emacs-denote |
init-magit.el | Magit + auto-commit on save | emacs-magit, emacs-git-auto-commit-mode |
init-dictionary.el | StarDict CLI wrapper | sdcv |
init-mastodon.el | Mastodon client | emacs-mastodon |
init-editing.el | Completion, navigation, region, undo | corfu, avy, ace-window, expand-region, wgrep, vundo, paredit |
init-scheme.el | Scheme REPL (Guile) | emacs-geiser, emacs-geiser-guile |
init-tramp.el | HPC TRAMP | built-in |
Drew Adams Ecosystem
A loose collection of Emacs extensions, lovingly maintained by Drew Adams for nearly four decades. Most live only on emacsmirror, so straight.el is the only practical way to ship them on Guix.
| File | Package | Notable bindings |
|---|---|---|
init-help-fns-plus.el | help-fns+ | C-h M-f describe-file; C-h M-k describe-keymap; C-h M-l find-function-on-key |
init-pp-plus.el | pp+ | M-: → pp-eval-expression (pretty-printed) |
init-highlight.el | highlight | C-x X prefix; C-S-p / C-S-n prev/next highlight |
init-thing-cmds.el | thing-cmds | M-@ cycle-select; C-M-SPC select-things |
init-misc-cmds.el | misc-cmds | C-x k kill-buffer-and-its-windows; F5 revert; repeatable undo / next-buffer / prev-buffer |
init-lacarte.el | lacarte | ESC M-x execute-command; F10 execute-menu-command |
init-isearch-plus.el | isearch+ | Enhances all isearch keys |
init-replace-plus.el | replace+ | M-% → query-replace-w-options; region-as-default |
init-info-plus.el | info+ | Enhances Info mode |
init-dired-plus.el | dired+ | Enhances Dired; loads find-dired+; reuses dir buffers |
init-bookmark-plus.el | bookmark+ | C-x r l list bookmarks; C-x r m add |
init-icicles.el | icicles | M-x icy-mode to toggle (off by default — corfu does in-buffer completion) |
Underneath these are standalone utility libraries — hexrgb, misc-fns, strings, thingatpt+, ring+, naked, zones, second-sel, hide-comnt — loaded on demand by the higher-tier packages. No init files needed.
Custom Guix Package: emacs-ess-ppc64le
r-roxygen2 fails to build on ppc64le, so the standard emacs-ess package can't land on the Talos. Fix: a derived package that strips r-roxygen2 from native inputs and removes the architecture whitelist.
(define emacs-ess-ppc64le
(package
(inherit emacs-ess)
(supported-systems %supported-systems)
(native-inputs (modify-inputs
(package-native-inputs emacs-ess)
(delete "r-roxygen2")))))