From 44f4506f29b937130e04c42049afe78c69b0dd28 Mon Sep 17 00:00:00 2001 From: Szymon Szukalski Date: Fri, 10 Apr 2026 13:05:30 +1000 Subject: Add olivetti for org buffers --- docs/plans/2026-04-10-olivetti-org-design.md | 57 ++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 docs/plans/2026-04-10-olivetti-org-design.md (limited to 'docs/plans/2026-04-10-olivetti-org-design.md') diff --git a/docs/plans/2026-04-10-olivetti-org-design.md b/docs/plans/2026-04-10-olivetti-org-design.md new file mode 100644 index 0000000..863ca65 --- /dev/null +++ b/docs/plans/2026-04-10-olivetti-org-design.md @@ -0,0 +1,57 @@ +# Olivetti Org Design + +## Context + +The configuration is modular: + +- `lisp/ss-ui.el` owns visual packages and interface defaults. +- `lisp/ss-org.el` owns Org-specific setup and hooks. +- `init.el` composes modules centrally through `ss-enabled-features`. + +The requested behavior is to add `olivetti-mode` to the configuration and +enable it automatically for Org buffers in both GUI Emacs and `emacs -nw`. + +## Options Considered + +### 1. Recommended: split package ownership and activation by module + +- Declare and configure `olivetti` in `lisp/ss-ui.el`. +- Enable `olivetti-mode` from `org-mode-hook` in `lisp/ss-org.el`. + +This matches the repository boundaries: visual package ownership remains in the +UI module, while Org-specific behavior remains in the Org module. + +### 2. Put everything in `lisp/ss-org.el` + +- Add the package declaration and the hook together in the Org module. + +This is workable but muddies module boundaries by making the Org module own a +general presentation package. + +### 3. Add a new writing-focused module + +- Introduce a dedicated module for prose layout and writing helpers. + +This is clean only if more writing-mode features are expected soon. For a +single package addition, it adds unnecessary structure. + +## Chosen Design + +Use option 1. + +- Add `olivetti` in `lisp/ss-ui.el` with a modest body width that works in GUI + and terminal frames. +- Enable `olivetti-mode` automatically in Org buffers from `lisp/ss-org.el`. +- Do not enable it globally or for non-Org buffers. +- Keep startup order unchanged. + +## Verification + +- Run `emacs --batch -Q --load ./init.el` from the repository root. +- Run an actual terminal Emacs startup check with `emacs -nw` loading this + configuration, since batch mode alone will not catch tty regressions. + +## Documentation Impact + +`README.md` should be updated so the package list and Org behavior describe the +new default truthfully. -- cgit v1.2.3