blob: 863ca65a5dcc3a844520a27ab9fd1ed4db60b035 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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.
|