# 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.