summaryrefslogtreecommitdiff
path: root/docs/plans/2026-04-10-olivetti-org-design.md
diff options
context:
space:
mode:
authorSzymon Szukalski <szymon@szymonszukalski.com>2026-04-10 13:05:30 +1000
committerSzymon Szukalski <szymon@szymonszukalski.com>2026-04-10 13:05:30 +1000
commit44f4506f29b937130e04c42049afe78c69b0dd28 (patch)
treedc0a8db8f4caa92c30c698afd890336499663754 /docs/plans/2026-04-10-olivetti-org-design.md
parent2d8d20c50d60644c0d1de2021893bce3b04da76a (diff)
Add olivetti for org buffers
Diffstat (limited to 'docs/plans/2026-04-10-olivetti-org-design.md')
-rw-r--r--docs/plans/2026-04-10-olivetti-org-design.md57
1 files changed, 57 insertions, 0 deletions
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.