summaryrefslogtreecommitdiffstats
path: root/2026/watch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2026/watch.md101
-rw-r--r--2026/watch/dev.md123
-rw-r--r--2026/watch/gen.md221
-rw-r--r--2026/watch/info.md11
4 files changed, 456 insertions, 0 deletions
diff --git a/2026/watch.md b/2026/watch.md
new file mode 100644
index 00000000..a18d19e0
--- /dev/null
+++ b/2026/watch.md
@@ -0,0 +1,101 @@
+[[!inline pages="internal(2025/watch/announce)" raw="yes"]]
+[[!inline pages="internal(2025/watch/info)" raw="yes"]]
+[[!sidebar content=""]]
+
+EmacsConf 2026 will be on **Dec 12** (Sat) and **Dec 13** (Sun), 2026 from
+9am-5pm Toronto/EST time (US/Eastern); equivalently, 6am-3pm PST,
+2pm-10pm UTC, 3pm-11pm Zurich/CET, 7:30pm-4:30am(next-day) India/IST,
+10pm-6am GMT+8.
+
+You can view the live conference streams in a
+streaming web player such as [MPV](https://mpv.io)
+or via the watch pages in the table above. If you
+need to reverse the video for easier viewing (ex:
+turning dark mode into light mode), try a command
+like `mpv --vf=negate URL`.
+
+If you experience any disruptions (including weird audio), try waiting
+a minute or two and then reloading the page you're using to watch the
+video. If that still doesn't work, please check our status page at
+<https://status.emacsconf.org> for updates on the status of various
+parts of our infrastructure, and instructions on how to get in touch
+with us about disruptions.
+
+We will also try to rebroadcast on [YouTube](https://www.youtube.com/@EmacsConf).
+Youtube events:
+
+- [General - Dec 6 Sat AM](https://youtube.com/live/FI3eGeGCyQM)
+- [Development - Dec 6 Sat AM](https://youtube.com/live/KCZthyBhHtg)
+- [General - Dec 6 Sat PM](https://youtube.com/live/Y3PjMp2mBQM)
+- [Development - Dec 6 Sat PM](https://youtube.com/live/r41CGbNo9Sw)
+- [General - Dec 7 Sun AM](https://youtube.com/live/tzPmQ40hwis)
+- [General - Dec 7 Sun PM](https://youtube.com/live/uCNWK0Bqo9Q)
+
+and maybe also Toobnix (PeerTube):
+
+- [General - EmacsConf 2025 - toobnix](https://toobnix.org/w/oLwaPU7MgMFDAWPhaFdW1t)
+- [Development - EmacsConf 2025 - toobnix](https://toobnix.org/w/uXGmcRigZD82UWr5nehKeL)
+
+To participate in the Q&A, please check the [[talks]] index for a link
+to the talk page, and [[read these Q&A tips|qa]]. The talk page will
+have the Q&A details, including the Etherpad link, IRC channel, and
+optionally a BigBlueButton room (BBB) for live Q&A via web conference.
+
+**BigBlueButton web conference** (Javascript
+required): If you plan to participate in Q&A in
+the BigBlueButton room, please use headphones or
+earphones in order to minimize audio feedback. The
+link on the talk page will take you to a waiting
+room that will automatically refresh when the host
+has opened the Q&A. If you are having a hard time
+joining or participating, you may need to switch
+to Mozilla Firefox, Chromium, or Google Chrome.
+Please let us know in #emacsconf-org in case we
+can help you troubleshoot.
+
+**Etherpad** (Javascript required): The Etherpad for general EmacsConf
+discussions is at
+<https://pad.emacsconf.org/emacsconf>. The schedule and
+the talk pages link to the Etherpads for the
+specific talk. Please feel free to add notes and
+questions to the Etherpad.
+
+**IRC**: You can join IRC using
+<https://chat.emacsconf.org> (Javascript required)
+or your favourite IRC client (no Javascript
+required). Here are the irc.libera.chat:6697 IRC
+channels that we'll be using this year:
+
+- \#emacsconf-gen: discussion for the General track
+- \#emacsconf-dev: discussion for the development track
+- \#emacsconf: hallway conversations, other general conversations
+- \#emacsconf-org: if you need to get in touch with the organizers
+
+You can use the `/JOIN` command in an IRC client to join a different
+channel. Ex: `/join #emacsconf-org` if you want to talk to the
+organizers.
+
+**Without Javascript**: If you prefer to avoid
+Javascript, you can still ask your questions via
+IRC in the relevant track channel (\#emacsconf-gen
+or \#emacsconf-dev). Volunteers will read your
+questions out loud during sessions with
+web-conference Q&As or copy them into the Etherpad
+for you. If we miss your question because the
+discussion is very busy, we'll catch it afterwards
+and send it to the speaker.
+
+**Videos**: Pre-recorded talk videos will be
+available on the talk pages and [on YouTube](https://youtube.com/@EmacsConf) after the talks go
+live, and other videos (including Q&A) will also
+be added to the talk pages once we process them.
+(Probably by January.) You can subscribe to
+`emacsconf-discuss` for updates:
+<https://lists.gnu.org/mailman/listinfo/emacsconf-discuss>
+
+**Accessibility:** Pre-recorded talks will be streamed with open
+captions, and the transcripts will be posted to the talk pages as
+well. If you have any accessibility requests, please join the
+[#emacsconf-org](https://chat.emacsconf.org/?join=emacsconf-org) and
+let us know, or e-mail <emacsconf-org-private@gnu.org> to reach the
+organizers.
diff --git a/2026/watch/dev.md b/2026/watch/dev.md
new file mode 100644
index 00000000..06bf8087
--- /dev/null
+++ b/2026/watch/dev.md
@@ -0,0 +1,123 @@
+<!-- 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&amp;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&amp;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/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> - <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/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/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></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&amp;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&amp;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). If you have Javascript enabled, clicking on talk pages should include times in your computer's local time setting.</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="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</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: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: 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/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</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)">ffs</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/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</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)">android</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="784" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(797,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:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="541" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(570,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:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="603" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(632,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/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="666" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(695,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-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:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="117" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(130,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:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="149" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(178,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:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="211" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(240,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/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</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)">svg</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/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="658" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(687,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/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="721" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(734,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:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="94" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(107,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:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(154,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/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="188" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(201,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/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="235" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(264,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: Access, Agency, and Accountability" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software: Access, Agency, and Accountability</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><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</span> - <span class="sched-end">11:30</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&amp;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</span> - <span class="sched-end">1:15</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</span> - <span class="sched-end">1:55</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&amp;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</span> - <span class="sched-end">2:25</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&amp;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:05:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:45</span> - <span class="sched-end">3:05</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&amp;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:25:00+0000" data-end="2026-12-12T20:45:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:25</span> - <span class="sched-end">3:45</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&amp;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:05:00+0000" data-end="2026-12-12T21:25:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:05</span> - <span class="sched-end">4:25</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&amp;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>
+
+<h1>Sunday, Dec 13, 2026</h1>
+<div data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:00</span> - <span class="sched-end">10:10</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&amp;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:20:00+0000" data-end="2026-12-13T15:40:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:20</span> - <span class="sched-end">10:40</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&amp;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:00:00+0000" data-end="2026-12-13T16:10:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:00</span> - <span class="sched-end">11:10</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&amp;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-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:30</span> - <span class="sched-end">11:50</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&amp;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</span> - <span class="sched-end">2:00</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&amp;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: Access, Agency, and Accountability</a></div>
+ <div class="sched-speakers">Participants</div>
+
+</div>
+
+</div>
diff --git a/2026/watch/gen.md b/2026/watch/gen.md
new file mode 100644
index 00000000..ee9758a8
--- /dev/null
+++ b/2026/watch/gen.md
@@ -0,0 +1,221 @@
+<!-- Automatically generated by emacsconf-publish-watch-pages -->
+<!--
+[[!inline pages="internal(2026/watch/announce)" raw="yes"]]
+[[!meta title="General stream"]]
+[[!sidebar content=""]] -->
+
+<hr size="1">
+<div><a name="watch"></a><strong>Watch</strong> - <a href="#links">Pad and Q&amp;A links</a> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2026/watch/dev/">Development</a> | <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/gen.webm">https://live0.emacsconf.org/gen.webm</a> using a streaming media player. Examples:
+
+<ul>
+<li>mpv https://live0.emacsconf.org/gen.webm</li>
+<li>vlc https://live0.emacsconf.org/gen.webm</li>
+<li>ffplay https://live0.emacsconf.org/gen.webm</li>
+<li>You can also watch it in VLC by choosing menu - Media - Open Network Stream and putting in https://live0.emacsconf.org/gen.webm</li>
+</ul>
+
+If you have limited bandwidth, you can watch the low-res stream <a href="https://live0.emacsconf.org/gen-480p.webm">https://live0.emacsconf.org/gen-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/gen.webm .)
+
+<video controls class="reload"><source src="https://live0.emacsconf.org/gen.webm" type="video/webm" /></video>
+
+<hr size="1"><div><a name="links"></a><a href="#watch">Watch</a> - <strong>Pad and Q&amp;A links</strong> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2026/watch/dev/">Development</a></div><div><span><a href="https://emacsconf.org/2026/talks/sat-open">sat-open</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-sat-open">pad</a>, <a href="https://pad.emacsconf.org/2026-sat-open">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/planning">planning</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-planning">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-planning.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/listen">listen</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-listen">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-listen.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/emacspeak">emacspeak</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-emacspeak">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/ltx-talk">ltx-talk</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-ltx-talk">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-ltx-talk.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/plots">plots</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-plots">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-plots.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/mobile">mobile</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-mobile">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-mobile.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/hyperbole">hyperbole</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-hyperbole">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-hyperbole.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/koutliner">koutliner</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-koutliner">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-koutliner.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/writing">writing</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-writing">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-writing.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/android">android</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-android">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-android.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/sat-close">sat-close</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-sat-close">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-sat-close.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/sun-open">sun-open</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-sun-open">pad</a>, <a href="https://pad.emacsconf.org/2026-sun-open">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/bone">bone</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-bone">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-bone.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/local">local</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-local">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-local.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/hutch">hutch</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-hutch">pad</a>, <a href="https://pad.emacsconf.org/2026-hutch">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/team">team</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-team">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-team.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/compile">compile</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-compile">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-compile.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/dnd">dnd</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-dnd">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2026/talks/bible">bible</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-bible">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-bible.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>)</span> - <span><a href="https://emacsconf.org/2026/talks/align">align</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-align">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-align.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/anju">anju</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-anju">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: kickingvegas</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/ghostel">ghostel</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-ghostel">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-ghostel.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2026/talks/sun-close">sun-close</a> (<a class="pad-link" href="https://pad.emacsconf.org/2026-sun-close">pad</a>, <a href="https://media.emacsconf.org/2026/current/bbb-sun-close.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&amp;A links</a> - <strong>Chat</strong> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2026/watch/dev/">Development</a></div><div>Chat: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-dev,emacsconf-gen">emacsconf-gen</a> on libera.chat</div>
+
+<div class="chat-iframe" data-track="gen"></div>
+<iframe src="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-dev,emacsconf-gen" height="600" width="100%"></iframe>
+<hr size="1"><div><a name="sched"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&amp;A links</a> - <a href="#chat">Chat</a> - <strong>Schedule</strong> | Tracks: <strong>General</strong> - <a href="/2026/watch/dev/">Development</a></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). If you have Javascript enabled, clicking on talk pages should include times in your computer's local time setting.</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="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</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: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: 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/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</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)">ffs</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/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</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)">android</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="784" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(797,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:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="541" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(570,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:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="603" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(632,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/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="666" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(695,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-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:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="117" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(130,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:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="149" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(178,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:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="211" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(240,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/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</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)">svg</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/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="658" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(687,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/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="721" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(734,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:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="94" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(107,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:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(154,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/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="188" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(201,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/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="235" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(264,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: Access, Agency, and Accountability" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software: Access, Agency, and Accountability</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><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-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:00</span> - <span class="sched-end">9:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-sat-open">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2026-sat-open">Etherpad</a></span>; <span class="sched-slug">id:sat-open</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/sat-open">Saturday opening remarks</a></div>
+ <div class="sched-speakers">Sacha Chua</div>
+
+</div>
+
+<div data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:10</span> - <span class="sched-end">9:30</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-planning">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-planning.html">BBB</a></span>; <span class="sched-slug">id:planning</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/planning">The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</a></div>
+ <div class="sched-speakers">George Jones</div>
+
+</div>
+
+<div data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:50</span> - <span class="sched-end">10:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-listen">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-listen.html">BBB</a></span>; <span class="sched-slug">id:listen</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/listen">Controlling Emacs by voice using Emacslisten</a></div>
+ <div class="sched-speakers">Erik Präntare</div>
+
+</div>
+
+<div data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:30</span> - <span class="sched-end">11:00</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-emacspeak">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a></span>; <span class="sched-slug">id:emacspeak</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/emacspeak">Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</a></div>
+ <div class="sched-speakers">Arkadiusz</div>
+
+</div>
+
+<div data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:10</span> - <span class="sched-end">11:30</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-ltx-talk">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-ltx-talk.html">BBB</a></span>; <span class="sched-slug">id:ltx-talk</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/ltx-talk">ltx-talk: Accessible presentations with ox-beamer</a></div>
+ <div class="sched-speakers">Pedro A. Aranda and Roger Schürch (he)</div>
+
+</div>
+
+<div data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:00</span> - <span class="sched-end">1:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-plots">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-plots.html">BBB</a></span>; <span class="sched-slug">id:plots</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/plots">Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</a></div>
+ <div class="sched-speakers">Lukas C. Bossert (he/him)</div>
+
+</div>
+
+<div data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:40</span> - <span class="sched-end">2:00</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-ffs">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;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>
+
+<div data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:20</span> - <span class="sched-end">2:30</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-mobile">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-mobile.html">BBB</a></span>; <span class="sched-slug">id:mobile</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/mobile">How I solved Org Mode's biggest mobile and collaboration problems</a></div>
+ <div class="sched-speakers">bashbunni (she/her)</div>
+
+</div>
+
+<div data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:50</span> - <span class="sched-end">3:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-hyperbole">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-hyperbole.html">BBB</a></span>; <span class="sched-slug">id:hyperbole</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/hyperbole">Hyperbole, My Dear Watson</a></div>
+ <div class="sched-speakers">Charlie Holland (he/him/his)</div>
+
+</div>
+
+<div data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:30</span> - <span class="sched-end">3:50</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-koutliner">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-koutliner.html">BBB</a></span>; <span class="sched-slug">id:koutliner</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/koutliner">Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</a></div>
+ <div class="sched-speakers">Bob Weiner</div>
+
+</div>
+
+<div data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:10</span> - <span class="sched-end">4:30</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-writing">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-writing.html">BBB</a></span>; <span class="sched-slug">id:writing</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/writing">Close the writing accountability gap with Emacs</a></div>
+ <div class="sched-speakers">Blaine Mooers (he, him)</div>
+
+</div>
+
+<div data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:50</span> - <span class="sched-end">5:00</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-android">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-android.html">BBB</a></span>; <span class="sched-slug">id:android</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/android">Emacs on Android - Emacs for the next 40 years</a></div>
+ <div class="sched-speakers">Greg Silverstein (he/him)</div>
+
+</div>
+
+<div data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">5:20</span> - <span class="sched-end">5:30</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-sat-close">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-sat-close.html">BBB</a></span>; <span class="sched-slug">id:sat-close</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/sat-close">Saturday closing remarks / open session</a></div>
+
+
+</div>
+
+<h1>Sunday, Dec 13, 2026</h1>
+<div data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:00</span> - <span class="sched-end">9:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-sun-open">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2026-sun-open">Etherpad</a></span>; <span class="sched-slug">id:sun-open</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/sun-open">Sunday opening remarks</a></div>
+ <div class="sched-speakers">Sacha Chua</div>
+
+</div>
+
+<div data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:10</span> - <span class="sched-end">9:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-bone">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-bone.html">BBB</a></span>; <span class="sched-slug">id:bone</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/bone">BONE and gnaw.el: tracking what matters</a></div>
+ <div class="sched-speakers">Bastien Guerry (he)</div>
+
+</div>
+
+<div data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:40</span> - <span class="sched-end">9:55</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-local">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-local.html">BBB</a></span>; <span class="sched-slug">id:local</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/local">Local file history possibilities in Emacs</a></div>
+ <div class="sched-speakers">Wouter Groeneveld</div>
+
+</div>
+
+<div data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:15</span> - <span class="sched-end">10:25</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-hutch">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2026-hutch">Etherpad</a></span>; <span class="sched-slug">id:hutch</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/hutch">hutch: code reviews for the mildly disenfranchised</a></div>
+ <div class="sched-speakers">Akshay Gupta (he/him)</div>
+
+</div>
+
+<div data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:35</span> - <span class="sched-end">10:55</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-team">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-team.html">BBB</a></span>; <span class="sched-slug">id:team</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/team">Beyond the Chatbot: Team-Oriented AI in Emacs</a></div>
+ <div class="sched-speakers">Mohsen BANAN (he/him)</div>
+
+</div>
+
+<div data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:15</span> - <span class="sched-end">11:35</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-compile">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-compile.html">BBB</a></span>; <span class="sched-slug">id:compile</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/compile">Beyond shell history: Saving compilation output in Emacs</a></div>
+ <div class="sched-speakers">Jonathan Otsuka (he/him)</div>
+
+</div>
+
+<div data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:00</span> - <span class="sched-end">1:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-dnd">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: none</span>; <span class="sched-slug">id:dnd</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/dnd">DnD and Org Roam: Becoming a Better DM with Emacs</a></div>
+ <div class="sched-speakers">James R. Stoup</div>
+
+</div>
+
+<div data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:30</span> - <span class="sched-end">1:50</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-bible">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-bible.html">BBB</a></span>; <span class="sched-slug">id:bible</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/bible">bible-gateway: A Two-Edged Sword in Emacs</a></div>
+ <div class="sched-speakers">Kristjon Ciko (he/him)</div>
+
+</div>
+
+<div data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:10</span> - <span class="sched-end">2:30</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-svg">Etherpad</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:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:50</span> - <span class="sched-end">3:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-align">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-align.html">BBB</a></span>; <span class="sched-slug">id:align</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/align">Column-aligning text in Emacs</a></div>
+ <div class="sched-speakers">Jeff Trull (he/him)</div>
+
+</div>
+
+<div data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:30</span> - <span class="sched-end">3:50</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-anju">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: kickingvegas</a></span>; <span class="sched-slug">id:anju</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a></div>
+ <div class="sched-speakers">Charles Y. Choi</div>
+
+</div>
+
+<div data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:00</span> - <span class="sched-end">4:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-ghostel">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-ghostel.html">BBB</a></span>; <span class="sched-slug">id:ghostel</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/ghostel">Ghost in the Shell: a libghostty powered terminal for Emacs</a></div>
+ <div class="sched-speakers">Daniel Kraus (he/him)</div>
+
+</div>
+
+<div data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:40</span> - <span class="sched-end">4:50</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2026-sun-close">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2026/current/bbb-sun-close.html">BBB</a></span>; <span class="sched-slug">id:sun-close</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2026/talks/sun-close">Sunday closing remarks</a></div>
+
+
+</div>
+
+</div>
diff --git a/2026/watch/info.md b/2026/watch/info.md
new file mode 100644
index 00000000..d42146d1
--- /dev/null
+++ b/2026/watch/info.md
@@ -0,0 +1,11 @@
+[[!sidebar content=""]]<!-- Automatically generated by emacsconf-publish-watch-pages -->
+
+<h2>Tracks</h2>
+We recommend using a streaming player like mpv to watch the livestreams. Example: <pre>
+mpv https://live0.emacsconf.org/gen.webm
+mpv https://live0.emacsconf.org/dev.webm
+</pre><table width="100%"><tr><th>Watch page</th><th>Watch page (low-res)</th><th>IRC channel (libera.chat)</th><th>URL for streaming player (ex: mpv, vlc, ffplay)</th><th>Low res</th></tr>
+<tr><td><div class="sched-track General"><a href="https://live.emacsconf.org/2026/watch/gen/">General</a></div></td><td><a href="https://live.emacsconf.org/2026/watch/gen-480p/">General (low-res)</a></td><td><a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-dev,emacsconf-gen">emacsconf-gen</a></td><td><a href="https://live0.emacsconf.org/gen.webm">https://live0.emacsconf.org/gen.webm</a></td><td><a href="https://live0.emacsconf.org/gen-480p.webm">gen-480p.webm</a></tr>
+<tr><td><div class="sched-track Development"><a href="https://live.emacsconf.org/2026/watch/dev/">Development</a></div></td><td><a href="https://live.emacsconf.org/2026/watch/dev-480p/">Development (low-res)</a></td><td><a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-gen,emacsconf-dev">emacsconf-dev</a></td><td><a href="https://live0.emacsconf.org/dev.webm">https://live0.emacsconf.org/dev.webm</a></td><td><a href="https://live0.emacsconf.org/dev-480p.webm">dev-480p.webm</a></tr></table>
+
+<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="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</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: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: 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/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</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)">ffs</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/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</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)">android</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="784" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(797,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:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="541" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(570,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:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="603" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(632,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/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="666" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(695,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-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:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="117" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(130,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:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="149" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(178,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:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="211" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(240,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/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</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)">svg</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/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="658" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(687,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/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="721" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(734,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:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="94" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(107,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:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(154,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/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="188" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(201,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/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="235" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(264,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: Access, Agency, and Accountability" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software: Access, Agency, and Accountability</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><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> \ No newline at end of file