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
|
<!-- Automatically generated by emacsconf-publish-watch-pages -->
<!--
[[!inline pages="internal(2026/watch/announce)" raw="yes"]]
[[!meta title="Development stream"]]
[[!sidebar content=""]] -->
<hr size="1">
<div><a name="watch"></a><strong>Watch</strong> - <a href="#links">Pad and Q&A links</a> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <a href="/2026/watch/gen/">General</a> - <strong>Development</strong> | <a href="https://emacsconf.org/2026/watch/">Tips for watching/participating</a></div>
For better performance, we recommend watching <a href="https://live0.emacsconf.org/dev.webm">https://live0.emacsconf.org/dev.webm</a> using a streaming media player. Examples:
<ul>
<li>mpv https://live0.emacsconf.org/dev.webm</li>
<li>vlc https://live0.emacsconf.org/dev.webm</li>
<li>ffplay https://live0.emacsconf.org/dev.webm</li>
<li>You can also watch it in VLC by choosing menu - Media - Open Network Stream and putting in https://live0.emacsconf.org/dev.webm</li>
</ul>
If you have limited bandwidth, you can watch the low-res stream <a href="https://live0.emacsconf.org/dev-480p.webm">https://live0.emacsconf.org/dev-480p.webm</a>.
If you don't have a streaming media player, you might be able to watch using the player below. (Google Chrome seems to be having issues; Mozilla Firefox might work better. If watching from a phone, Google Chrome seems to work there, or download VLC from your phone's app store and use the URLs like https://live0.emacsconf.org/dev.webm .)
<video controls class="reload"><source src="https://live0.emacsconf.org/dev.webm" type="video/webm" /></video>
<hr size="1"><div><a name="links"></a><a href="#watch">Watch</a> - <strong>Pad and Q&A links</strong> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <a href="/2026/watch/gen/">General</a> - <strong>Development</strong></div><div><span><a href="https://emacsconf.org/2026/talks/community">community</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-community">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-community.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/portable">portable</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-portable">pad</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/os">os</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-os">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-os.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/cadet">cadet</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-cadet">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-cadet.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/remoto">remoto</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-remoto">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-remoto.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/guile">guile</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-guile">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-guile.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/ffs">ffs</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-ffs">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-ffs.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/prefix">prefix</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-prefix">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/rau">rau</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-rau">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-rau.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/el-gpu">el-gpu</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-el-gpu">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-el-gpu.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/llms">llms</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-llms">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-llms.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/svg">svg</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-svg">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/babel">babel</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-babel">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-babel.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/ancient">ancient</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-ancient">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-ancient.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/virus">virus</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-virus">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-virus.html">BBB</a>)</span></div>
<div class="pad-output"></div>
<hr size="1"><div><a name="chat"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&A links</a> - <strong>Chat</strong> - <a href="#sched">Schedule</a> | Tracks: <a href="/2026/watch/gen/">General</a> - <strong>Development</strong></div><div>Chat: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-gen,emacsconf-dev">emacsconf-dev</a> on libera.chat</div>
<div class="chat-iframe" data-track="dev"></div>
<iframe src="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-gen,emacsconf-dev" height="600" width="100%"></iframe>
<hr size="1"><div><a name="sched"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&A links</a> - <a href="#chat">Chat</a> - <strong>Schedule</strong> | Tracks: <a href="/2026/watch/gen/">General</a> - <strong>Development</strong></div>
<ul>Legend:
<li>Solid lines: Q&A will be through a BigBlueButton room (you can ask questions there or through IRC/Etherpad)</li>
<li>Dashed lines: Q&A will be over IRC or the Etherpad, or the speaker will follow up afterwards</li></ul>
<div>Times are in Eastern Standard Time (America/Toronto, GMT-5) unless you have Javascript enabled, in which case we try to translate times to local time zone. Dates might not be translated.</div>
<div><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="nil"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday Dec 12 (-0500)</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday Dec 12 (-0500)</text><a href="https://emacsconf.org/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="15" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(44,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="https://emacsconf.org/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="78" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="141" y="20" opacity="0.8" width="47" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(186,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="203" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ltx-talk</text></g></a><a href="https://emacsconf.org/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs and SHAPEs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs and SHAPEs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="376" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">plots</text></g></a><a href="https://emacsconf.org/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="439" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(468,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="https://emacsconf.org/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="501" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(514,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="https://emacsconf.org/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="549" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="611" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(640,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="https://emacsconf.org/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="674" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="737" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="141" y="75" opacity="0.8" width="94" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(233,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="https://emacsconf.org/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="376" y="75" opacity="0.8" width="23" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(397,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="https://emacsconf.org/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="431" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(460,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="494" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(507,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="https://emacsconf.org/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:00:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:00 El Remoto: browse any GitHub repos without cloning them</title><rect x="541" y="75" opacity="0.8" width="23" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(562,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="https://emacsconf.org/2026/talks/guile" data-start="2026-12-12T20:20:00+0000" data-end="2026-12-12T20:40:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:20- 3:40 æmacs: having a hoot with a guile emacs</title><rect x="596" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(625,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2026/talks/ffs" data-start="2026-12-12T21:00:00+0000" data-end="2026-12-12T21:20:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 4:00- 4:20 Plain text presentations in GNU Emacs with ffs</title><rect x="658" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(687,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday Dec 13 (-0500)</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday Dec 13 (-0500)</text><a href="https://emacsconf.org/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="15" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="https://emacsconf.org/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="62" y="20" opacity="0.8" width="23" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(83,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="https://emacsconf.org/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:30:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:30 hutch: code reviews for the mildly disenfranchised</title><rect x="117" y="20" opacity="0.8" width="23" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="https://emacsconf.org/2026/talks/team" data-start="2026-12-13T15:40:00+0000" data-end="2026-12-13T16:00:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:40-11:00 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="156" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(185,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="https://emacsconf.org/2026/talks/compile" data-start="2026-12-13T16:20:00+0000" data-end="2026-12-13T16:40:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:20-11:40 Beyond shell history: Saving compilation output in Emacs</title><rect x="219" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="https://emacsconf.org/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="376" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="https://emacsconf.org/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="423" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="https://emacsconf.org/2026/talks/ghostel" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:10- 2:30 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="486" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(515,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="https://emacsconf.org/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="549" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="https://emacsconf.org/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="611" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(640,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="https://emacsconf.org/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="658" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="705" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="https://emacsconf.org/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:21:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:21 prefix-tab-groups</title><rect x="94" y="75" opacity="0.8" width="32" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(124,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="https://emacsconf.org/2026/talks/rau" data-start="2026-12-13T15:30:00+0000" data-end="2026-12-13T15:50:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:30-10:50 Emacs as a Window Manager and concurrency</title><rect x="141" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(170,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="https://emacsconf.org/2026/talks/el-gpu" data-start="2026-12-13T16:10:00+0000" data-end="2026-12-13T16:30:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:10-11:30 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="203" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(232,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="https://emacsconf.org/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="376" y="75" opacity="0.8" width="94" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(468,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="https://emacsconf.org/2026/talks/svg" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:20- 2:40 A (sort of) REPL for learning SVG</title><rect x="501" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(530,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="https://emacsconf.org/2026/talks/babel" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:00:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 2:50- 3:00 Org Babel everywhere</title><rect x="549" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(562,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="https://emacsconf.org/2026/talks/ancient" data-start="2026-12-13T20:20:00+0000" data-end="2026-12-13T20:40:00+0000" title="Learning an ancient language with an ancient text editor" data-slug="ancient"><title>Sun 3:20- 3:40 Learning an ancient language with an ancient text editor</title><rect x="596" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(625,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ancient</text></g></a><a href="https://emacsconf.org/2026/talks/virus" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sun 4:00- 4:20 It's Probably Not a Virus</title><rect x="658" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(687,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></g></svg></div>
<div><h1>Saturday, Dec 12, 2026</h1>
<div data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:30 EST</span> - <span class="sched-end">11:30 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-community">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-community.html">BBB</a></span>; <span class="sched-slug">id:community</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/community">[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</a></div>
<div class="sched-speakers">Participants</div>
</div>
<div data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:00 EST</span> - <span class="sched-end">1:15 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-portable">Etherpad</a></span>; <span class="sched-slug">id:portable</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/portable">Emacs as my portable user space across operating platforms</a></div>
<div class="sched-speakers">Mohammed Ismail Ansari (myTerminal)</div>
</div>
<div data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:35 EST</span> - <span class="sched-end">1:55 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-os">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-os.html">BBB</a></span>; <span class="sched-slug">id:os</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/os">Emacs everywhere: A fun romp through esoteric operating systems</a></div>
<div class="sched-speakers">Aaron Grothe (he/him)</div>
</div>
<div data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:15 EST</span> - <span class="sched-end">2:25 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-cadet">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-cadet.html">BBB</a></span>; <span class="sched-slug">id:cadet</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a></div>
<div class="sched-speakers">Andy Drop (he/him)</div>
</div>
<div data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:00:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:45 EST</span> - <span class="sched-end">3:00 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-remoto">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-remoto.html">BBB</a></span>; <span class="sched-slug">id:remoto</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/remoto">El Remoto: browse any GitHub repos without cloning them</a></div>
<div class="sched-speakers">Ag (he/him)</div>
</div>
<div data-start="2026-12-12T20:20:00+0000" data-end="2026-12-12T20:40:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:20 EST</span> - <span class="sched-end">3:40 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-guile">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-guile.html">BBB</a></span>; <span class="sched-slug">id:guile</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/guile">æmacs: having a hoot with a guile emacs</a></div>
<div class="sched-speakers">Akira Kyle (he/him)</div>
</div>
<div data-start="2026-12-12T21:00:00+0000" data-end="2026-12-12T21:20:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:00 EST</span> - <span class="sched-end">4:20 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-ffs">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-ffs.html">BBB</a></span>; <span class="sched-slug">id:ffs</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/ffs">Plain text presentations in GNU Emacs with ffs</a></div>
<div class="sched-speakers">Amin Bandali (he/him)</div>
</div>
<h1>Sunday, Dec 13, 2026</h1>
<div data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:21:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:00 EST</span> - <span class="sched-end">10:21 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-prefix">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a></span>; <span class="sched-slug">id:prefix</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/prefix">prefix-tab-groups</a></div>
<div class="sched-speakers">marco wahl (he)</div>
</div>
<div data-start="2026-12-13T15:30:00+0000" data-end="2026-12-13T15:50:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:30 EST</span> - <span class="sched-end">10:50 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-rau">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-rau.html">BBB</a></span>; <span class="sched-slug">id:rau</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/rau">Emacs as a Window Manager and concurrency</a></div>
<div class="sched-speakers">Thomas Koch</div>
</div>
<div data-start="2026-12-13T16:10:00+0000" data-end="2026-12-13T16:30:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:10 EST</span> - <span class="sched-end">11:30 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-el-gpu">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-el-gpu.html">BBB</a></span>; <span class="sched-slug">id:el-gpu</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/el-gpu">El-gpu and pix-el: GNU Emacs 2D and 3D game programming</a></div>
<div class="sched-speakers">Emanuel Berg (he/him)</div>
</div>
<div data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:00 EST</span> - <span class="sched-end">2:00 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-llms">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-llms.html">BBB</a></span>; <span class="sched-slug">id:llms</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/llms">[Panel] Emacs, LLMs, and Free Software</a></div>
<div class="sched-speakers">Participants</div>
</div>
<div data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:20 EST</span> - <span class="sched-end">2:40 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-svg">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a></span>; <span class="sched-slug">id:svg</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/svg">A (sort of) REPL for learning SVG</a></div>
<div class="sched-speakers">Eduardo Ochs</div>
</div>
<div data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:00:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:50 EST</span> - <span class="sched-end">3:00 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-babel">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-babel.html">BBB</a></span>; <span class="sched-slug">id:babel</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/babel">Org Babel everywhere</a></div>
<div class="sched-speakers">George Huebner (he/him)</div>
</div>
<div data-start="2026-12-13T20:20:00+0000" data-end="2026-12-13T20:40:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:20 EST</span> - <span class="sched-end">3:40 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-ancient">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-ancient.html">BBB</a></span>; <span class="sched-slug">id:ancient</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/ancient">Learning an ancient language with an ancient text editor</a></div>
<div class="sched-speakers">Mike Hamrick (he/him)</div>
</div>
<div data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" class="sched-entry track-Development">
<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:00 EST</span> - <span class="sched-end">4:20 EST</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-virus">Etherpad</a></span>; <span class="sched-q-and-a">Q&A: <a href="https://media.emacsconf.org/2026/current/bbb-virus.html">BBB</a></span>; <span class="sched-slug">id:virus</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2026/talks/virus">It's Probably Not a Virus</a></div>
<div class="sched-speakers">Corwin Brust (he/him)</div>
</div>
</div>
|