summaryrefslogtreecommitdiffstats
path: root/2026
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2026-09-25 10:55:58 -0400
committerSacha Chua <sacha@sachachua.com>2026-09-25 10:55:58 -0400
commit24fea6071941f20bdd2ea5bcb9eb51fb9f69c950 (patch)
tree8021e0e9a1713b55436dcbc7c4d0fb1f6b477c3b /2026
parent504ca1fc5c69b1b10a094cc8fb42836da1aaecac (diff)
downloademacsconf-wiki-24fea6071941f20bdd2ea5bcb9eb51fb9f69c950.tar.xz
emacsconf-wiki-24fea6071941f20bdd2ea5bcb9eb51fb9f69c950.zip
add ffs
Diffstat (limited to '')
-rw-r--r--2026/info/align-nav.md2
-rw-r--r--2026/info/anju-nav.md4
-rw-r--r--2026/info/bible-nav.md2
-rw-r--r--2026/info/cadet-nav.md2
-rw-r--r--2026/info/community-nav.md4
-rw-r--r--2026/info/emacspeak-nav.md2
-rw-r--r--2026/info/ffs-after.md10
-rw-r--r--2026/info/ffs-before.md13
-rw-r--r--2026/info/ffs-nav.md7
-rw-r--r--2026/info/hutch-nav.md2
-rw-r--r--2026/info/hyperbole-nav.md2
-rw-r--r--2026/info/koutliner-nav.md2
-rw-r--r--2026/info/llms-nav.md4
-rw-r--r--2026/info/portable-nav.md2
-rw-r--r--2026/info/rau-nav.md6
-rw-r--r--2026/info/sat-close-nav.md2
-rw-r--r--2026/info/sun-open-nav.md2
-rw-r--r--2026/info/writing-nav.md4
-rw-r--r--2026/organizers-notebook/index.org15
-rw-r--r--2026/organizers-notebook/schedule.svg2
-rw-r--r--2026/schedule-details.md13
-rw-r--r--2026/submit.md4
-rw-r--r--2026/talks/ffs.md37
23 files changed, 107 insertions, 36 deletions
diff --git a/2026/info/align-nav.md b/2026/info/align-nav.md
index a299633b..b5bcec00 100644
--- a/2026/info/align-nav.md
+++ b/2026/info/align-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2026/talks/bible">bible-gateway: A Two-Edged Sword in Emacs</a>
-Next by track: <a href="/2026/talks/llms">Meetup about LLMs</a>
+Next by track: <a href="/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/anju-nav.md b/2026/info/anju-nav.md
index d2ad8874..67db5ee6 100644
--- a/2026/info/anju-nav.md
+++ b/2026/info/anju-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/koutliner">Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</a>
-Next by track: <a href="/2026/talks/sun-open">Sunday opening remarks</a>
+Previous by track: <a href="/2026/talks/align">Column-aligning text in Emacs</a>
+Next by track: <a href="/2026/talks/community">Community brainstorming</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/bible-nav.md b/2026/info/bible-nav.md
index 4f9edc31..31c3f28d 100644
--- a/2026/info/bible-nav.md
+++ b/2026/info/bible-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/writing">Close the writing accountability gap with Emacs</a>
+Previous by track: <a href="/2026/talks/hutch">hutch: code reviews for the mildly disenfranchised</a>
Next by track: <a href="/2026/talks/align">Column-aligning text in Emacs</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/cadet-nav.md b/2026/info/cadet-nav.md
index 1652faf9..d362fb2d 100644
--- a/2026/info/cadet-nav.md
+++ b/2026/info/cadet-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2026/talks/os">Emacs everywhere: A fun romp through esoteric operating systems</a>
-Next by track: <a href="/2026/talks/community">Community brainstorming</a>
+Next by track: <a href="/2026/talks/rau">Emacs as a Window Manager and concurrency</a>
Track: <span class="sched-track B">B</span>
</div>
diff --git a/2026/info/community-nav.md b/2026/info/community-nav.md
index ee5d8526..12402be4 100644
--- a/2026/info/community-nav.md
+++ b/2026/info/community-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a>
-Next by track: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a>
+Previous by track: <a href="/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a>
+Next by track: <a href="/2026/talks/portable">Emacs as my portable user space across operating platforms</a>
Track: <span class="sched-track B">B</span>
</div>
diff --git a/2026/info/emacspeak-nav.md b/2026/info/emacspeak-nav.md
index 7a2438b4..9a4915d5 100644
--- a/2026/info/emacspeak-nav.md
+++ b/2026/info/emacspeak-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/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>
-Next by track: <a href="/2026/talks/rau">Emacs as a Window Manager and concurrency</a>
+Next by track: <a href="/2026/talks/ffs">Plain text presentations in GNU Emacs with ffs</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/ffs-after.md b/2026/info/ffs-after.md
new file mode 100644
index 00000000..61ef5639
--- /dev/null
+++ b/2026/info/ffs-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [bandali@gnu.org](mailto:bandali@gnu.org?subject=Comment%20for%20EmacsConf%202023%20ffs%3A%20Plain%20text%20presentations%20in%20GNU%20Emacs%20with%20ffs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/ffs-before.md b/2026/info/ffs-before.md
new file mode 100644
index 00000000..04580395
--- /dev/null
+++ b/2026/info/ffs-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-ffs>
+Etherpad: <https://pad.emacsconf.org/2026-ffs>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/ffs-nav.md b/2026/info/ffs-nav.md
new file mode 100644
index 00000000..d6d8db3f
--- /dev/null
+++ b/2026/info/ffs-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/emacspeak">Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</a>
+Next by track: <a href="/2026/talks/writing">Close the writing accountability gap with Emacs</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2026/info/hutch-nav.md b/2026/info/hutch-nav.md
index 89e37dff..8c50cd03 100644
--- a/2026/info/hutch-nav.md
+++ b/2026/info/hutch-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2026/talks/local">Local file history possibilities in Emacs</a>
-Next by track: <a href="/2026/talks/writing">Close the writing accountability gap with Emacs</a>
+Next by track: <a href="/2026/talks/bible">bible-gateway: A Two-Edged Sword in Emacs</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/hyperbole-nav.md b/2026/info/hyperbole-nav.md
index d1553eaa..78be239d 100644
--- a/2026/info/hyperbole-nav.md
+++ b/2026/info/hyperbole-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/rau">Emacs as a Window Manager and concurrency</a>
+Previous by track: <a href="/2026/talks/writing">Close the writing accountability gap with Emacs</a>
Next by track: <a href="/2026/talks/koutliner">Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/koutliner-nav.md b/2026/info/koutliner-nav.md
index 83421a2e..96c0ce42 100644
--- a/2026/info/koutliner-nav.md
+++ b/2026/info/koutliner-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2026/talks/hyperbole">Hyperbole, My Dear Watson</a>
-Next by track: <a href="/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a>
+Next by track: <a href="/2026/talks/sun-open">Sunday opening remarks</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/llms-nav.md b/2026/info/llms-nav.md
index 859bb821..fe95b1e0 100644
--- a/2026/info/llms-nav.md
+++ b/2026/info/llms-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/align">Column-aligning text in Emacs</a>
-Next by track: <a href="/2026/talks/portable">Emacs as my portable user space across operating platforms</a>
+Previous by track: <a href="/2026/talks/rau">Emacs as a Window Manager and concurrency</a>
+Next by track: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a>
Track: <span class="sched-track B">B</span>
</div>
diff --git a/2026/info/portable-nav.md b/2026/info/portable-nav.md
index 9517f87c..12a91058 100644
--- a/2026/info/portable-nav.md
+++ b/2026/info/portable-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/llms">Meetup about LLMs</a>
+Previous by track: <a href="/2026/talks/community">Community brainstorming</a>
Next by track: <a href="/2026/talks/os">Emacs everywhere: A fun romp through esoteric operating systems</a>
Track: <span class="sched-track B">B</span>
</div>
diff --git a/2026/info/rau-nav.md b/2026/info/rau-nav.md
index 089972c9..da44e07b 100644
--- a/2026/info/rau-nav.md
+++ b/2026/info/rau-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/emacspeak">Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</a>
-Next by track: <a href="/2026/talks/hyperbole">Hyperbole, My Dear Watson</a>
-Track: <span class="sched-track General">General</span>
+Previous by track: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a>
+Next by track: <a href="/2026/talks/llms">Meetup about LLMs</a>
+Track: <span class="sched-track B">B</span>
</div>
diff --git a/2026/info/sat-close-nav.md b/2026/info/sat-close-nav.md
index 1764cb21..d804e7ed 100644
--- a/2026/info/sat-close-nav.md
+++ b/2026/info/sat-close-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/community">Community brainstorming</a>
+Previous by track: <a href="/2026/talks/llms">Meetup about LLMs</a>
Next by track: <a href="/2026/talks/sun-close">Sunday closing remarks</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/sun-open-nav.md b/2026/info/sun-open-nav.md
index 508ff71d..96196b33 100644
--- a/2026/info/sun-open-nav.md
+++ b/2026/info/sun-open-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a>
+Previous by track: <a href="/2026/talks/koutliner">Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</a>
Next by track: <a href="/2026/talks/bone">BONE and gnaw.el: tracking what matters</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/info/writing-nav.md b/2026/info/writing-nav.md
index ec817450..31bb7d8b 100644
--- a/2026/info/writing-nav.md
+++ b/2026/info/writing-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/hutch">hutch: code reviews for the mildly disenfranchised</a>
-Next by track: <a href="/2026/talks/bible">bible-gateway: A Two-Edged Sword in Emacs</a>
+Previous by track: <a href="/2026/talks/ffs">Plain text presentations in GNU Emacs with ffs</a>
+Next by track: <a href="/2026/talks/hyperbole">Hyperbole, My Dear Watson</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2026/organizers-notebook/index.org b/2026/organizers-notebook/index.org
index 7fe6e24b..27ca03e8 100644
--- a/2026/organizers-notebook/index.org
+++ b/2026/organizers-notebook/index.org
@@ -244,10 +244,10 @@ CLOSED: [2026-07-02 Thu 11:35]
(lunch :start "12:00")
plots ; <= 14:00 Plots with ROOTs
ffs ; Plain text presentations in GNU Emacs with ffs
+ mobile ; >= 12:00 EST -- Pacific Time (Los Angeles) How I fixed Org Mode's biggest mobile and collaboration problems
+ writing ; Close the writing accountability gap with Emacs
hyperbole ; Hyperbole, My Dear Watson
koutliner ; >= 11:00 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs
- anju ; >= 12:00
- ghostel ; >= 14:00 Ghost in the Shell: a libghostty powered terminal for Emacs
sat-close
("B Saturday, Dec 6" :start "2026-12-12 9:30" :set-track "B")
(community :start "10:30")
@@ -263,14 +263,16 @@ CLOSED: [2026-07-02 Thu 11:35]
team
compile ; >= 11:00 Beyond Shell History: Saving Compilation Output in Emacs
(lunch :start "12:00")
- mobile ; How I fixed Org Mode's biggest mobile and collaboration problems
- writing
dnd ; DnD and Org Roam: Becoming a Better DM with Emacs
+
bible
svg
align
+ anju ; >= 12:00
+ ghostel ; >= 14:00 Ghost in the Shell: a libghostty powered terminal for Emacs
(sun-close)
("B Saturday, Dec 6" :start "2026-12-13 10:00" :set-track "B")
+ prefix ; >= 10:00 EST prefix-tab-groups
rau ; <= 13:00
(lunch :start "12:00")
llms
@@ -312,7 +314,8 @@ Notes:
- emacsconf:hyperbole and emacsconf:koutliner would like to be on Saturday
- Let's see if we can pair these up:
- emacsconf:listen, emacsconf:emacspeak, and emacsconf:ltx-talk - accessibility and awesomeness
- - emacsconf:mobile, emacsconf:hyperbole, emacsconf:koutliner, emacsconf:dnd: PIM
+ - emacsconf:ltx-talk, emacsconf:plots, emacsconf:ffs are presentation-related
+ - emacsconf:mobile, emacsconf:writing, emacsconf:hyperbole, emacsconf:koutliner would be nice to put together with these too
- emacsconf:hutch and emacsconf:team and emacsconf:compile - LLM-related; people who aren't interested in LLMs can continue to hang out with bzg in the emacsconf:bone talk
- emacsconf:portable, emacsconf:os and emacsconf:cadet
- emacsconf:community and emacsconf:llms might be either panels or open-mic meetup-type things
@@ -339,7 +342,7 @@ For big changes, use emacsconf-mail-schedule-updates
:CUSTOM_ID: phases-while-speakers-are-working-on-their-videos
:END:
*** TODO Send draft schedule :email:
-SCHEDULED: <2026-09-25 Fri>
+SCHEDULED: <2026-09-26 Sat>
:PROPERTIES:
:CREATED: [2025-09-30 Tue 09:38]
:Effort: 0:30
diff --git a/2026/organizers-notebook/schedule.svg b/2026/organizers-notebook/schedule.svg
index 2afab8e3..1b35c3f2 100644
--- a/2026/organizers-notebook/schedule.svg
+++ b/2026/organizers-notebook/schedule.svg
@@ -1 +1 @@
-<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2026/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/planning" 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> 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="40" y="53" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,78)"><text fill="black" x="0" y="0" font-size="10" transform="nil">planning</text></g></a><a href="https://emacsconf.org/2026/talks/listen" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title> 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="40" y="108" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">listen</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="40" y="163" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,202)"><text fill="black" x="0" y="0" font-size="10" transform="nil">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/ltx-talk" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ltx-talk</text></g></a><a href="https://emacsconf.org/2026/talks/plots" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title> 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">plots</text></g></a><a href="https://emacsconf.org/2026/talks/ffs" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title> 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="40" y="424" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ffs</text></g></a><a href="https://emacsconf.org/2026/talks/hyperbole" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title> 2:20- 2:40 Hyperbole, My Dear Watson</title><rect x="40" y="479" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,504)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperbole</text></g></a><a href="https://emacsconf.org/2026/talks/koutliner" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title> 3:00- 3:20 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="40" y="534" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">koutliner</text></g></a><a href="https://emacsconf.org/2026/talks/anju" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title> 3:40- 4:00 Revisiting Emacs Mouse Interactions with Anju</title><rect x="40" y="589" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,614)"><text fill="black" x="0" y="0" font-size="10" transform="nil">anju</text></g></a><a href="https://emacsconf.org/2026/talks/ghostel" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title> 4:10- 4:30 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="40" y="630" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,655)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ghostel</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 4:50- 5:00 Saturday closing remarks / open session</title><rect x="40" y="685" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,696)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2026/talks/community" title="Community brainstorming" data-slug="community"><title>10:30-11:30 Community brainstorming</title><rect x="125" y="163" opacity="0.8" width="84" height="82" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">community</text></g></a><a href="https://emacsconf.org/2026/talks/portable" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title> 1:00- 1:10 Emacs as my portable user space across operating platforms</title><rect x="125" y="369" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">portable</text></g></a><a href="https://emacsconf.org/2026/talks/os" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title> 1:30- 1:50 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="125" y="410" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">os</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title> 2:10- 2:20 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="125" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">cadet</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2026/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/bone" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title> 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bone</text></g></a><a href="https://emacsconf.org/2026/talks/local" title="Local file history possibilities in Emacs" data-slug="local"><title> 9:40- 9:50 Local file history possibilities in Emacs</title><rect x="40" y="94" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,105)"><text fill="black" x="0" y="0" font-size="10" transform="nil">local</text></g></a><a href="https://emacsconf.org/2026/talks/hutch" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>10:10-10:20 hutch: code reviews for the mildly disenfranchised</title><rect x="40" y="136" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,147)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hutch</text></g></a><a href="https://emacsconf.org/2026/talks/team" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>10:30-10:50 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="40" y="163" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,188)"><text fill="black" x="0" y="0" font-size="10" transform="nil">team</text></g></a><a href="https://emacsconf.org/2026/talks/compile" title="Beyond Shell History: Saving Compilation Output in Emacs" data-slug="compile"><title>11:10-11:30 Beyond Shell History: Saving Compilation Output in Emacs</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">compile</text></g></a><a href="https://emacsconf.org/2026/talks/mobile" title="How I fixed Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title> 1:00- 1:10 How I fixed Org Mode's biggest mobile and collaboration problems</title><rect x="40" y="369" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">mobile</text></g></a><a href="https://emacsconf.org/2026/talks/writing" title="Close the writing accountability gap with Emacs" data-slug="writing"><title> 1:30- 1:50 Close the writing accountability gap with Emacs</title><rect x="40" y="410" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">writing</text></g></a><a href="https://emacsconf.org/2026/talks/dnd" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title> 2:10- 2:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="40" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">dnd</text></g></a><a href="https://emacsconf.org/2026/talks/bible" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title> 2:40- 3:00 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="40" y="506" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,531)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bible</text></g></a><a href="https://emacsconf.org/2026/talks/svg" title="A (sort of) REPL for learning SVG" data-slug="svg"><title> 3:20- 3:40 A (sort of) REPL for learning SVG</title><rect x="40" y="561" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">svg</text></g></a><a href="https://emacsconf.org/2026/talks/align" title="Column-aligning text in Emacs" data-slug="align"><title> 4:00- 4:20 Column-aligning text in Emacs</title><rect x="40" y="616" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,641)"><text fill="black" x="0" y="0" font-size="10" transform="nil">align</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:40- 4:50 Sunday closing remarks</title><rect x="40" y="671" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,682)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><a href="https://emacsconf.org/2026/talks/rau" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>10:00-10:20 Emacs as a Window Manager and concurrency</title><rect x="125" y="122" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,147)"><text fill="black" x="0" y="0" font-size="10" transform="nil">rau</text></g></a><a href="https://emacsconf.org/2026/talks/llms" title="Meetup about LLMs" data-slug="llms"><title> 1:00- 2:00 Meetup about LLMs</title><rect x="125" y="369" opacity="0.8" width="84" height="82" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llms</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg> \ No newline at end of file
+<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2026/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/planning" 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> 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="40" y="53" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,78)"><text fill="black" x="0" y="0" font-size="10" transform="nil">planning</text></g></a><a href="https://emacsconf.org/2026/talks/listen" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title> 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="40" y="108" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">listen</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="40" y="163" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,202)"><text fill="black" x="0" y="0" font-size="10" transform="nil">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/ltx-talk" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ltx-talk</text></g></a><a href="https://emacsconf.org/2026/talks/plots" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title> 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">plots</text></g></a><a href="https://emacsconf.org/2026/talks/ffs" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title> 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="40" y="424" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ffs</text></g></a><a href="https://emacsconf.org/2026/talks/mobile" title="How I fixed Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title> 2:20- 2:30 How I fixed Org Mode's biggest mobile and collaboration problems</title><rect x="40" y="479" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">mobile</text></g></a><a href="https://emacsconf.org/2026/talks/writing" title="Close the writing accountability gap with Emacs" data-slug="writing"><title> 2:50- 3:10 Close the writing accountability gap with Emacs</title><rect x="40" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">writing</text></g></a><a href="https://emacsconf.org/2026/talks/hyperbole" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title> 3:30- 3:50 Hyperbole, My Dear Watson</title><rect x="40" y="575" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperbole</text></g></a><a href="https://emacsconf.org/2026/talks/koutliner" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title> 4:10- 4:30 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="40" y="630" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,655)"><text fill="black" x="0" y="0" font-size="10" transform="nil">koutliner</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 4:50- 5:00 Saturday closing remarks / open session</title><rect x="40" y="685" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,696)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2026/talks/community" title="Community brainstorming" data-slug="community"><title>10:30-11:30 Community brainstorming</title><rect x="125" y="163" opacity="0.8" width="84" height="82" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">community</text></g></a><a href="https://emacsconf.org/2026/talks/portable" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title> 1:00- 1:10 Emacs as my portable user space across operating platforms</title><rect x="125" y="369" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">portable</text></g></a><a href="https://emacsconf.org/2026/talks/os" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title> 1:30- 1:50 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="125" y="410" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">os</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title> 2:10- 2:20 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="125" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">cadet</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2026/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/bone" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title> 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bone</text></g></a><a href="https://emacsconf.org/2026/talks/local" title="Local file history possibilities in Emacs" data-slug="local"><title> 9:40- 9:50 Local file history possibilities in Emacs</title><rect x="40" y="94" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,105)"><text fill="black" x="0" y="0" font-size="10" transform="nil">local</text></g></a><a href="https://emacsconf.org/2026/talks/hutch" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>10:10-10:20 hutch: code reviews for the mildly disenfranchised</title><rect x="40" y="136" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,147)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hutch</text></g></a><a href="https://emacsconf.org/2026/talks/team" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>10:30-10:50 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="40" y="163" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,188)"><text fill="black" x="0" y="0" font-size="10" transform="nil">team</text></g></a><a href="https://emacsconf.org/2026/talks/compile" title="Beyond Shell History: Saving Compilation Output in Emacs" data-slug="compile"><title>11:10-11:30 Beyond Shell History: Saving Compilation Output in Emacs</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">compile</text></g></a><a href="https://emacsconf.org/2026/talks/dnd" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title> 1:00- 1:10 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="40" y="369" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">dnd</text></g></a><a href="https://emacsconf.org/2026/talks/bible" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title> 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="40" y="410" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bible</text></g></a><a href="https://emacsconf.org/2026/talks/svg" title="A (sort of) REPL for learning SVG" data-slug="svg"><title> 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="40" y="465" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">svg</text></g></a><a href="https://emacsconf.org/2026/talks/align" title="Column-aligning text in Emacs" data-slug="align"><title> 2:50- 3:10 Column-aligning text in Emacs</title><rect x="40" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">align</text></g></a><a href="https://emacsconf.org/2026/talks/anju" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title> 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="40" y="575" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">anju</text></g></a><a href="https://emacsconf.org/2026/talks/ghostel" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title> 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="40" y="616" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,641)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ghostel</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:40- 4:50 Sunday closing remarks</title><rect x="40" y="671" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,682)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><a href="https://emacsconf.org/2026/talks/prefix" title="prefix-tab-groups" data-slug="prefix"><title>10:00-10:10 prefix-tab-groups</title><rect x="125" y="122" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">prefix</text></g></a><a href="https://emacsconf.org/2026/talks/rau" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="149" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">rau</text></g></a><a href="https://emacsconf.org/2026/talks/llms" title="Meetup about LLMs" data-slug="llms"><title> 1:00- 2:00 Meetup about LLMs</title><rect x="125" y="369" opacity="0.8" width="84" height="82" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llms</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg> \ No newline at end of file
diff --git a/2026/schedule-details.md b/2026/schedule-details.md
index 4143ef8d..a6d539ee 100644
--- a/2026/schedule-details.md
+++ b/2026/schedule-details.md
@@ -4,25 +4,26 @@ Jump to: <a href="#b">B</a>
[[!template id=sched title="""Saturday opening remarks""" url="""/2026/talks/sat-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-open""" note=""""""]]
[[!template id=sched title="""The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.""" url="""/2026/talks/planning""" speakers="""George Jones""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""planning""" note=""""""]]
[[!template id=sched title="""Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective""" url="""/2026/talks/emacspeak""" speakers="""Arkadiusz""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""emacspeak""" note=""""""]]
-[[!template id=sched title="""Emacs as a Window Manager and concurrency""" url="""/2026/talks/rau""" speakers="""Thomas Koch""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""rau""" note=""""""]]
+[[!template id=sched title="""Plain text presentations in GNU Emacs with ffs""" url="""/2026/talks/ffs""" speakers="""Amin Bandali""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ffs""" note=""""""]]
+[[!template id=sched title="""Close the writing accountability gap with Emacs""" url="""/2026/talks/writing""" speakers="""Blaine Mooers""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""writing""" note=""""""]]
[[!template id=sched title="""Hyperbole, My Dear Watson""" url="""/2026/talks/hyperbole""" speakers="""Charlie Holland""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""hyperbole""" note=""""""]]
[[!template id=sched title="""Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs""" url="""/2026/talks/koutliner""" speakers="""Bob Weiner""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""koutliner""" note=""""""]]
-[[!template id=sched title="""Revisiting Emacs Mouse Interactions with Anju""" url="""/2026/talks/anju""" speakers="""Charles Y. Choi""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""anju""" note=""""""]]
[[!template id=sched title="""Sunday opening remarks""" url="""/2026/talks/sun-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-open""" note=""""""]]
[[!template id=sched title="""BONE and gnaw.el: tracking what matters""" url="""/2026/talks/bone""" speakers="""Bastien Guerry""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""bone""" note=""""""]]
[[!template id=sched title="""Local file history possibilities in Emacs""" url="""/2026/talks/local""" speakers="""Wouter Groeneveld""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""local""" note=""""""]]
[[!template id=sched title="""hutch: code reviews for the mildly disenfranchised""" url="""/2026/talks/hutch""" speakers="""Akshay Gupta""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""hutch""" note=""""""]]
-[[!template id=sched title="""Close the writing accountability gap with Emacs""" url="""/2026/talks/writing""" speakers="""Blaine Mooers""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""writing""" note=""""""]]
[[!template id=sched title="""bible-gateway: A Two-Edged Sword in Emacs""" url="""/2026/talks/bible""" speakers="""Kristjon Ciko""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""bible""" note=""""""]]
[[!template id=sched title="""Column-aligning text in Emacs""" url="""/2026/talks/align""" speakers="""Jeff Trull""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""align""" note=""""""]]
+[[!template id=sched title="""Revisiting Emacs Mouse Interactions with Anju""" url="""/2026/talks/anju""" speakers="""Charles Y. Choi""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""anju""" note=""""""]]
[[!template id=sched title="""Saturday closing remarks / open session""" url="""/2026/talks/sat-close""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-close""" note=""""""]]
[[!template id=sched title="""Sunday closing remarks""" url="""/2026/talks/sun-close""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-close""" note=""""""]]
Jump to: <a href="#gen">General</a>
-<h1 id="b" class="sched-track B">B (5 talks)</h1>
-[[!template id=sched title="""Meetup about LLMs""" url="""/2026/talks/llms""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""llms""" note=""""""]]
+<h1 id="b" class="sched-track B">B (6 talks)</h1>
+[[!template id=sched title="""Community brainstorming""" url="""/2026/talks/community""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""community""" note=""""""]]
[[!template id=sched title="""Emacs as my portable user space across operating platforms""" url="""/2026/talks/portable""" speakers="""Mohammed Ismail Ansari""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""portable""" note=""""""]]
[[!template id=sched title="""Emacs everywhere: A fun romp through esoteric operating systems""" url="""/2026/talks/os""" speakers="""Aaron Grothe""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""os""" note=""""""]]
[[!template id=sched title="""My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration""" url="""/2026/talks/cadet""" speakers="""Andy Drop""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""cadet""" note=""""""]]
-[[!template id=sched title="""Community brainstorming""" url="""/2026/talks/community""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""community""" note=""""""]] \ No newline at end of file
+[[!template id=sched title="""Emacs as a Window Manager and concurrency""" url="""/2026/talks/rau""" speakers="""Thomas Koch""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""rau""" note=""""""]]
+[[!template id=sched title="""Meetup about LLMs""" url="""/2026/talks/llms""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""llms""" note=""""""]] \ No newline at end of file
diff --git a/2026/submit.md b/2026/submit.md
index 19606fe1..fdb8ac31 100644
--- a/2026/submit.md
+++ b/2026/submit.md
@@ -29,10 +29,10 @@ Talk description (<= 500 words):
-Format (10 minutes, 20 minutes, description of other format) and outline:
-
Introduction for you and your talk (<= 100 words):
+Format (10 minutes, 20 minutes, description of other format) and outline:
+
Speaker name (and optional pronunciation) and preferred pronouns:
Speaker availability (times and time zones that you're available Dec 12-13;
diff --git a/2026/talks/ffs.md b/2026/talks/ffs.md
new file mode 100644
index 00000000..b4d5b08d
--- /dev/null
+++ b/2026/talks/ffs.md
@@ -0,0 +1,37 @@
+[[!meta title="Plain text presentations in GNU Emacs with ffs"]]
+[[!meta copyright="Copyright &copy; 2026 Amin Bandali"]]
+[[!inline pages="internal(2026/info/ffs-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Plain text presentations in GNU Emacs with ffs
+Amin Bandali (he/him) - IRC: bandali, <https://www.kelar.org/~bandali>, <mailto:bandali@gnu.org>
+
+[[!inline pages="internal(2026/info/ffs-before)" raw="yes"]]
+
+This talk introduces ffs, a package that provides a simple
+presentation mode which can be applied to any buffer for reading,
+writing, editing, and presenting slides. Slides are separated
+using the `page-delimiter`, by default the `^L` character, known
+as the form feed.
+
+- Manual: <https://www.kelar.org/~bandali/ffs/ffs.html>
+- GNU ELPA: <https://elpa.gnu.org/packages/ffs.html>
+
+About the speaker:
+
+Amin Bandali is a computing scientist and activist for user freedom,
+and a participant in various free software projects and communities.
+
+In this talk, Bandali will demonstrate configuring and using ffs for
+minimalist presentations in GNU Emacs.
+
+
+
+[[!inline pages="internal(2026/info/ffs-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/ffs-nav)" raw="yes"]]
+
+