<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change log of ffs</title>
<meta name="color-scheme" content="light dark" />
<meta name="generator" content="GNU Emacs (Org mode)" />
<link rel="stylesheet" href="../../dek.css?v=20260518" type="text/css" />
</head>
<body>
<div id="content" class="content">
<h1 class="title">Change log of ffs</h1>
<p>
The newest release is at the top.  For further details, please consult
the <code>ffs</code> manual: <a href="https://kelar.org/~bandali/gnu/emacs/ffs.html">https://kelar.org/~bandali/gnu/emacs/ffs.html</a>.
</p>

<div id="table-of-contents" role="doc-toc">
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="#ffs-0.2.2">Version 0.2.2 on 2026-05-21</a></li>
<li><a href="#ffs-0.2.1">Version 0.2.1 on 2026-05-20</a></li>
<li><a href="#ffs-0.2.0">Version 0.2.0 on 2026-05-19</a></li>
<li><a href="#ffs-0.1.0">Version 0.1.0 on 2022-05-19</a></li>
</ul>
</div>
</div>
<div id="outline-container-ffs-0.2.2" class="outline-2">
<h2 id="ffs-0.2.2">Version 0.2.2 on 2026-05-21</h2>
<div class="outline-text-2" id="text-ffs-0.2.2">
<p>
First release of <code>ffs</code> on GNU ELPA.
</p>

<p>
The attempted build of ffs 0.2.1 within GNU ELPA build sandbox failed
with an <code>Error: void-function (org-texinfo-kbd-macro)</code> due to use of
<code>#+macro: kbd (eval (org-texinfo-kbd-macro $1))</code> in ffs.org for better
formatting of key sequences in the exported Texinfo copy.  This seems
to have happened for the specific case of generating a plain text
README using <code>ox-ascii</code> where ELPA didn't load <code>ox-texinfo</code>.  To try
and mitigate this, a <code>README.md</code> has been added for use as the package
README instead of ffs.org.  If not sufficient, a Texinfo copy of the
ffs manual will be shipped instead of the Org one in the next release.
</p>

<p>
ffs 0.2.2 also includes small fixes and improvements throughout
<code>ffs.el</code> from Stefan Monnier, and additional feedback to be addressed
in future releases.
</p>
</div>
</div>
<div id="outline-container-ffs-0.2.1" class="outline-2">
<h2 id="ffs-0.2.1">Version 0.2.1 on 2026-05-20</h2>
<div class="outline-text-2" id="text-ffs-0.2.1">
<p>
The attempted build of ffs 0.2.0 within GNU ELPA build sandbox failed
with a "Cannot include file" error on the "#+include: fdl.org" in the
manual.  So, as a workaround, we switch to using the official Texinfo
copy of the GNU FDL license rather than an Org copy.
</p>
</div>
</div>
<div id="outline-container-ffs-0.2.0" class="outline-2">
<h2 id="ffs-0.2.0">Version 0.2.0 on 2026-05-19</h2>
<div class="outline-text-2" id="text-ffs-0.2.0">
<p>
First release of <code>ffs</code> intended for GNU ELPA.
</p>

<p>
After a few years of inactivity, in early 2026 I decided to dust off
<code>ffs.el</code>, polish and document it, and offer for inclusion in GNU ELPA
as a proper package.
</p>
</div>
<div id="outline-container-ffs-0.2.0-ffs-default-face-height" class="outline-3">
<h3 id="ffs-0.2.0-ffs-default-face-height">Default value of <code>ffs-default-face-height</code> changed to nil</h3>
<div class="outline-text-3" id="text-ffs-0.2.0-ffs-default-face-height">
<p>
To minimize unexpected and/or unnecessary changes out-of-the-box, the
default value of <code>ffs-default-face-height</code> has been changed to nil.
</p>
</div>
</div>
<div id="outline-container-ffs-0.2.0-ffs-edit-buffer-name" class="outline-3">
<h3 id="ffs-0.2.0-ffs-edit-buffer-name"><code>ffs-edit-buffer-name</code> demoted from user option to variable</h3>
<div class="outline-text-3" id="text-ffs-0.2.0-ffs-edit-buffer-name">
<p>
This is not an important user-facing setting, so to help avoid
overwhelming users with many options, this has been demoted from a
user option to a variable.
</p>
</div>
</div>
<div id="outline-container-ffs-0.2.0-new-user-options" class="outline-3">
<h3 id="ffs-0.2.0-new-user-options">Several new user options for customizing <code>ffs</code>'s behaviour</h3>
<div class="outline-text-3" id="text-ffs-0.2.0-new-user-options">
<p>
As part of the effort to bring <code>ffs</code> more in line with the conventions
of other existing Emacs packages, the mechanisms for toggling various
parts of Emacs's interface to minimize visual clutter were changed
from being minor modes to being customizable user options.  These are
the replacement new user options, with a default value of nil:
</p>

<ul class="org-ul">
<li><code>ffs-hide-cursor</code></li>
<li><code>ffs-hide-mode-line</code></li>
<li><code>ffs-hide-header-line</code></li>
</ul>

<p>
Their value is buffer-local, and may be set globally using
<code>setq-default</code>.  See the <a href="ffs.html#Sample-configuration">sample configuration</a> in the manual for an
example of how to customize them.
</p>

<p>
The new <code>ffs-page-delimiter</code> user option defines the page delimiter
inserted by <code>ffs-edit-done</code> when inserting a new slide.  Emacs's
<code>page-delimiter</code> regexp should be able to match <code>ffs-page-delimiter</code>'s
value, so if you use a custom <code>page-delimiter</code> be sure to customize
<code>ffs-page-delimiter</code> accordingly.
</p>

<p>
The new <code>ffs-echo-progress</code> user option controls whether to display in
echo area the progress through the slides.  When non-nil, changing
slides will also display the progress through the slides in the echo
area.  The format of the displayed progress can be customized using
the new <code>ffs-echo-progress-format</code> user option.
</p>

<p>
The new <code>ffs-edit-display-buffer-alist</code> user option may be used to
control the Window configuration for the <code>ffs-edit</code> buffer.  By
default, it will display the <code>ffs-edit</code> buffer in the same window.
</p>

<p>
The new <code>ffs-edit-done-hook</code> user option may be used to define hooks
to be run at the end of <code>ffs-edit-done</code> after returning to the main
<code>ffs</code> presentation buffer.
</p>

<p>
Lastly, a new <code>ffs-find-speaker-notes-function</code> variable was added to
allow customizing the find function used for opening the speaker's
notes file, defaulting to <code>find-file-other-frame</code>.
</p>
</div>
</div>
</div>
<div id="outline-container-ffs-0.1.0" class="outline-2">
<h2 id="ffs-0.1.0">Version 0.1.0 on 2022-05-19</h2>
<div class="outline-text-2" id="text-ffs-0.1.0">
<p>
Initial publication of <code>ffs.el</code> as part of my personal configurations
for GNU Emacs.
</p>

<p>
My first attempt at this concept was a now-archived <a href="https://git.kelar.org/~bandali/ffs/tree/ffsanim.el?id=aed420fca1af108e023eabf2b527850b559cd24c"><code>ffsanim.el</code></a>,
a major mode implementation that used Emacs's <code>animate</code> library to
animate slide texts onto the screen.  Shortly after realizing the
shortcomings of that approach, I abandoned it in favour a minor mode
implementation and published version <code>0.1.0</code> of what is now <code>ffs</code> in
my <a href="https://git.kelar.org/~bandali/configs">personal configs repository</a>.
</p>

<p>
I used this implementation for presenting my LibrePlanet 2022 talk,
<a href="https://kelar.org/~bandali/essays/net-beyond-web.html">The Net beyond the Web</a>.
</p>

<p>
I picked "ffs" as the package name, the acronym for form feed slides.
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
<hr />
<p><a href="CHANGELOG.org">Org source</a></p>
</div>
<p><a accesskey="h" href="../..">&larr; home | خانه</a></p></body>
</html>
