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
|
calendar-sync.local.el into common/.emacs.d/
=============================================
Date: 2026-05-13
Machine: laptop (this one)
What was done
-------------
Added dotfiles/common/.emacs.d/calendar-sync.local.el. The real
file lives under common/ and is symlinked back into ~/.emacs.d/
on this machine:
~/.emacs.d/calendar-sync.local.el
-> ~/code/archsetup/dotfiles/common/.emacs.d/calendar-sync.local.el
A matching template, calendar-sync.local.el.example, was checked
into the dotemacs repo so future setups know what shape the file
needs to take. The .example file is tracked in dotemacs;
calendar-sync.local.el itself is gitignored in dotemacs (entry
already present at .gitignore:54).
Why
---
On 2026-05-04, commit cc594fd ("Make calendar sync startup safe
without config") in the dotemacs repo refactored
modules/calendar-sync.el to stop hard-coding the calendar feed
URLs inline. The new design loads them from a private file at
~/.emacs.d/calendar-sync.local.el. That file is gitignored in
dotemacs, so it never propagates across machines via the dotemacs
checkout.
This laptop never got the file created. M-x calendar-sync-now
failed with "calendar-sync: No calendars configured". State file
(data/calendar-sync-state.el) showed last successful sync at
2026-05-01 16:57, three days before the refactor landed --
confirming the gap.
Putting the file under common/ in archsetup means GNU Stow
distributes it the same way every other dotfile is distributed:
make stow links it into $HOME on each machine.
Heads-up for archsetup
----------------------
The file contains real private .ics feed URLs (Google personal,
Proton, Google work). It is currently TRACKED in archsetup --
.gitignore was not modified to exclude it, because the whole
point of putting it under common/ is for it to flow to other
machines via git pull + make restow.
The archsetup remote is git@cjennings.net:archsetup.git only --
your private server, no public mirror -- so exposure is bounded
to that host. Same URLs are already in dotemacs git history on
both cjennings.net and the github.com mirror anyway (from
cc594fd^). The dotemacs URLs were left in place by choice.
If you ever change your mind on tracking, the move is:
1. Regenerate the .ics secret addresses in each calendar's UI.
2. Add dotfiles/common/.emacs.d/calendar-sync.local.el to
archsetup/.gitignore.
3. Distribute the file out-of-band (manual copy, age-encrypted,
pass, whatever).
While here: inbox/ was root-owned (since 2026-04-10) and
unwritable as cjennings, blocking note creation. Ran:
sudo chown -R cjennings:cjennings ~/code/archsetup/inbox/
to normalize. No idea what set it to root originally -- probably
a sudo-driven install step. Worth flagging if it returns.
Action items
------------
- Decide whether to commit common/.emacs.d/calendar-sync.local.el
in archsetup (recommended) or pull it into a separate private
channel.
- On every other machine: pull archsetup, run `make restow
<de>`, restart Emacs. The symlink should appear and the next
M-x calendar-sync-now will work.
|