blob: 8c28993d19c254e5cf3299c7ea22e27af7145928 (
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
#+title: Emacs Org Workflow Configuration
* Overview
This repository is a compact Emacs 30 configuration centered on Org mode.
The configuration is intentionally small and keeps the live behavior in two files:
- =early-init.el= for true early-startup behavior
- =init.el= for runtime configuration and workflow behavior
Custom-generated settings are kept in =custom.el= so the main configuration stays readable.
* Implementation Summary
** Early Startup
=early-init.el= handles only startup concerns that must run before normal initialization:
- disables automatic package activation
- removes menu, tool, and scroll bars early to reduce flicker
- increases GC limits during startup
- sets the initial frame font and frame size
The steady-state GC threshold is restored in =init.el=.
** Runtime Configuration
=init.el= is organized into a few direct sections rather than abstractions:
- core paths
- startup behavior
- package bootstrap
- UI defaults
- completion
- Org configuration
- capture templates
The configuration prefers built-in Emacs and Org features where possible.
** Package Management
Packages are initialized with the built-in package manager.
The configuration installs these packages when missing:
- =vertico=
- =marginalia=
- =orderless=
- =consult=
- =modus-themes=
- =olivetti=
- =git-auto-commit-mode=
Archive refresh only happens when a required package is missing.
** Startup Behavior
Emacs starts in the custom Org Home agenda.
The startup path explicitly requires =org-agenda= before evaluating =initial-buffer-choice= so the agenda command is available reliably at startup.
The Home agenda is intended to act like a modal entry point into the workflow.
** UI and Editor Defaults
The configuration applies a small set of editor defaults directly:
- no auto-save files or backup files
- fast minibuffer echoing
- recursive minibuffers enabled
- conservative scrolling
- mouse wheel scrolling tuned for line-by-line movement
- automatic revert of changed files
- active-region replacement via =delete-selection-mode=
- =y-or-n-p= in place of =yes-or-no-p=
- spaces instead of tabs by default
- =fill-column= set to 80
The selected GUI frame reapplies the startup font from =default-frame-alist=.
** Completion Stack
The minibuffer completion setup is simple and modern:
- =vertico= provides the UI
- =marginalia= adds annotations
- =orderless= provides matching behavior
- =consult= provides search and outline commands
** Org Workflow
The Org setup assumes a personal notes layout rooted at =~/org=, with the main workflow file at =~/org/obtf.org=.
At startup, the configuration validates those two required paths once and shows a soft warning if either is missing.
Emacs still starts normally, but Org workflow features may not work as expected until the layout is in place.
The workflow itself is organized around headings in that single notes file.
Key behaviors include:
- Home agenda command on startup
- full-frame agenda display
- stock Org speed commands enabled
- overview startup folding for Org buffers
- drawers hidden at startup
- file-based refile paths with single-step completion
- refile targets limited to agenda files up to level 2
- internal heading links instead of ID-based links
- heading-respecting insertion and movement behavior
** Capture Templates
The capture system stays low-friction and writes into named headings in the default notes file at =~/org/obtf.org=.
Available templates:
- Inbox
- Task
- Question
- Meeting
- Recurring
Inbox, Task, Question, and Recurring entries record a =CAPTURED= property and capture context with =%a=.
Meeting capture remains timestamp-based.
** Agenda Design
The Home agenda is ordered as:
- weekly agenda section
- task list
- open questions
- refile queue
The refile queue is based on entries under an Inbox subtree that inherits =CATEGORY: inbox=.
* Files
** =early-init.el=
Early startup configuration only.
** =init.el=
Main configuration and workflow behavior.
** =custom.el=
Custom-generated state loaded at the end of =init.el= so Customize values override defaults.
** =Workflow.org=
Human-facing documentation for the workflows and keybindings enabled by this configuration.
|