changeset 2840:c6f5ac45ec68

Merge branch merge-requests/637 for completeness * github/merge-requests/637: Remove unused function vf_index_is_selected
author Klaus Ethgen <Klaus@Ethgen.de>
date Sat, 06 Oct 2018 10:28:02 +0100
parents ac5d820c9a9e (diff) ff9bd38a7a44 (current diff)
children 2e385b95cb0d
files
diffstat 28 files changed, 1796 insertions(+), 653 deletions(-) [+]
line wrap: on
line diff
--- a/doc/docbook/GuideOptionsMain.xml	Fri Oct 05 18:30:47 2018 -0700
+++ b/doc/docbook/GuideOptionsMain.xml	Sat Oct 06 10:28:02 2018 +0100
@@ -23,6 +23,7 @@
     </para>
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideOptionsGeneral.xml" />
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideOptionsImage.xml" />
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideOptionsOSD.xml" />
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideOptionsWindow.xml" />
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideOptionsKeyboard.xml" />
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideOptionsFiltering.xml" />
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/docbook/GuideOptionsOSD.xml	Sat Oct 06 10:28:02 2018 +0100
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section id="GuideOptionsOSD">
+  <title>OverlayScreen Display</title>
+  <para>This section describes the options presented under the OSD Tab of the preferences dialog.</para>
+  <section id="OverlayScreenDisplay">
+    <title>Overlay Screen Display</title>
+    <para>The contents of the Overlay Screen Display is defined by the Image Overlay Template. This template is easily customised to  display a wide range of data.</para>
+    <para>
+      The format of each entry is:
+      <programlisting>%tag[:max_length][:extra]%</programlisting>
+    </para>
+    <table frame="all">
+      <tgroup cols="2" rowsep="1" colsep="1">
+        <tbody>
+          <row>
+            <entry>
+              <emphasis role="strong">Tag</emphasis>
+            </entry>
+            <entry>
+              <emphasis role="strong">Replaced by</emphasis>
+            </entry>
+          </row>
+          <row>
+            <entry>name</entry>
+            <entry>Filename of the picture</entry>
+          </row>
+          <row>
+            <entry>collection</entry>
+            <entry>Name of the collection</entry>
+          </row>
+          <row>
+            <entry>number</entry>
+            <entry>Current number of image in the list</entry>
+          </row>
+          <row>
+            <entry>total</entry>
+            <entry>Total number of images</entry>
+          </row>
+          <row>
+            <entry>date</entry>
+            <entry>File date</entry>
+          </row>
+          <row>
+            <entry>size</entry>
+            <entry>File size</entry>
+          </row>
+          <row>
+            <entry>width</entry>
+            <entry>Image width</entry>
+          </row>
+          <row>
+            <entry>height</entry>
+            <entry>Image height</entry>
+          </row>
+          <row>
+            <entry>res</entry>
+            <entry>Image resolution</entry>
+          </row>
+          <row>
+            <entry>keywords</entry>
+            <entry>Image keywords from metadata</entry>
+          </row>
+          <row>
+            <entry>comment</entry>
+            <entry>Image comment from XMP metadata</entry>
+          </row>
+          <row>
+            <entry>imagecomment</entry>
+            <entry>JPEG image comment</entry>
+          </row>
+          <row>
+            <entry>rating</entry>
+            <entry>Image rating</entry>
+          </row>
+          <row>
+            <entry>&lt;meta_tag&gt;</entry>
+            <entry>The Exif, XMP, or IPTC tag from metadata</entry>
+          </row>
+          <row>
+            <entry>lua/&lt;lua_script&gt;/</entry>
+            <entry>The output of a Lua script file</entry>
+          </row>
+          <row>
+            <entry>lua//&lt;lua_command&gt;</entry>
+            <entry>The output of a Lua command</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+    <para>
+      As an aide, in addition to standard metadata tags, Geeqie provides a number of
+      <link linkend="formatted_exif">pre-formatted tags</link>
+      .
+    </para>
+    <para>Examples of usage are:</para>
+    <para>
+      <programlisting xml:space="preserve">
+        %keywords%
+        %Exif.Photo.DateTimeOriginal%
+        %lua/jpeg_comment.lua/:12%
+        %lua//return(os.date())%
+      </programlisting>
+    </para>
+    <para>
+      Refer to
+      <link linkend="GuideReferenceLua">Lua Extensions</link>
+      for further information.
+    </para>
+    <para>
+      The length of displayed data can be limited by using the
+      <emphasis role="italic">:max_length</emphasis>
+      parameter. The following example will truncate the displayed data to 20 characters and will add 3 dots at the end to denote the truncation.
+      <programlisting>%formatted.Camera:20%</programlisting>
+    </para>
+    <para>
+      If two or more variables are connected with the
+      <code>|</code>
+      character, the variables are displayed with a separator. For example::
+      <programlisting>%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%|%formatted.FocalLength%</programlisting>
+      could show:
+      <programlisting>"1/20s - 400 - 80 mm"</programlisting>
+      Or, if there is no ISO information in the Exif data:
+      <programlisting>"1/200 - 80 mm"</programlisting>
+    </para>
+    <para>If there is no data for a requested tag, the line is not displayed.</para>
+    <para>
+      The
+      <emphasis role="italic">:extra</emphasis>
+      parameter may be used to format the output by prepending and appending a text string to the displayed item.
+    </para>
+    <para>
+      The special character
+      <code>*</code>
+      is used to mark the position of the Tag data item. If no
+      <code>*</code>
+      is present, the extra string is just appended to the standard data displayed. Any "\n" is replaced by a newline on display.
+      <link linkend="GuideReferenceStandards">Pango mark up</link>
+      is accepted in both left and right parts. If the data item is empty, nothing will be displayed.
+    </para>
+    <para>Examples:</para>
+    <table>
+      <tgroup cols="2" rowsep="1" colsep="1">
+        <tbody>
+          <row>
+            <entry>
+              <emphasis role="strong">Template</emphasis>
+            </entry>
+            <entry>
+              <emphasis role="strong">Example display</emphasis>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              %name:
+              &lt;i&gt;*&lt;/i&gt;\n%
+            </entry>
+            <entry>
+              <emphasis role="italic">filename001.jpg</emphasis>
+            </entry>
+          </row>
+          <row>
+            <entry>%size:\n%</entry>
+            <entry>123456</entry>
+          </row>
+          <row>
+            <entry>%formatted.ISOSpeedRating:ISO *%</entry>
+            <entry>ISO 100</entry>
+          </row>
+          <row>
+            <entry>
+              %collection:Collection:
+              &lt;b&gt;*&lt;/b&gt;
+              \n%
+            </entry>
+            <entry>
+              Collection:
+              <emphasis role="strong">my_new_collection</emphasis>
+            </entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+    <para />
+    <variablelist>
+      <varlistentry>
+        <term>
+          <guibutton>
+            <guiicon>
+              <inlinegraphic fileref="preferences-desktop-font.png" />
+            </guiicon>
+          </guibutton>
+          <guilabel>Font</guilabel>
+          ,
+          <guibutton>
+            <guiicon>
+              <inlinegraphic fileref="gtk-color-picker.png" />
+            </guiicon>
+          </guibutton>
+          <guilabel>Text</guilabel>
+          ,
+          <guibutton>
+            <guiicon>
+              <inlinegraphic fileref="gtk-color-picker.png" />
+            </guiicon>
+          </guibutton>
+          <guilabel>Background</guilabel>
+        </term>
+        <listitem>The font used for the Overlay Screen Display, as well as the font colour and background colour, may be set via these buttons. Colour transparency can also be set.</listitem>
+      </varlistentry>
+    </variablelist>
+    <variablelist>
+      <varlistentry>
+        <term>
+          <guibutton>
+            <guiicon>
+              <inlinegraphic fileref="help-contents.png" />
+            </guiicon>
+          </guibutton>
+          <guilabel>Help</guilabel>
+        </term>
+        <listitem>
+          <para>Show syntax help</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+    <variablelist>
+      <varlistentry>
+        <term>
+          <guilabel>Defaults</guilabel>
+        </term>
+        <listitem>
+          <para>Restore default image overlay template</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </section>
+</section>
--- a/doc/docbook/GuideOptionsWindow.xml	Fri Oct 05 18:30:47 2018 -0700
+++ b/doc/docbook/GuideOptionsWindow.xml	Sat Oct 06 10:28:02 2018 +0100
@@ -145,236 +145,4 @@
       </varlistentry>
     </variablelist>
   </section>
-  <section id="OverlayScreenDisplay">
-    <title>Overlay Screen Display</title>
-    <para>The contents of the Overlay Screen Display is defined by the Image Overlay Template. This template is easily customised to  display a wide range of data.</para>
-    <para>
-      The format of each entry is:
-      <programlisting>%tag[:max_length][:extra]%</programlisting>
-    </para>
-    <table frame="all">
-      <tgroup cols="2" rowsep="1" colsep="1">
-        <tbody>
-          <row>
-            <entry>
-              <emphasis role="strong">Tag</emphasis>
-            </entry>
-            <entry>
-              <emphasis role="strong">Replaced by</emphasis>
-            </entry>
-          </row>
-          <row>
-            <entry>name</entry>
-            <entry>Filename of the picture</entry>
-          </row>
-          <row>
-            <entry>collection</entry>
-            <entry>Name of the collection</entry>
-          </row>
-          <row>
-            <entry>number</entry>
-            <entry>Current number of image in the list</entry>
-          </row>
-          <row>
-            <entry>total</entry>
-            <entry>Total number of images</entry>
-          </row>
-          <row>
-            <entry>date</entry>
-            <entry>File date</entry>
-          </row>
-          <row>
-            <entry>size</entry>
-            <entry>File size</entry>
-          </row>
-          <row>
-            <entry>width</entry>
-            <entry>Image width</entry>
-          </row>
-          <row>
-            <entry>height</entry>
-            <entry>Image height</entry>
-          </row>
-          <row>
-            <entry>res</entry>
-            <entry>Image resolution</entry>
-          </row>
-          <row>
-            <entry>keywords</entry>
-            <entry>Image keywords from metadata</entry>
-          </row>
-          <row>
-            <entry>comment</entry>
-            <entry>Image comment from XMP metadata</entry>
-          </row>
-          <row>
-            <entry>imagecomment</entry>
-            <entry>JPEG image comment</entry>
-          </row>
-          <row>
-            <entry>rating</entry>
-            <entry>Image rating</entry>
-          </row>
-          <row>
-            <entry>&lt;meta_tag&gt;</entry>
-            <entry>The Exif, XMP, or IPTC tag from metadata</entry>
-          </row>
-          <row>
-            <entry>lua/&lt;lua_script&gt;/</entry>
-            <entry>The output of a Lua script file</entry>
-          </row>
-          <row>
-            <entry>lua//&lt;lua_command&gt;</entry>
-            <entry>The output of a Lua command</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </table>
-    <para>
-      As an aide, in addition to standard metadata tags, Geeqie provides a number of
-      <link linkend="formatted_exif">pre-formatted tags</link>
-      .
-    </para>
-    <para>Examples of usage are:</para>
-    <para>
-      <programlisting xml:space="preserve">
-        %keywords%
-        %Exif.Photo.DateTimeOriginal%
-        %lua/jpeg_comment.lua/:12%
-        %lua//return(os.date())%
-      </programlisting>
-    </para>
-    <para>
-      Refer to
-      <link linkend="GuideReferenceLua">Lua Extensions</link>
-      for further information.
-    </para>
-    <para>
-      The length of displayed data can be limited by using the
-      <emphasis role="italic">:max_length</emphasis>
-      parameter. The following example will truncate the displayed data to 20 characters and will add 3 dots at the end to denote the truncation.
-      <programlisting>%formatted.Camera:20%</programlisting>
-    </para>
-    <para>
-      If two or more variables are connected with the
-      <code>|</code>
-      character, the variables are displayed with a separator. For example::
-      <programlisting>%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%|%formatted.FocalLength%</programlisting>
-      could show:
-      <programlisting>"1/20s - 400 - 80 mm"</programlisting>
-      Or, if there is no ISO information in the Exif data:
-      <programlisting>"1/200 - 80 mm"</programlisting>
-    </para>
-    <para>If there is no data for a requested tag, the line is not displayed.</para>
-    <para>
-      The
-      <emphasis role="italic">:extra</emphasis>
-      parameter may be used to format the output by prepending and appending a text string to the displayed item.
-    </para>
-    <para>
-      The special character
-      <code>*</code>
-      is used to mark the position of the Tag data item. If no
-      <code>*</code>
-      is present, the extra string is just appended to the standard data displayed. Any "\n" is replaced by a newline on display.
-      <link linkend="GuideReferenceStandards">Pango mark up</link>
-      is accepted in both left and right parts. If the data item is empty, nothing will be displayed.
-    </para>
-    <para>Examples:</para>
-    <table>
-      <tgroup cols="2" rowsep="1" colsep="1">
-        <tbody>
-          <row>
-            <entry>
-              <emphasis role="strong">Template</emphasis>
-            </entry>
-            <entry>
-              <emphasis role="strong">Example display</emphasis>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              %name:
-              &lt;i&gt;*&lt;/i&gt;\n%
-            </entry>
-            <entry>
-              <emphasis role="italic">filename001.jpg</emphasis>
-            </entry>
-          </row>
-          <row>
-            <entry>%size:\n%</entry>
-            <entry>123456</entry>
-          </row>
-          <row>
-            <entry>%formatted.ISOSpeedRating:ISO *%</entry>
-            <entry>ISO 100</entry>
-          </row>
-          <row>
-            <entry>
-              %collection:Collection:
-              &lt;b&gt;*&lt;/b&gt;
-              \n%
-            </entry>
-            <entry>
-              Collection:
-              <emphasis role="strong">my_new_collection</emphasis>
-            </entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </table>
-    <para />
-    <variablelist>
-      <varlistentry>
-        <term>
-          <guibutton>
-            <guiicon>
-              <inlinegraphic fileref="preferences-desktop-font.png" />
-            </guiicon>
-          </guibutton>
-          <guilabel>Font</guilabel>
-          ,
-          <guibutton>
-            <guiicon>
-              <inlinegraphic fileref="gtk-color-picker.png" />
-            </guiicon>
-          </guibutton>
-          <guilabel>Text</guilabel>
-          ,
-          <guibutton>
-            <guiicon>
-              <inlinegraphic fileref="gtk-color-picker.png" />
-            </guiicon>
-          </guibutton>
-          <guilabel>Background</guilabel>
-        </term>
-        <listitem>The font used for the Overlay Screen Display, as well as the font colour and background colour, may be set via these buttons. Colour transparency can also be set.</listitem>
-      </varlistentry>
-    </variablelist>
-    <variablelist>
-      <varlistentry>
-        <term>
-          <guibutton>
-            <guiicon>
-              <inlinegraphic fileref="help-contents.png" />
-            </guiicon>
-          </guibutton>
-          <guilabel>Help</guilabel>
-        </term>
-        <listitem>
-          <para>Show syntax help</para>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-    <variablelist>
-      <varlistentry>
-        <term>
-          <guilabel>Defaults</guilabel>
-        </term>
-        <listitem>
-          <para>Restore default image overlay template</para>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </section>
 </section>
--- a/doc/docbook/GuideReferenceConfig.xml	Fri Oct 05 18:30:47 2018 -0700
+++ b/doc/docbook/GuideReferenceConfig.xml	Sat Oct 06 10:28:02 2018 +0100
@@ -3,7 +3,7 @@
   <title id="titleGuideReferenceConfig">Configuration Files and Locations</title>
   <para>The following data lists the locations Geeqie uses for various actions. The uppercase symbols are environment variables. If they are not set on your system the fallback locations are listed in parentheses.</para>
   <para>
-    Geqqie will first attempt to load a configuration file from:
+    Geeqie will first attempt to load a configuration file from:
     <programlisting xml:space="preserve">/etc/geeqie/geeqierc.xml</programlisting>
   </para>
   <para>It will then continue with the following locations.</para>
--- a/geeqie.1	Fri Oct 05 18:30:47 2018 -0700
+++ b/geeqie.1	Sat Oct 06 10:28:02 2018 +0100
@@ -644,6 +644,59 @@
 close window
 .br
 
+.SH FILES
+The following data lists the locations Geeqie uses for various actions. The
+uppercase symbols are environment variables. If they are not set on your system
+the fallback locations are listed in parentheses. Geeqie will first attempt to
+load a configuration file from:
+
+.B /etc/geeqie/geeqierc.xml
+
+It will then continue with the following locations.
+Most of Geeqie's configuration files are contained in the folder, and sub-folders of:
+
+.B $XDG_CONFIG_HOME/geeqie/
+.B ($~/.config/geeqie/)
+
+Geeqie's standard configuration file is:
+
+.B .../geeqierc.xml
+
+An alternative configuration file may be used by executing:
+
+.B geeqie -r --config-load:<filename>
+
+Geeqie-created desktop files used by Plugins are in the folder:
+
+.B .../applications
+
+Lua script files for Lua Extensions are in the folder:
+
+.B .../lua
+
+Historic data such as last several folders visited, bookmarks, and recently used collections, as well as default print settings are contained in this text file:
+
+.B .../history
+
+Keyboard shortcut maps are contained in this text file:
+
+.B .../accels
+
+The location for Collections is in the folder:
+
+.B $XDG_DATA_HOME/geeqie/collections
+.br
+.B ($~/.local/share/geeqie/collections)
+
+The lirc Infra-red controller configuration file must be located at:
+
+.B $HOME/.lircrc
+
+Thumbnails are stored in a location specified in Thumbnail Preferences
+
+Metadata is stored either in the image file or in the location specified in Safe Delete
+
+The safe delete folder is specified in the Metadata tab of main Preferences
 
 .SH LICENSE
 Copyright (C) 1999-2004 by John Ellis.
--- a/src/collect-table.c	Fri Oct 05 18:30:47 2018 -0700
+++ b/src/collect-table.c	Sat Oct 06 10:28:02 2018 +0100
@@ -904,7 +904,7 @@
 
 	fd = (ct->click_info) ? ct->click_info->fd : NULL;
 
-	print_window_new(fd, collection_table_selection_get_list(ct), collection_table_get_list(ct), ct->listview);
+	print_window_new(fd, collection_table_selection_get_list(ct), collection_table_get_list(ct), gtk_widget_get_toplevel(ct->listview));
 }
 
 static void collection_table_popup_show_names_cb(GtkWidget *widget, gpointer data)
--- a/src/options.c	Fri Oct 05 18:30:47 2018 -0700
+++ b/src/options.c	Sat Oct 06 10:28:02 2018 +0100
@@ -195,8 +195,12 @@
 	options->star_rating.star = STAR_RATING_STAR;
 	options->star_rating.rejected = STAR_RATING_REJECTED;
 
-	options->printer.font = g_strdup("Serif 10");
+	options->printer.image_font = g_strdup("Serif 10");
+	options->printer.page_font = g_strdup("Serif 10");
+	options->printer.page_text = NULL;
 	options->printer.text_fields = 1;
+	options->printer.image_text_position = 1;
+	options->printer.page_text_position = 3;
 
 	return options;
 }
--- a/src/options.h	Fri Oct 05 18:30:47 2018 -0700
+++ b/src/options.h	Sat Oct 06 10:28:02 2018 +0100
@@ -303,8 +303,14 @@
 
 	/* Printer */
 	struct {
-		gchar *font;
+		gchar *image_font;
+		gchar *page_font;
 		gint text_fields;
+		gboolean show_image_text;
+		gboolean show_page_text;
+		gchar *page_text;
+		gint image_text_position;
+		gint page_text_position;
 	} printer;
 
 	gboolean read_metadata_in_idle;
--- a/src/preferences.c	Fri Oct 05 18:30:47 2018 -0700
+++ b/src/preferences.c	Sat Oct 06 10:28:02 2018 +0100
@@ -26,6 +26,7 @@
 #include "bar_keywords.h"
 #include "cache.h"
 #include "cache_maint.h"
+#include "dnd.h"
 #include "editors.h"
 #include "exif.h"
 #include "filedata.h"
@@ -484,6 +485,7 @@
 	{
 	"GuideOptionsGeneral.html",
 	"GuideOptionsImage.html",
+	"GuideOptionsOSD.html",
 	"GuideOptionsWindow.html",
 	"GuideOptionsKeyboard.html",
 	"GuideOptionsFiltering.html",
@@ -1231,7 +1233,7 @@
 
 static void image_overlay_help_cb(GtkWidget *widget, gpointer data)
 {
-	help_window_show("GuideOptionsWindow.html#OverlayScreenDisplay");
+	help_window_show("GuideOptionsOSD.html");
 }
 
 static void image_overlay_set_font_cb(GtkWidget *widget, gpointer data)
@@ -2005,9 +2007,6 @@
 	GtkWidget *button;
 	GtkWidget *ct_button;
 	GtkWidget *spin;
-	GtkWidget *image_overlay_template_view;
-	GtkWidget *scrolled;
-	GtkTextBuffer *buffer;
 
 	vbox = scrolled_notebook_page(notebook, _("Windows"));
 
@@ -2054,35 +2053,183 @@
 			      options->fullscreen.clean_flip, &c_options->fullscreen.clean_flip);
 	pref_checkbox_new_int(group, _("Disable screen saver"),
 			      options->fullscreen.disable_saver, &c_options->fullscreen.disable_saver);
-
+}
+
+/* overlay screen display tab */
+static const gchar *predefined_tags[][2] = {
+	{"%name%",							N_("Name")},
+	{"%path:60%*",						N_("Path")},
+	{"%date%",							N_("Date")},
+	{"%size%",							N_("Size")},
+	{"%zoom%",							N_("Zoom")},
+	{"%dimensions%",					N_("Dimensions")},
+	{"%collection%",					N_("Collection")},
+	{"%number%",						N_("Collection number")},
+	{"%total%",							N_("Collection total")},
+	{"%file.ctime%",					N_("File ctime")},
+	{"%file.mode%",						N_("File mode")},
+	{"%file.owner%",					N_("File owner")},
+	{"%file.group%",					N_("File group")},
+	{"%file.link%",						N_("File link")},
+	{"%file.class%",					N_("File class")},
+	{"%formatted.DateTime%",			N_("Image date")},
+	{"%formatted.DateTimeDigitized%",	N_("Date digitized")},
+	{"%formatted.ShutterSpeed%",		N_("ShutterSpeed")},
+	{"%formatted.Aperture%",			N_("Aperture")},
+	{"%formatted.ExposureBias%",		N_("Exposure bias")},
+	{"%formatted.Resolution%",			N_("Resolution")},
+	{"%formatted.Camera%",				N_("Camera")},
+	{"%formatted.ShutterSpeed%",		N_("Shutter speed")},
+	{"%formatted.ISOSpeedRating%",		N_("ISO")},
+	{"%formatted.FocalLength%",			N_("Focal length")},
+	{"%formatted.FocalLength35mmFilm%",	N_("Focal len. 35mm")},
+	{"%formatted.SubjectDistance%",		N_("Subject distance")},
+	{"%formatted.Flash%",				N_("Flash")},
+	{"%formatted.ColorProfile%",		N_("Color profile")},
+	{"%formatted.GPSPosition%",			N_("Lat, Long")},
+	{"%formatted.GPSAltitude%",			N_("Altitude")},
+	{"%formatted.localtime%",			N_("Local time")},
+	{"%formatted.timezone%",			N_("Timezone")},
+	{"%formatted.countryname%",			N_("Country name")},
+	{"%formatted.countrycode%",			N_("Country code")},
+	{"%formatted.star_rating%",			N_("Star rating")},
+	{NULL, NULL}};
+
+static GtkTargetEntry osd_drag_types[] = {
+	{ "text/plain", GTK_TARGET_SAME_APP, TARGET_TEXT_PLAIN }
+};
+
+typedef struct _TagData TagData;
+struct _TagData
+{
+	gchar *key;
+	gchar *title;
+};
+
+static void tag_button_cb(GtkWidget *widget, gpointer data)
+{
+	GtkTextView *image_overlay_template_view = data;
+	GtkTextBuffer *buffer;
+	TagData *td;
+
+	buffer = gtk_text_view_get_buffer(image_overlay_template_view);
+	td = g_object_get_data(G_OBJECT(widget), "tag_data");
+	gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(buffer), td->key, -1);
+
+	gtk_widget_grab_focus(GTK_WIDGET(image_overlay_template_view));
+}
+
+static void osd_dnd_get_cb(GtkWidget *btn, GdkDragContext *context,
+								GtkSelectionData *selection_data, guint info,
+								guint time, gpointer data)
+{
+	TagData *td;
+	GtkTextView *image_overlay_template_view = data;
+
+	td = g_object_get_data(G_OBJECT(btn), "tag_data");
+	gtk_selection_data_set_text(selection_data, td->key, -1);
+
+	gtk_widget_grab_focus(GTK_WIDGET(image_overlay_template_view));
+}
+
+static void osd_btn_destroy_cb(GtkWidget *btn, GdkDragContext *context,
+								GtkSelectionData *selection_data, guint info,
+								guint time, gpointer data)
+{
+	TagData *td;
+
+	td = g_object_get_data(G_OBJECT(btn), "tag_data");
+	g_free(td->key);
+	g_free(td->title);
+}
+
+static void set_osd_button(GtkWidget *widget, const gchar *key, const gchar *title,
+										GtkWidget *image_overlay_template_view)
+{
+	GtkWidget *new_button;
+	TagData *td;
+
+	new_button = pref_button_new(widget, NULL, _(title), TRUE,
+							G_CALLBACK(tag_button_cb), image_overlay_template_view);
+
+	td = g_new0(TagData, 1);
+	td->key = g_strdup(key);
+	td->title = g_strdup(title);
+
+	g_object_set_data(G_OBJECT(new_button), "tag_data", td);
+
+	gtk_drag_source_set(new_button, GDK_BUTTON1_MASK, osd_drag_types, 1, GDK_ACTION_COPY);
+	g_signal_connect(G_OBJECT(new_button), "drag_data_get",
+							G_CALLBACK(osd_dnd_get_cb), image_overlay_template_view);
+	g_signal_connect(G_OBJECT(new_button), "destroy",
+							G_CALLBACK(osd_btn_destroy_cb), new_button);
+}
+
+static void config_tab_osd(GtkWidget *notebook)
+{
+	GtkWidget *hbox;
+	GtkWidget *vbox;
+	GtkWidget *vbox_buttons;
+	GtkWidget *group;
+	GtkWidget *button;
+	GtkWidget *image_overlay_template_view;
+	GtkWidget *scrolled;
+	GtkTextBuffer *buffer;
+	GtkWidget *label;
+	GtkWidget *	subgroup;
+	gint i = 0;
+	gint rows = 0;
+	gint cols = 0;
+
+	vbox = scrolled_notebook_page(notebook, _("OSD"));
+
+	image_overlay_template_view = gtk_text_view_new();
 
 	group = pref_group_new(vbox, FALSE, _("Overlay Screen Display"), GTK_ORIENTATION_VERTICAL);
 
+	hbox = gtk_hbox_new(FALSE, 0);
+
+	gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+
+	pref_label_new(hbox, _("To include predefined tags in the template, click a button or drag-and-drop"));
+
+	subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(subgroup), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+
+	for (cols = 0; cols < 6; cols++)
+		{
+		vbox_buttons = gtk_vbox_new(FALSE, 0);
+		rows = 0;
+
+		gtk_box_pack_start(GTK_BOX(hbox), vbox_buttons, FALSE, FALSE, 0);
+
+		while (rows < 6 && predefined_tags[i][0])
+			{
+			set_osd_button(vbox_buttons, predefined_tags[i][0], predefined_tags[i][1], image_overlay_template_view);
+			i = i + 1;
+			rows++;
+			}
+		gtk_widget_show(vbox_buttons);
+		}
+
+	pref_line(group, PREF_PAD_GAP);
+
 	pref_label_new(group, _("Image overlay template"));
 
 	scrolled = gtk_scrolled_window_new(NULL, NULL);
 	gtk_widget_set_size_request(scrolled, 200, 150);
 	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
-				       GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+									GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 	gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 5);
 	gtk_widget_show(scrolled);
 
-	image_overlay_template_view = gtk_text_view_new();
-
 	gtk_widget_set_tooltip_markup(image_overlay_template_view,
-	_("<i>%name%</i> results in the filename of the picture.\n"
-	  "Also available: <i>%collection%</i>, <i>%number%</i>, <i>%total%</i>, <i>%date%</i>,\n"
-	  "<i>%size%</i> (filesize), <i>%width%</i>, <i>%height%</i>, <i>%res%</i> (resolution),\n"
-	  "<i>%rating%</i>, <i>%keywords%</i>, <i>%comment%</i> (XMP), <i>%imagecomment%</i> (JPEG)\n"
-	  "To access exif data use the exif name, e. g. <i>%formatted.Camera%</i> is the formatted camera name,\n"
-	  "<i>%Exif.Photo.DateTimeOriginal%</i> the date of the original shot.\n"
-	  "<i>%formatted.Camera:20</i> notation will truncate the displayed data to 20 characters and will add 3 dots at the end to denote the truncation.\n"
-	  "If two or more variables are connected with the |-sign, it prints available variables with a separator.\n"
-	  "<i>%formatted.ShutterSpeed%</i>|<i>%formatted.ISOSpeedRating%</i>|<i>%formatted.FocalLength%</i> could show \"1/20s - 400 - 80 mm\" or \"1/200 - 80 mm\",\n"
-	  "if there's no ISO information in the Exif data.\n"
-	  "If a line is empty, it is removed. This allows one to add lines that totally disappear when no data is available.\n"
-	));
+					_("Extensive formatting options are shown in the Help file"));
+
 	gtk_container_add(GTK_CONTAINER(scrolled), image_overlay_template_view);
 	gtk_widget_show(image_overlay_template_view);
 
@@ -2127,7 +2274,51 @@
 	g_signal_connect(G_OBJECT(buffer), "changed",
 			 G_CALLBACK(image_overlay_template_view_changed_cb), image_overlay_template_view);
 
-
+	pref_line(group, PREF_PAD_GAP);
+
+	group = pref_group_new(vbox, FALSE, _("Exif, XMP or IPTC tags"), GTK_ORIENTATION_VERTICAL);
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+	label = gtk_label_new(_("%Exif.Image.Orientation%"));
+	gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+	gtk_widget_show(label);
+	pref_spacer(group,TRUE);
+
+	group = pref_group_new(vbox, FALSE, _("Field separators"), GTK_ORIENTATION_VERTICAL);
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+	label = gtk_label_new(_("Separator shown only if both fields are non-null:\n%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%"));
+	gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+	gtk_widget_show(label);
+	pref_spacer(group,TRUE);
+
+	group = pref_group_new(vbox, FALSE, _("Field maximum length"), GTK_ORIENTATION_VERTICAL);
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+	label = gtk_label_new(_("%path:39%"));
+	gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+	gtk_widget_show(label);
+	pref_spacer(group,TRUE);
+
+	group = pref_group_new(vbox, FALSE, _("Pre- and post- text"), GTK_ORIENTATION_VERTICAL);
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+	label = gtk_label_new(_("Text shown only if the field is non-null:\n%formatted.Aperture:F no. * setting%\n %formatted.Aperture:10:F no. * setting%"));
+	gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+	gtk_widget_show(label);
+	pref_spacer(group,TRUE);
+
+	group = pref_group_new(vbox, FALSE, _("Pango markup"), GTK_ORIENTATION_VERTICAL);
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+	label = gtk_label_new(_("<b>bold</b>\n<u>underline</u>\n<i>italic</i>\n<s>strikethrough</s>"));
+	gtk_box_pack_start(GTK_BOX(hbox),label, FALSE,FALSE,0);
+	gtk_widget_show(label);
 }
 
 static GtkTreeModel *create_class_model(void)
@@ -3229,10 +3420,12 @@
 
 	notebook = gtk_notebook_new();
 	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP);
+	gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook), TRUE);
 	gtk_box_pack_start(GTK_BOX(win_vbox), notebook, TRUE, TRUE, 0);
 
 	config_tab_general(notebook);
 	config_tab_image(notebook);
+	config_tab_osd(notebook);
 	config_tab_windows(notebook);
 	config_tab_accelerators(notebook);
 	config_tab_files(notebook);
--- a/src/print.c	Fri Oct 05 18:30:47 2018 -0700
+++ b/src/print.c	Sat Oct 06 10:28:02 2018 +0100
@@ -21,14 +21,19 @@
 #include "main.h"
 #include "print.h"
 
+#include "exif.h"
 #include "filedata.h"
 #include "image-load.h"
+#include "pixbuf_util.h"
 #include "ui_misc.h"
 #include "ui_fileops.h"
 
 #define PRINT_SETTINGS "print_settings" // filename save printer settings
 #define PAGE_SETUP "page_setup" // filename save page setup
 
+/* padding between objects */
+#define PRINT_TEXT_PADDING 3.0
+
 /* method to use when scaling down image data */
 #define PRINT_MAX_INTERP GDK_INTERP_HYPER
 
@@ -40,6 +45,14 @@
 	TEXT_INFO_FILEPATH = 1 << 4
 } TextInfo;
 
+/* reverse order is important */
+typedef enum {
+	FOOTER_2,
+	FOOTER_1,
+	HEADER_2,
+	HEADER_1
+} TextPosition;
+
 typedef struct _PrintWindow PrintWindow;
 struct _PrintWindow
 {
@@ -48,10 +61,13 @@
 
 	TextInfo	text_fields;
 	gint		 job_page;
+	GtkTextBuffer *page_text;
 	ImageLoader	*job_loader;
 
 	GList *print_pixbuf_queue;
 	gboolean job_render_finished;
+	GSList *image_group;
+	GSList *page_group;
 };
 
 static gint print_layout_page_count(PrintWindow *pw)
@@ -170,20 +186,31 @@
 
 static void print_set_font_cb(GtkWidget *widget, gpointer data)
 {
+	gpointer option;
+
+	if (g_strcmp0(data, "Image text font") == 0)
+		{
+		option = options->printer.image_font;
+		}
+	else
+		{
+		option = options->printer.page_font;
+		}
+
 #if GTK_CHECK_VERSION(3,4,0)
 	GtkWidget *dialog;
 	char *font;
 	PangoFontDescription *font_desc;
 
-	dialog = gtk_font_chooser_dialog_new("Printer Font", GTK_WINDOW(gtk_widget_get_toplevel(widget)));
-	gtk_font_chooser_set_font(GTK_FONT_CHOOSER(dialog), options->printer.font);
+	dialog = gtk_font_chooser_dialog_new(data, GTK_WINDOW(gtk_widget_get_toplevel(widget)));
+	gtk_font_chooser_set_font(GTK_FONT_CHOOSER(dialog), option);
 
 	if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_CANCEL)
 		{
 		font_desc = gtk_font_chooser_get_font_desc(GTK_FONT_CHOOSER(dialog));
 		font = pango_font_description_to_string(font_desc);
-		g_free(options->printer.font);
-		options->printer.font = g_strdup(font);
+		g_free(option);
+		option = g_strdup(font);
 		g_free(font);
 		}
 
@@ -192,42 +219,283 @@
 	const char *font;
 
 	font = gtk_font_button_get_font_name(GTK_FONT_BUTTON(widget));
-	options->printer.font = g_strdup(font);
+	option = g_strdup(font);
 #endif
 }
 
+static gint set_toggle(GSList *list, TextPosition pos)
+{
+	GtkToggleButton *current_sel;
+	GtkToggleButton *new_sel;
+	gint new_pos = - 1;
+
+	current_sel = g_slist_nth(list, pos)->data;
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(current_sel)))
+		{
+		new_pos = (pos - 1);
+		if (new_pos < 0)
+			{
+			new_pos = HEADER_1;
+			}
+		new_sel = g_slist_nth(list, new_pos)->data;
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(new_sel), TRUE);
+		}
+	return new_pos;
+}
+
+static void image_text_position_h1_cb(GtkWidget *widget, gpointer data)
+{
+	PrintWindow *pw = data;
+	gint new_set;
+
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+		{
+		new_set = set_toggle(pw->page_group, HEADER_1);
+		if (new_set >= 0)
+			{
+			options->printer.page_text_position = new_set;
+			}
+		options->printer.image_text_position = HEADER_1;
+		}
+}
+
+static void image_text_position_h2_cb(GtkWidget *widget, gpointer data)
+{
+	PrintWindow *pw = data;
+	gint new_set;
+
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+		{
+		new_set = set_toggle(pw->page_group, HEADER_2);
+		if (new_set >= 0)
+			{
+			options->printer.page_text_position = new_set;
+			}
+		options->printer.image_text_position = HEADER_2;
+		}
+}
+
+static void image_text_position_f1_cb(GtkWidget *widget, gpointer data)
+{
+	PrintWindow *pw = data;
+	gint new_set;
+
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+		{
+		new_set = set_toggle(pw->page_group, FOOTER_1);
+		if (new_set >= 0)
+			{
+			options->printer.page_text_position = new_set;
+			}
+		options->printer.image_text_position = FOOTER_1;
+		}
+}
+
+static void image_text_position_f2_cb(GtkWidget *widget, gpointer data)
+{
+	PrintWindow *pw = data;
+	gint new_set;
+
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+		{
+		new_set = set_toggle(pw->page_group, FOOTER_2);
+		if (new_set >= 0)
+			{
+			options->printer.page_text_position = new_set;
+			}
+		options->printer.image_text_position = FOOTER_2;
+		}
+}
+
+static void page_text_position_h1_cb(GtkWidget *widget, gpointer data)
+{
+	PrintWindow *pw = data;
+	gint new_set;
+
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+		{
+		new_set = set_toggle(pw->image_group, HEADER_1);
+		if (new_set >= 0)
+			{
+			options->printer.image_text_position = new_set;
+			}
+		options->printer.page_text_position = HEADER_1;
+		}
+}
+
+static void page_text_position_h2_cb(GtkWidget *widget, gpointer data)
+{
+	PrintWindow *pw = data;
+	gint new_set;
+
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+		{
+		new_set = set_toggle(pw->image_group, HEADER_2);
+		if (new_set >= 0)
+			{
+			options->printer.image_text_position = new_set;
+			}
+		options->printer.page_text_position = HEADER_2;
+		}
+}
+
+static void page_text_position_f1_cb(GtkWidget *widget, gpointer data)
+{
+	PrintWindow *pw = data;
+	gint new_set;
+
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+		{
+		new_set = set_toggle(pw->image_group, FOOTER_1);
+		if (new_set >= 0)
+			{
+			options->printer.image_text_position = new_set;
+			}
+		options->printer.page_text_position = FOOTER_1;
+		}
+}
+
+static void page_text_position_f2_cb(GtkWidget *widget, gpointer data)
+{
+	PrintWindow *pw = data;
+	gint new_set;
+
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+		{
+		new_set = set_toggle(pw->image_group, FOOTER_2);
+		if (new_set >= 0)
+			{
+			options->printer.image_text_position = new_set;
+			}
+		options->printer.page_text_position = FOOTER_2;
+		}
+}
+
 static void print_text_menu(GtkWidget *box, PrintWindow *pw)
 {
 	GtkWidget *group;
 	GtkWidget *hbox;
 	GtkWidget *button;
+	GtkWidget *button1;
+	GtkWidget *button2;
+	GtkWidget *image_text_button;
+	GtkWidget *page_text_button;
+	GtkWidget *subgroup;
+	GtkWidget *page_text_view;
 
-	group = pref_group_new(box, FALSE, _("Show"), GTK_ORIENTATION_VERTICAL);
+	group = pref_group_new(box, FALSE, _("Image text"), GTK_ORIENTATION_VERTICAL);
+
+	image_text_button = pref_checkbox_new_int(group, _("Show image text"),
+										options->printer.show_image_text, &options->printer.show_image_text);
+
+	subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
+
+	pref_checkbox_link_sensitivity(image_text_button, subgroup);
+
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(subgroup), hbox, FALSE, FALSE, 0);
 
-	pref_checkbox_new(group, _("Name"), (pw->text_fields & TEXT_INFO_FILENAME),
+	/* order is important */
+	button1 = pref_radiobutton_new(hbox, NULL,  "Header 1",
+							options->printer.image_text_position == HEADER_1,
+							G_CALLBACK(image_text_position_h1_cb), pw);
+	button1 = pref_radiobutton_new(hbox, button1,  "Header 2",
+							options->printer.image_text_position == HEADER_2,
+							G_CALLBACK(image_text_position_h2_cb), pw);
+	button1 = pref_radiobutton_new(hbox, button1, "Footer 1",
+							options->printer.image_text_position == FOOTER_1,
+							G_CALLBACK(image_text_position_f1_cb), pw);
+	button1 = pref_radiobutton_new(hbox, button1, "Footer 2",
+							options->printer.image_text_position == FOOTER_2,
+							G_CALLBACK(image_text_position_f2_cb), pw);
+	gtk_widget_show(hbox);
+	pw->image_group = (gtk_radio_button_get_group(GTK_RADIO_BUTTON(button1)));
+
+	pref_checkbox_new(subgroup, _("Name"), (pw->text_fields & TEXT_INFO_FILENAME),
 			  G_CALLBACK(print_text_cb_name), pw);
-	pref_checkbox_new(group, _("Path"), (pw->text_fields & TEXT_INFO_FILEPATH),
+	pref_checkbox_new(subgroup, _("Path"), (pw->text_fields & TEXT_INFO_FILEPATH),
 			  G_CALLBACK(print_text_cb_path), pw);
-	pref_checkbox_new(group, _("Date"), (pw->text_fields & TEXT_INFO_FILEDATE),
+	pref_checkbox_new(subgroup, _("Date"), (pw->text_fields & TEXT_INFO_FILEDATE),
 			  G_CALLBACK(print_text_cb_date), pw);
-	pref_checkbox_new(group, _("Size"), (pw->text_fields & TEXT_INFO_FILESIZE),
+	pref_checkbox_new(subgroup, _("Size"), (pw->text_fields & TEXT_INFO_FILESIZE),
 			  G_CALLBACK(print_text_cb_size), pw);
-	pref_checkbox_new(group, _("Dimensions"), (pw->text_fields & TEXT_INFO_DIMENSIONS),
+	pref_checkbox_new(subgroup, _("Dimensions"), (pw->text_fields & TEXT_INFO_DIMENSIONS),
 			  G_CALLBACK(print_text_cb_dims), pw);
 
-	group = pref_group_new(box, FALSE, _("Font"), GTK_ORIENTATION_VERTICAL);
-
-	hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
+	hbox = pref_box_new(subgroup, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
 
 #if GTK_CHECK_VERSION(3,4,0)
 	button = pref_button_new(NULL, GTK_STOCK_SELECT_FONT, _("Font"), FALSE,
-				 G_CALLBACK(print_set_font_cb), pw);
+				 G_CALLBACK(print_set_font_cb), "Image text font");
 #else
 	button = gtk_font_button_new();
-	gtk_font_button_set_title(GTK_FONT_BUTTON(button), "Printer Font");
-	gtk_font_button_set_font_name(GTK_FONT_BUTTON(button), options->printer.font);
+	gtk_font_button_set_title(GTK_FONT_BUTTON(button), "Image text Font");
+	gtk_font_button_set_font_name(GTK_FONT_BUTTON(button), options->printer.image_font);
 	g_signal_connect(G_OBJECT(button), "font-set",
-				 G_CALLBACK(print_set_font_cb),NULL);
+				 G_CALLBACK(print_set_font_cb), "Image text font");
+#endif
+	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+	gtk_widget_show(button);
+
+	pref_spacer(group, PREF_PAD_GAP);
+
+	group = pref_group_new(box, FALSE, _("Page text"), GTK_ORIENTATION_VERTICAL);
+
+	page_text_button = pref_checkbox_new_int(group, _("Show page text"),
+					  options->printer.show_page_text, &options->printer.show_page_text);
+
+	subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
+	pref_checkbox_link_sensitivity(page_text_button, subgroup);
+
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(subgroup), hbox, FALSE, FALSE, 0);
+
+	/* order is important */
+	button2 = pref_radiobutton_new(hbox, NULL, "Header 1",
+							options->printer.page_text_position == HEADER_1,
+							G_CALLBACK(page_text_position_h1_cb), pw);
+	button2 = pref_radiobutton_new(hbox, button2,  "Header 2",
+							options->printer.page_text_position == HEADER_2,
+							G_CALLBACK(page_text_position_h2_cb), pw);
+	button2 = pref_radiobutton_new(hbox, button2, "Footer 1",
+							options->printer.page_text_position == FOOTER_1,
+							G_CALLBACK(page_text_position_f1_cb), pw);
+	button2 = pref_radiobutton_new(hbox, button2, "Footer 2",
+							options->printer.page_text_position == FOOTER_2,
+							G_CALLBACK(page_text_position_f2_cb), pw);
+	gtk_widget_show(hbox);
+	pw->page_group = (gtk_radio_button_get_group(GTK_RADIO_BUTTON(button2)));
+
+	GtkWidget *scrolled;
+
+	scrolled = gtk_scrolled_window_new(NULL, NULL);
+	gtk_widget_set_size_request(scrolled, 50, 50);
+	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
+				       GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+	gtk_box_pack_start(GTK_BOX(subgroup), scrolled, TRUE, TRUE, 5);
+	gtk_widget_show(scrolled);
+
+	page_text_view = gtk_text_view_new();
+	pw->page_text = gtk_text_view_get_buffer(GTK_TEXT_VIEW(page_text_view ));
+	gtk_text_buffer_set_text(GTK_TEXT_BUFFER(pw->page_text), options->printer.page_text, -1);
+	g_object_ref(pw->page_text);
+
+	gtk_widget_set_tooltip_markup(page_text_view, ("Text shown on each page of a single or multi-page print job"));
+	gtk_container_add(GTK_CONTAINER(scrolled), page_text_view);
+	gtk_widget_show(page_text_view);
+
+	hbox = pref_box_new(subgroup, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP);
+
+#if GTK_CHECK_VERSION(3,4,0)
+	button = pref_button_new(NULL, GTK_STOCK_SELECT_FONT, _("Font"), FALSE,
+				 G_CALLBACK(print_set_font_cb), "Page text font");
+#else
+	button = gtk_font_button_new();
+	gtk_font_button_set_title(GTK_FONT_BUTTON(button), "Page text Font");
+	gtk_font_button_set_font_name(GTK_FONT_BUTTON(button), options->printer.page_font);
+	g_signal_connect(G_OBJECT(button), "font-set",
+				 G_CALLBACK(print_set_font_cb), "Page text font");
 #endif
 	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
 	gtk_widget_show(button);
@@ -249,148 +517,248 @@
 		}
 }
 
-/* Returns the "depth" of a layout, that is the distance from the
- * top of the layout to the baseline of the first line in the
- * layout. */
-int get_layout_depth(PangoLayout *layout)
-{
-  PangoLayoutLine *layout_line = pango_layout_get_line(layout,0);
-  PangoRectangle rect;
-
-  pango_layout_line_get_extents(layout_line, NULL, &rect);
-
-  return PANGO_ASCENT(rect);
-}
-
 static void draw_page(GtkPrintOperation *operation, GtkPrintContext *context,
 									gint page_nr, gpointer data)
 {
+	PrintWindow *pw = data;
 	FileData *fd;
-	PrintWindow *pw = data;
 	cairo_t *cr;
-	gdouble width, height;
-	gdouble width_pixbuf_image, height_pixbuf_image;
+	gdouble context_width, context_height;
+	gdouble pixbuf_image_width, pixbuf_image_height;
 	gdouble width_offset;
 	gdouble height_offset;
 	GdkPixbuf *pixbuf;
 	GdkPixbuf *pixbuf_scaled;
-	PangoLayout *layout;
+	GdkPixbuf *rotated = NULL;
+	PangoLayout *layout_image = NULL;
+	PangoLayout *layout_page = NULL;
 	PangoFontDescription *desc;
-	GString *text = g_string_new(NULL);
+	GString *image_text = g_string_new(NULL);
+	GString *page_text = g_string_new(NULL);
 	PangoRectangle ink_rect, logical_rect;
-	gdouble depth;
-	gdouble text_padding;
-	gdouble x, y, w, h, scale;
+	gdouble w, h, scale;
+	gdouble image_text_width, image_text_height, page_text_width, page_text_height;
+	gint image_y;
+	gint incr_y;
 	gdouble pango_height;
-
-	pixbuf = g_list_nth_data(pw->print_pixbuf_queue, page_nr);
-	width_pixbuf_image = gdk_pixbuf_get_width(pixbuf);
-	height_pixbuf_image = gdk_pixbuf_get_height(pixbuf);
+	gdouble pango_image_height;
+	gdouble pango_page_height;
+	GtkTextIter start, end;
+	gchar *tmp;
 
 	fd = g_list_nth_data(pw->source_selection, page_nr);
 
-	if (pw->text_fields & TEXT_INFO_FILENAME)
+	pixbuf = g_list_nth_data(pw->print_pixbuf_queue, page_nr);
+	if (fd->exif_orientation != EXIF_ORIENTATION_TOP_LEFT)
 		{
-		text = g_string_append(text, g_strdup(fd->name));
-		text = g_string_append(text, "\n");
+		rotated = pixbuf_apply_orientation(pixbuf, fd->exif_orientation);
+		pixbuf = rotated;
 		}
-	if (pw->text_fields & TEXT_INFO_FILEDATE)
-		{
-		text = g_string_append(text, g_strdup(text_from_time(fd->date)));
-		text = g_string_append(text, "\n");
-		}
-	if (pw->text_fields & TEXT_INFO_FILESIZE)
+
+	pixbuf_image_width = gdk_pixbuf_get_width(pixbuf);
+	pixbuf_image_height = gdk_pixbuf_get_height(pixbuf);
+
+	if (options->printer.show_image_text)
 		{
-		text = g_string_append(text, g_strdup(text_from_size(fd->size)));
-		text = g_string_append(text, "\n");
+		if (pw->text_fields & TEXT_INFO_FILENAME)
+			{
+			image_text = g_string_append(image_text, g_strdup(fd->name));
+			image_text = g_string_append(image_text, "\n");
+			}
+		if (pw->text_fields & TEXT_INFO_FILEDATE)
+			{
+			image_text = g_string_append(image_text, g_strdup(text_from_time(fd->date)));
+			image_text = g_string_append(image_text, "\n");
+			}
+		if (pw->text_fields & TEXT_INFO_FILESIZE)
+			{
+			image_text = g_string_append(image_text, g_strdup(text_from_size(fd->size)));
+			image_text = g_string_append(image_text, "\n");
+			}
+		if (pw->text_fields & TEXT_INFO_DIMENSIONS)
+			{
+			g_string_append_printf(image_text, "%d x %d", (gint)pixbuf_image_width,
+												(gint)pixbuf_image_height);
+			image_text = g_string_append(image_text, "\n");
+			}
+		if (pw->text_fields & TEXT_INFO_FILEPATH)
+			{
+			image_text = g_string_append(image_text, g_strdup(fd->path));
+			image_text = g_string_append(image_text, "\n");
+			}
+		if (image_text->len > 0)
+			{
+			image_text = g_string_truncate(image_text, image_text->len - 1);
+			}
 		}
-	if (pw->text_fields & TEXT_INFO_DIMENSIONS)
+
+	if (options->printer.show_page_text)
 		{
-		g_string_append_printf(text, "%d x %d", (gint)width_pixbuf_image,
-											(gint)height_pixbuf_image);
-		text = g_string_append(text, "\n");
-		}
-	if (pw->text_fields & TEXT_INFO_FILEPATH)
-		{
-		text = g_string_append(text, g_strdup(fd->path));
-		text = g_string_append(text, "\n");
+		gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(pw->page_text), &start, &end);
+
+		tmp = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(pw->page_text), &start, &end, FALSE);
+		page_text = g_string_append(page_text, tmp);
+
+		g_free(tmp);
 		}
 
 	cr = gtk_print_context_get_cairo_context(context);
-	width = gtk_print_context_get_width(context);
-	height = gtk_print_context_get_height(context);
-
-	if (text->len > 0)
-		{
-		text = g_string_truncate(text, text->len - 1);
+	context_width = gtk_print_context_get_width(context);
+	context_height = gtk_print_context_get_height(context);
 
-		layout = pango_cairo_create_layout(cr);
+	pango_image_height = 0;
+	pango_page_height = 0;
+	image_text_width = 0;
+	page_text_width = 0;
 
-		pango_layout_set_text(layout, text->str, -1);
-		desc = pango_font_description_from_string(options->printer.font);
-		pango_layout_set_font_description(layout, desc);
-
-		pango_layout_get_extents(layout, &ink_rect, &logical_rect);
-		x = ((gdouble)logical_rect.width / PANGO_SCALE) ;
-		y = ((gdouble)logical_rect.height / PANGO_SCALE);
+	if (image_text->len > 0)
+		{
+		layout_image = pango_cairo_create_layout(cr);
 
-		pango_layout_set_alignment(layout, PANGO_ALIGN_CENTER);
-		pango_layout_set_text(layout, text->str, -1);
-
-		depth = (gdouble)get_layout_depth(layout);
-		text_padding = depth / 2 / PANGO_SCALE ;
-
-		pango_height = y + text_padding * 2;
+		pango_layout_set_text(layout_image, image_text->str, -1);
+		desc = pango_font_description_from_string(options->printer.image_font);
+		pango_layout_set_font_description(layout_image, desc);
 
-		}
-	else
-		{
-		pango_height = 0;
-		depth = 0;
-		text_padding = 0;
-		x = 0;
-		y = 0;
+		pango_layout_get_extents(layout_image, &ink_rect, &logical_rect);
+		image_text_width = ((gdouble)logical_rect.width / PANGO_SCALE) ;
+		image_text_height = ((gdouble)logical_rect.height / PANGO_SCALE);
+
+		pango_layout_set_alignment(layout_image, PANGO_ALIGN_CENTER);
+		pango_layout_set_text(layout_image, image_text->str, -1);
+
+		pango_image_height = image_text_height + PRINT_TEXT_PADDING * 2;
+
+		pango_font_description_free(desc);
 		}
 
-	if ((width / width_pixbuf_image) < ((height - pango_height) / height_pixbuf_image))
+	if (page_text->len > 0)
 		{
-		w = width;
-		scale = width / width_pixbuf_image;
-		h = height_pixbuf_image * scale;
-		height_offset = (height - (h + pango_height)) / 2;
+		layout_page = pango_cairo_create_layout(cr);
+
+		pango_layout_set_text(layout_page, page_text->str, -1);
+		desc = pango_font_description_from_string(options->printer.page_font);
+		pango_layout_set_font_description(layout_page, desc);
+
+		pango_layout_get_extents(layout_page, &ink_rect, &logical_rect);
+		page_text_width = ((gdouble)logical_rect.width / PANGO_SCALE) ;
+		page_text_height = ((gdouble)logical_rect.height / PANGO_SCALE);
+
+		pango_layout_set_alignment(layout_page, PANGO_ALIGN_CENTER);
+		pango_layout_set_text(layout_page, page_text->str, -1);
+
+		pango_page_height = page_text_height + PRINT_TEXT_PADDING * 2;
+
+		pango_font_description_free(desc);
+		}
+
+	pango_height = pango_image_height + pango_page_height;
+
+	if ((context_width / pixbuf_image_width) < ((context_height - pango_height) / pixbuf_image_height))
+		{
+		w = context_width;
+		scale = context_width / pixbuf_image_width;
+		h = pixbuf_image_height * scale;
+		height_offset = (context_height - (h + pango_height)) / 2;
 		width_offset = 0;
 		}
 	else
 		{
-		h = height - pango_height ;
-		scale = (height - pango_height) / height_pixbuf_image;
-		w = width_pixbuf_image * scale;
+		h = context_height - pango_height ;
+		scale = (context_height - pango_height) / pixbuf_image_height;
+		w = pixbuf_image_width * scale;
 		height_offset = 0;
-		width_offset = (width - (width_pixbuf_image * scale)) / 2;
+		width_offset = (context_width - (pixbuf_image_width * scale)) / 2;
+		}
+
+	incr_y = height_offset + PRINT_TEXT_PADDING;
+
+	if (options->printer.page_text_position == HEADER_1 && page_text->len > 0)
+		{
+		cairo_move_to(cr, (w / 2) - (page_text_width / 2) + width_offset, incr_y);
+		pango_cairo_show_layout(cr, layout_page);
+
+		incr_y = incr_y + PRINT_TEXT_PADDING + pango_page_height;
+		}
+
+	if (options->printer.image_text_position == HEADER_1 && image_text->len > 0)
+		{
+		cairo_move_to(cr, (w / 2) - (image_text_width / 2) + width_offset, incr_y);
+		pango_cairo_show_layout(cr, layout_image);
+
+		incr_y = incr_y + PRINT_TEXT_PADDING + pango_image_height;
+		}
+
+	if (options->printer.page_text_position == HEADER_2 && page_text->len > 0)
+		{
+		cairo_move_to(cr, (w / 2) - (page_text_width / 2) + width_offset, incr_y);
+		pango_cairo_show_layout(cr, layout_page);
+
+		incr_y = incr_y + PRINT_TEXT_PADDING + pango_page_height;
 		}
 
-	if (text->len > 0)
+	if (options->printer.image_text_position == HEADER_2 && image_text->len > 0)
+		{
+		cairo_move_to(cr, (w / 2) - (image_text_width / 2) + width_offset, incr_y);
+		pango_cairo_show_layout(cr, layout_image);
+
+		incr_y = incr_y + PRINT_TEXT_PADDING + pango_image_height;
+		}
+
+	image_y = incr_y;
+	incr_y = incr_y + h + PRINT_TEXT_PADDING;
+
+	if (options->printer.page_text_position == FOOTER_1 && page_text->len > 0)
 		{
-		cairo_move_to(cr, (w / 2) - (x / 2) + width_offset, h + height_offset + text_padding);
-		pango_cairo_show_layout(cr, layout);
+		cairo_move_to(cr, (w / 2) - (page_text_width / 2) + width_offset, incr_y);
+		pango_cairo_show_layout(cr, layout_page);
+
+		incr_y = incr_y + PRINT_TEXT_PADDING + pango_page_height;
+		}
+
+	if (options->printer.image_text_position == FOOTER_1 && image_text->len > 0)
+		{
+		cairo_move_to(cr, (w / 2) - (image_text_width / 2) + width_offset, incr_y);
+		pango_cairo_show_layout(cr, layout_image);
+
+		incr_y = incr_y + PRINT_TEXT_PADDING + pango_image_height;
+		}
+
+	if (options->printer.page_text_position == FOOTER_2 && page_text->len > 0)
+		{
+		cairo_move_to(cr, (w / 2) - (page_text_width / 2) + width_offset, incr_y);
+		pango_cairo_show_layout(cr, layout_page);
+
+		incr_y = incr_y + PRINT_TEXT_PADDING + pango_page_height;
+		}
+
+	if (options->printer.image_text_position == FOOTER_2 && image_text->len > 0)
+		{
+		cairo_move_to(cr, (w / 2) - (image_text_width / 2) + width_offset, incr_y);
+		pango_cairo_show_layout(cr, layout_image);
 		}
 
 	pixbuf_scaled = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, w, h);
 	gdk_pixbuf_scale(pixbuf, pixbuf_scaled, 0, 0, w, h, 0, 0,  scale, scale, PRINT_MAX_INTERP);
 
-	cairo_rectangle(cr, width_offset, height_offset, w, h);
+	cairo_rectangle(cr, width_offset, image_y, w, h);
 
-	gdk_cairo_set_source_pixbuf(cr, pixbuf_scaled, width_offset, height_offset);
+	gdk_cairo_set_source_pixbuf(cr, pixbuf_scaled, width_offset, image_y);
+
 	cairo_fill(cr);
 
-	if (text->len > 0)
+	if (image_text->len > 0)
 		{
-		g_object_unref(layout);
-		g_string_free(text, TRUE);
-		pango_font_description_free(desc);
+		g_object_unref(layout_image);
+		g_string_free(image_text, TRUE);
+		}
+	if (page_text->len > 0)
+		{
+		g_object_unref(layout_page);
+		g_string_free(page_text, TRUE);
 		}
 
 	g_object_unref(pixbuf_scaled);
+	if (rotated) g_object_unref(rotated);
 
 	return;
 }
@@ -418,7 +786,16 @@
 
 static void print_pref_store(PrintWindow *pw)
 {
+	gchar *tmp;
+	GtkTextIter start, end;
+
 	options->printer.text_fields = pw->text_fields;
+
+	gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(pw->page_text), &start, &end);
+	tmp = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(pw->page_text), &start, &end, FALSE);
+	g_free(options->printer.page_text);
+	options->printer.page_text = g_strdup(tmp);
+	g_free(tmp);
 }
 
 static void end_print_cb(GtkPrintOperation *operation,
@@ -471,6 +848,7 @@
 		work = work->next;
 		}
 	g_list_free(pw->print_pixbuf_queue);
+	g_object_unref(pw->page_text);
 	g_free(pw);
 }
 
@@ -491,6 +869,11 @@
 	pw->source_selection = file_data_process_groups_in_selection(selection, FALSE, NULL);
 	pw->text_fields = options->printer.text_fields;
 
+	if (print_layout_page_count(pw) == 0)
+		{
+		return;
+		}
+
 	vbox = gtk_vbox_new(FALSE, 0);
 	gtk_container_set_border_width(GTK_CONTAINER(vbox), PREF_PAD_BORDER);
 	gtk_widget_show(vbox);
--- a/src/rcfile.c	Fri Oct 05 18:30:47 2018 -0700
+++ b/src/rcfile.c	Sat Oct 06 10:28:02 2018 +0100
@@ -496,8 +496,14 @@
 	WRITE_NL(); WRITE_INT(*options, cp_mv_rn.formatted_start);
 
 	/* printer */
-	WRITE_NL(); WRITE_CHAR(*options, printer.font);
+	WRITE_NL(); WRITE_CHAR(*options, printer.image_font);
+	WRITE_NL(); WRITE_CHAR(*options, printer.page_font);
+	WRITE_NL(); WRITE_CHAR(*options, printer.page_text);
 	WRITE_NL(); WRITE_INT(*options, printer.text_fields);
+	WRITE_NL(); WRITE_INT(*options, printer.image_text_position);
+	WRITE_NL(); WRITE_INT(*options, printer.page_text_position);
+	WRITE_NL(); WRITE_BOOL(*options, printer.show_image_text);
+	WRITE_NL(); WRITE_BOOL(*options, printer.show_page_text);
 }
 
 static void write_color_profile(GString *outstr, gint indent)
@@ -834,8 +840,14 @@
 		if (READ_INT(*options, cp_mv_rn.formatted_start)) continue;
 
 		/* printer */
-		if (READ_CHAR(*options, printer.font)) continue;
+		if (READ_CHAR(*options, printer.image_font)) continue;
+		if (READ_CHAR(*options, printer.page_font)) continue;
+		if (READ_CHAR(*options, printer.page_text)) continue;
 		if (READ_INT(*options, printer.text_fields)) continue;
+		if (READ_INT(*options, printer.image_text_position)) continue;
+		if (READ_INT(*options, printer.page_text_position)) continue;
+		if (READ_BOOL(*options, printer.show_image_text)) continue;
+		if (READ_BOOL(*options, printer.show_page_text)) continue;
 
 		/* Dummy options */
 		if (READ_DUMMY(*options, image.dither_quality, "deprecated since 2012-08-13")) continue;
--- a/web/help/GuideIndex.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideIndex.html	Sat Oct 06 10:28:02 2018 +0100
@@ -580,31 +580,34 @@
 <span class="label">11.2. </span><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a>
 </li>
 <li>
-<span class="label">11.3. </span><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a>
+<span class="label">11.3. </span><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a>
 </li>
 <li>
-<span class="label">11.4. </span><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a>
+<span class="label">11.4. </span><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a>
 </li>
 <li>
-<span class="label">11.5. </span><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a>
+<span class="label">11.5. </span><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a>
 </li>
 <li>
-<span class="label">11.6. </span><a class="xref" href="GuideOptionsMetadata.html" title="Metadata">Metadata</a>
+<span class="label">11.6. </span><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a>
 </li>
 <li>
-<span class="label">11.7. </span><a class="xref" href="GuideOptionsKeywords.html" title="Keywords">Keywords</a>
+<span class="label">11.7. </span><a class="xref" href="GuideOptionsMetadata.html" title="Metadata">Metadata</a>
 </li>
 <li>
-<span class="label">11.8. </span><a class="xref" href="GuideOptionsColor.html" title="Color management options">Color management options</a>
+<span class="label">11.8. </span><a class="xref" href="GuideOptionsKeywords.html" title="Keywords">Keywords</a>
 </li>
 <li>
-<span class="label">11.9. </span><a class="xref" href="GuideOptionsStereo.html" title="Stereo image management">Stereo image management</a>
+<span class="label">11.9. </span><a class="xref" href="GuideOptionsColor.html" title="Color management options">Color management options</a>
 </li>
 <li>
-<span class="label">11.10. </span><a class="xref" href="GuideOptionsBehavior.html" title="Behavior Options">Behavior Options</a>
+<span class="label">11.10. </span><a class="xref" href="GuideOptionsStereo.html" title="Stereo image management">Stereo image management</a>
 </li>
 <li>
-<span class="label">11.11. </span><a class="xref" href="GuideOptionsToolbar.html" title="Toolbar">Toolbar</a>
+<span class="label">11.11. </span><a class="xref" href="GuideOptionsBehavior.html" title="Behavior Options">Behavior Options</a>
+</li>
+<li>
+<span class="label">11.12. </span><a class="xref" href="GuideOptionsToolbar.html" title="Toolbar">Toolbar</a>
 </li>
 </ul></div>
 </li>
--- a/web/help/GuideMainWindowImagePane.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideMainWindowImagePane.html	Sat Oct 06 10:28:02 2018 +0100
@@ -516,7 +516,7 @@
     </p>
 <p class="para block">
       Data the overlay displays is customizable through the
-      <a class="link" href="GuideOptionsWindow.html#OverlayScreenDisplay" title="Overlay Screen Display">Image Overlay Template</a>
+      <a class="link" href="GuideOptionsOSD.html#OverlayScreenDisplay" title="Overlay Screen Display">Image Overlay Template</a>
       option in the Windows tab in the Preferences dialog.
     </p>
 <p class="para block"></p>
--- a/web/help/GuideOptionsBehavior.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsBehavior.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
@@ -460,20 +461,20 @@
 <p class="para block block-first">This section describes the options presented under the Behavior Tab of the preferences dialog.</p>
 <div class="autotoc"><ul>
 <li>
-<span class="label">11.10.1. </span><a class="xref" href="GuideOptionsBehavior.html#Delete" title="Delete">Delete</a>
+<span class="label">11.11.1. </span><a class="xref" href="GuideOptionsBehavior.html#Delete" title="Delete">Delete</a>
 </li>
 <li>
-<span class="label">11.10.2. </span><a class="xref" href="GuideOptionsBehavior.html#Behaviour" title="Behavior">Behavior</a>
+<span class="label">11.11.2. </span><a class="xref" href="GuideOptionsBehavior.html#Behaviour" title="Behavior">Behavior</a>
 </li>
 <li>
-<span class="label">11.10.3. </span><a class="xref" href="GuideOptionsBehavior.html#Navigation" title="Navigation">Navigation</a>
+<span class="label">11.11.3. </span><a class="xref" href="GuideOptionsBehavior.html#Navigation" title="Navigation">Navigation</a>
 </li>
 <li>
-<span class="label">11.10.4. </span><a class="xref" href="GuideOptionsBehavior.html#Debugging" title="Debugging">Debugging</a>
+<span class="label">11.11.4. </span><a class="xref" href="GuideOptionsBehavior.html#Debugging" title="Debugging">Debugging</a>
 </li>
 </ul></div>
 <div class="division section">
-<a name="Delete"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.10.1. </span>Delete</span></h2></div>
+<a name="Delete"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.11.1. </span>Delete</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
           <span class="guilabel">Confirm file delete</span>
@@ -551,7 +552,7 @@
 </dl></div>
 </div>
 <div class="division section">
-<a name="Behaviour"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.10.2. </span>Behavior</span></h2></div>
+<a name="Behaviour"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.11.2. </span>Behavior</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
           <span class="guilabel">Descend folders in tree view</span>
@@ -629,7 +630,7 @@
 </dl></div>
 </div>
 <div class="division section">
-<a name="Navigation"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.10.3. </span>Navigation</span></h2></div>
+<a name="Navigation"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.11.3. </span>Navigation</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
           <span class="guilabel">Progressive keyboard scrolling</span>
@@ -670,7 +671,7 @@
 </dl></div>
 </div>
 <div class="division section">
-<a name="Debugging"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.10.4. </span>Debugging</span></h2></div>
+<a name="Debugging"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.11.4. </span>Debugging</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
           <span class="guilabel">Debug level</span>
--- a/web/help/GuideOptionsColor.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsColor.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
--- a/web/help/GuideOptionsFiltering.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsFiltering.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li>Files Options</li>
@@ -461,17 +462,17 @@
 <p class="para block"></p>
 <div class="autotoc"><ul>
 <li>
-<span class="label">11.5.1. </span><a class="xref" href="GuideOptionsFiltering.html#Filters" title="Filters">Filters</a>
+<span class="label">11.6.1. </span><a class="xref" href="GuideOptionsFiltering.html#Filters" title="Filters">Filters</a>
 </li>
 <li>
-<span class="label">11.5.2. </span><a class="xref" href="GuideOptionsFiltering.html#Groupingsidecarextensions" title="Grouping sidecar extensions">Grouping sidecar extensions</a>
+<span class="label">11.6.2. </span><a class="xref" href="GuideOptionsFiltering.html#Groupingsidecarextensions" title="Grouping sidecar extensions">Grouping sidecar extensions</a>
 </li>
 <li>
-<span class="label">11.5.3. </span><a class="xref" href="GuideOptionsFiltering.html#Filetypes" title="File types">File types</a>
+<span class="label">11.6.3. </span><a class="xref" href="GuideOptionsFiltering.html#Filetypes" title="File types">File types</a>
 </li>
 </ul></div>
 <div class="division section">
-<a name="Filters"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.5.1. </span>Filters</span></h2></div>
+<a name="Filters"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.6.1. </span>Filters</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
           <span class="guilabel">Show hidden files or folders</span>
@@ -518,7 +519,7 @@
 <p class="para block"></p>
 </div>
 <div class="division section">
-<a name="Groupingsidecarextensions"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.5.2. </span>Grouping sidecar extensions</span></h2></div>
+<a name="Groupingsidecarextensions"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.6.2. </span>Grouping sidecar extensions</span></h2></div>
 <p class="para block block-first">This field defines which extensions will lead to file grouping. Grouped files will appear as a single entry in file views. This is useful, for example, when browsing directories containing two files for the same image (such as raw+jpeg files generated by some cameras).</p>
 <p class="para block">The group is represented by the first extension in the list for which a file exists.</p>
 <p class="para block">
@@ -562,7 +563,7 @@
 <p class="para block"></p>
 </div>
 <div class="division section">
-<a name="Filetypes"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.5.3. </span>File types</span></h2></div>
+<a name="Filetypes"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.6.3. </span>File types</span></h2></div>
 <p class="para block block-first">
       This list contains the image formats that are understood by Geeqie. To disable a specific file type from being displayed, uncheck it's corresponding check-box. Filters can be edited by first selecting the line containing the item to be changed, then clicking the filter or description field, making any changes, then pressing
       <span class="keycap">Enter</span>
--- a/web/help/GuideOptionsGeneral.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsGeneral.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li>General Options</li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
--- a/web/help/GuideOptionsImage.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsImage.html	Sat Oct 06 10:28:02 2018 +0100
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Image Options</title>
 <link rel="previous" href="GuideOptionsGeneral.html" title="General Options">
-<link rel="next" href="GuideOptionsWindow.html" title="Window Options">
+<link rel="next" href="GuideOptionsOSD.html" title="OverlayScreen Display">
 <link rel="top" href="GuideIndex.html" title="The Geeqie User Manual">
 <style type="text/css">
 
@@ -411,7 +411,7 @@
 <body>
 <div class="navbar navbar-top"><table class="navbar"><tr>
 <td class="navbar-prev"><a class="navbar-prev" href="GuideOptionsGeneral.html" title="General Options">General Options</a></td>
-<td class="navbar-next"><a class="navbar-next" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></td>
 </tr></table></div>
 <div class="sidebar"><div class="sidenav"><div class="autotoc"><ul>
 <li><a href="GuideIndex-info.html" title="About This Document">About This Document</a></li>
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li>Image Options</li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
@@ -608,7 +609,7 @@
 </div></div>
 <div class="navbar navbar-bottom"><table class="navbar"><tr>
 <td class="navbar-prev"><a class="navbar-prev" href="GuideOptionsGeneral.html" title="General Options">General Options</a></td>
-<td class="navbar-next"><a class="navbar-next" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></td>
 </tr></table></div>
 </body>
 </html>
--- a/web/help/GuideOptionsKeyboard.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsKeyboard.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li>Keyboard Options</li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
--- a/web/help/GuideOptionsKeywords.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsKeywords.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
@@ -461,19 +462,19 @@
 <p class="para block"></p>
 <div class="autotoc"><ul>
 <li>
-<span class="label">11.7.1. </span><a class="xref" href="GuideOptionsKeywords.html#KeywordSearch" title="Keyword Search">Keyword Search</a>
+<span class="label">11.8.1. </span><a class="xref" href="GuideOptionsKeywords.html#KeywordSearch" title="Keyword Search">Keyword Search</a>
 </li>
 <li>
-<span class="label">11.7.2. </span><a class="xref" href="GuideOptionsKeywords.html#KeywordList" title="Keyword List">Keyword List</a>
+<span class="label">11.8.2. </span><a class="xref" href="GuideOptionsKeywords.html#KeywordList" title="Keyword List">Keyword List</a>
 </li>
 </ul></div>
 <div class="division section">
-<a name="KeywordSearch"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.7.1. </span>Keyword Search</span></h2></div>
+<a name="KeywordSearch"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.8.1. </span>Keyword Search</span></h2></div>
 <p class="para block block-first"></p>
 <p class="para block">Pressing the Search button will open a dialog which permits a recursive search to be made for keywords already attached to images. The result of the search is automatically appended to the existing list.</p>
 </div>
 <div class="division section">
-<a name="KeywordList"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.7.2. </span>Keyword List</span></h2></div>
+<a name="KeywordList"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.8.2. </span>Keyword List</span></h2></div>
 <p class="para block block-first"></p>
 <p class="para block">
       The list shows all keywords currently used for autocompletion. Text may be copy-pasted into the list or deleted from the list.
--- a/web/help/GuideOptionsMain.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsMain.html	Sat Oct 06 10:28:02 2018 +0100
@@ -430,6 +430,7 @@
 <li>Preferences<div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
@@ -474,31 +475,34 @@
 <span class="label">11.2. </span><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a>
 </li>
 <li>
-<span class="label">11.3. </span><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a>
+<span class="label">11.3. </span><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a>
 </li>
 <li>
-<span class="label">11.4. </span><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a>
+<span class="label">11.4. </span><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a>
 </li>
 <li>
-<span class="label">11.5. </span><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a>
+<span class="label">11.5. </span><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a>
 </li>
 <li>
-<span class="label">11.6. </span><a class="xref" href="GuideOptionsMetadata.html" title="Metadata">Metadata</a>
+<span class="label">11.6. </span><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a>
 </li>
 <li>
-<span class="label">11.7. </span><a class="xref" href="GuideOptionsKeywords.html" title="Keywords">Keywords</a>
+<span class="label">11.7. </span><a class="xref" href="GuideOptionsMetadata.html" title="Metadata">Metadata</a>
 </li>
 <li>
-<span class="label">11.8. </span><a class="xref" href="GuideOptionsColor.html" title="Color management options">Color management options</a>
+<span class="label">11.8. </span><a class="xref" href="GuideOptionsKeywords.html" title="Keywords">Keywords</a>
 </li>
 <li>
-<span class="label">11.9. </span><a class="xref" href="GuideOptionsStereo.html" title="Stereo image management">Stereo image management</a>
+<span class="label">11.9. </span><a class="xref" href="GuideOptionsColor.html" title="Color management options">Color management options</a>
 </li>
 <li>
-<span class="label">11.10. </span><a class="xref" href="GuideOptionsBehavior.html" title="Behavior Options">Behavior Options</a>
+<span class="label">11.10. </span><a class="xref" href="GuideOptionsStereo.html" title="Stereo image management">Stereo image management</a>
 </li>
 <li>
-<span class="label">11.11. </span><a class="xref" href="GuideOptionsToolbar.html" title="Toolbar">Toolbar</a>
+<span class="label">11.11. </span><a class="xref" href="GuideOptionsBehavior.html" title="Behavior Options">Behavior Options</a>
+</li>
+<li>
+<span class="label">11.12. </span><a class="xref" href="GuideOptionsToolbar.html" title="Toolbar">Toolbar</a>
 </li>
 </ul></div>
 </div></div>
--- a/web/help/GuideOptionsMetadata.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsMetadata.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
@@ -471,26 +472,26 @@
   </p>
 <div class="autotoc"><ul>
 <li>
-<span class="label">11.6.1. </span><a class="xref" href="GuideOptionsMetadata.html#MetadataWritingProcess" title="Metadata writing process">Metadata writing process</a>
+<span class="label">11.7.1. </span><a class="xref" href="GuideOptionsMetadata.html#MetadataWritingProcess" title="Metadata writing process">Metadata writing process</a>
 </li>
 <li>
-<span class="label">11.6.2. </span><a class="xref" href="GuideOptionsMetadata.html#WriteToImageFiles" title="Step 1: Write to image files">Step 1: Write to image files</a>
+<span class="label">11.7.2. </span><a class="xref" href="GuideOptionsMetadata.html#WriteToImageFiles" title="Step 1: Write to image files">Step 1: Write to image files</a>
 </li>
 <li>
-<span class="label">11.6.3. </span><a class="xref" href="GuideOptionsMetadata.html#WriteToGeeqiePrivateFiles" title="Steps 2 and 3: Write to Geeqie private files">Steps 2 and 3: Write to Geeqie private files</a>
+<span class="label">11.7.3. </span><a class="xref" href="GuideOptionsMetadata.html#WriteToGeeqiePrivateFiles" title="Steps 2 and 3: Write to Geeqie private files">Steps 2 and 3: Write to Geeqie private files</a>
 </li>
 <li>
-<span class="label">11.6.4. </span><a class="xref" href="GuideOptionsMetadata.html#MetadataMiscellaneous" title="Miscellaneous">Miscellaneous</a>
+<span class="label">11.7.4. </span><a class="xref" href="GuideOptionsMetadata.html#MetadataMiscellaneous" title="Miscellaneous">Miscellaneous</a>
 </li>
 <li>
-<span class="label">11.6.5. </span><a class="xref" href="GuideOptionsMetadata.html#AutoSaveOptions" title="Auto-save options">Auto-save options</a>
+<span class="label">11.7.5. </span><a class="xref" href="GuideOptionsMetadata.html#AutoSaveOptions" title="Auto-save options">Auto-save options</a>
 </li>
 <li>
-<span class="label">11.6.6. </span><a class="xref" href="GuideOptionsMetadata.html#PreLoadMetadata" title="Pre-load metadata">Pre-load metadata</a>
+<span class="label">11.7.6. </span><a class="xref" href="GuideOptionsMetadata.html#PreLoadMetadata" title="Pre-load metadata">Pre-load metadata</a>
 </li>
 </ul></div>
 <div class="division section">
-<a name="MetadataWritingProcess"></a><div class="header"><h2 class="section title"><span class="title"><a name="titleMetadataWritingProcess"></a><span class="label">11.6.1. </span>Metadata writing process</span></h2></div>
+<a name="MetadataWritingProcess"></a><div class="header"><h2 class="section title"><span class="title"><a name="titleMetadataWritingProcess"></a><span class="label">11.7.1. </span>Metadata writing process</span></h2></div>
 <p class="para block block-first">
       When writing metadata, Geeqie will follow three steps. This process will stop when the first successful write occurs.
       <div class="block list orderedlist"><ol class="orderedlist">
@@ -521,7 +522,7 @@
 <p class="para block">When writing to local metadata folders, the directory structure duplicates that of the location of the source files.</p>
 </div>
 <div class="division section">
-<a name="WriteToImageFiles"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.6.2. </span>Step 1: Write to image files</span></h2></div>
+<a name="WriteToImageFiles"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.7.2. </span>Step 1: Write to image files</span></h2></div>
 <p class="para block block-first">If Step 1 above was successful, the following options take effect:</p>
 <div class="block list itemizedlist"><ul class="itemizedlist">
 <li class="li-first">
@@ -556,7 +557,7 @@
 </ul></div>
 </div>
 <div class="division section">
-<a name="WriteToGeeqiePrivateFiles"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.6.3. </span>Steps 2 and 3: Write to Geeqie private files</span></h2></div>
+<a name="WriteToGeeqiePrivateFiles"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.7.3. </span>Steps 2 and 3: Write to Geeqie private files</span></h2></div>
 <p class="para block block-first">If Step 2 or 3 above was successful, the following option takes effect:</p>
 <div class="block list itemizedlist"><ul class="itemizedlist"><li class="li-first">
         <span class="para">
@@ -567,7 +568,7 @@
       </li></ul></div>
 </div>
 <div class="division section">
-<a name="MetadataMiscellaneous"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.6.4. </span>Miscellaneous</span></h2></div>
+<a name="MetadataMiscellaneous"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.7.4. </span>Miscellaneous</span></h2></div>
 <div class="block list itemizedlist"><ul class="itemizedlist">
 <li class="li-first">
         <p class="para block block-first">
@@ -606,7 +607,7 @@
 <p class="para block"></p>
 </div>
 <div class="division section">
-<a name="AutoSaveOptions"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.6.5. </span>Auto-save options</span></h2></div>
+<a name="AutoSaveOptions"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.7.5. </span>Auto-save options</span></h2></div>
 <div class="block list itemizedlist"><ul class="itemizedlist">
 <li class="li-first">
         <span class="para">
@@ -633,7 +634,7 @@
 <p class="para block"></p>
 </div>
 <div class="division section">
-<a name="PreLoadMetadata"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.6.6. </span>Pre-load metadata</span></h2></div>
+<a name="PreLoadMetadata"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.7.6. </span>Pre-load metadata</span></h2></div>
 <div class="block list itemizedlist"><ul class="itemizedlist"><li class="li-first">
         <span class="para">
           <span class="guilabel">Read metadata in background</span>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/help/GuideOptionsOSD.html	Sat Oct 06 10:28:02 2018 +0100
@@ -0,0 +1,688 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>OverlayScreen Display</title>
+<link rel="previous" href="GuideOptionsImage.html" title="Image Options">
+<link rel="next" href="GuideOptionsWindow.html" title="Window Options">
+<link rel="top" href="GuideIndex.html" title="The Geeqie User Manual">
+<style type="text/css">
+
+html { height: 100%; }
+body {
+  margin: 0px; padding: 12px;
+  background-color: #f9f9f6;
+  min-height: 100%;
+  direction: ltr;
+}
+div, p, pre, blockquote { margin: 0; padding: 0; }
+p img { vertical-align: middle; }
+sub { font-size: 0.83em; }
+sub sub { font-size: 1em; }
+sup { font-size: 0.83em; }
+sup sup { font-size: 1em; }
+table { border-collapse: collapse; }
+table.table-pgwide { width: 100%; }
+td { vertical-align: top; }
+td { padding: 0.2em 0.83em 0.2em 0.83em; }
+th { padding: 0 0.83em 0 0.83em; }
+tr.tr-shade {
+  background-color: #f9f9f6;
+}
+td.td-colsep { border-right: solid 1px; }
+td.td-rowsep { border-bottom: solid 1px; }
+thead { border-top: solid 2px; border-bottom: solid 2px; }
+tfoot { border-top: solid 2px; border-bottom: solid 2px; }
+div.body {
+  padding: 1em;
+  max-width: 60em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.body-sidebar {
+  margin-right: 13em;
+}
+div.division div.division { margin-top: 1.72em; }
+div.division div.division div.division { margin-top: 1.44em; }
+div.header {
+  margin: 0;
+  color: #3f3f3f;
+  border-bottom: solid 1px #e0e0df;
+}
+h1, h2, h3, h4, h5, h6, h7 {
+  margin: 0; padding: 0;
+  color: #3f3f3f;
+}
+h1.title { font-size: 1.72em; }
+h2.title { font-size: 1.44em; }
+h3.title { font-size: 1.2em; }
+h4.title, h5.title, h6.title, h7.title { font-size: 1em; }
+.block { margin-top: 1em; }
+.block .block-first { margin-top: 0; }
+.block-indent {
+  margin-left left: 1.72em;
+  margin-: 1em;
+}
+.block-indent .block-indent { margin-left: 0em; margin-right: 0em; }
+td .block-indent  { margin-left: 0em; margin-right: 0em; }
+dd .block-indent  { margin-left: 0em; margin-right: 0em; }
+.block-verbatim { white-space: pre; }
+div.title {
+  margin-bottom: 0.2em;
+  font-weight: bold;
+  color: #3f3f3f;
+}
+div.title-formal { padding-left: 0.2em; padding-right: 0.2em; }
+div.title-formal .label { font-weight: normal; }
+a {
+  color: #1f609f;
+  text-decoration: none;
+}
+a:hover { text-decoration: underline; }
+a:visited { color: #9f1f6f; }
+ul, ol, dl { margin: 0; padding: 0; }
+li {
+  margin-top: 1em;
+  margin-left: 2.4em;
+  padding: 0;
+}
+li.li-first { margin-top: 0; }
+dt { margin: 1em 0 0 0; }
+dt.dt-first { margin: 0; }
+dd {
+  margin-left: 1.72em;
+  margin-top: 0.5em;
+}
+dl.dl-compact dt { margin-top: 0; }
+dl.dl-compact dd { margin-top: 0; margin-bottom: 0; }
+
+
+ul.linktrail {
+  display: block;
+  margin: 0.2em 0 0 0;
+  text-align: right;
+}
+li.linktrail { display: inline; margin: 0; padding: 0; }
+
+li.linktrail::before {
+  content: '  /  ';
+  color: #3f3f3f;
+}
+
+li.linktrail-first::before, li.linktrail-only::before { content: ''; }
+
+
+div.navbar {
+  padding: 0.5em 1em 0.5em 1em;
+  max-width: 60em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.navbar-top { margin-bottom: 1em; }
+div.navbar-bottom { margin-top: 1em; clear: both; }
+div.navbar img { border: 0; vertical-align: -0.4em; }
+table.navbar { width: 100%; margin: 0; border: none; }
+table.navbar td { padding: 0; border: none; }
+td.navbar-next {
+  text-align: right;
+}
+a.navbar-prev::before {
+  
+  content: '◀  ';
+  color: #3f3f3f;
+}
+a.navbar-next::after {
+  
+  content: '  ▶';
+  color: #3f3f3f;
+}
+
+
+div.sidebar {
+  float: right;
+  padding: 0; margin: 0; width: 12em;
+}
+div.sidenav {
+  padding: 0.5em 1em 0 1em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.sidenav div.autotoc {
+  background-color: #ffffff;
+  border: none; padding: 0; margin: 0;
+}
+div.sidenav div.autotoc div.autotoc { margin-top: 0.5em; }
+div.sidenav div.autotoc li { margin-bottom: 0.5em; }
+div.sidenav div.autotoc div.autotoc div.autotoc {
+  margin-left: 1em;
+  margin-top: 0;
+}
+div.sidenav div.autotoc div.autotoc div.autotoc li { margin-bottom: 0; }
+
+
+div.autotoc {
+  
+  display: table;
+  margin-top: 1em;
+  margin-left: 1.72em;
+  padding: 0.5em 1em 0.5em 1em;
+  background-color: #f0f9ff;
+  border: solid 1px #c0c9ff;
+}
+div.autotoc ul { margin: 0; padding: 0; }
+div.autotoc li { list-style-type: none; margin: 0; }
+div.autotoc div.autotoc-title { margin-bottom: 0.5em; }
+div.autotoc div.autotoc { border: none; padding: 0; margin-top: 0; margin-bottom: 0.5em; }
+div.autotoc div.autotoc div.autotoc { margin-bottom: 0; }
+
+
+span.bibliolabel {
+  color: #3f3f3f;
+}
+
+
+div.admonition {
+  padding: 0.5em 6px 0.5em 6px;
+  border: solid 1px #e0e0df;
+  background-color: #fffff0;
+}
+div.caution-inner, div.important-inner, div.note-inner, div.tip-inner, div.warning-inner {
+  padding-left: 60px;
+  background-position: left top;
+  background-repeat: no-repeat;
+  min-height: 48px;
+}
+div.caution-inner { background-image: url("admon-caution.png"); }
+div.important-inner { background-image: url("admon-important.png"); }
+div.note-inner { background-image: url("admon-note.png"); }
+div.note-bug div.note-inner { background-image: url("admon-bug.png"); }
+div.tip-inner { background-image: url("admon-tip.png"); }
+div.warning-inner { background-image: url("admon-warning.png"); }
+div.blockquote {
+  
+  background-image: url('watermark-blockquote-201C.png');
+  background-repeat: no-repeat;
+  background-position: top left;
+  padding: 0.5em;
+  padding-left: 4em;
+}
+div.attribution {
+  margin-top: 0.5em;
+  color: #3f3f3f;
+}
+div.attribution::before {
+  
+  content: '― ';
+}
+div.epigraph {
+  text-align: right;
+  margin-left: 20%;
+  margin-right: 0;
+  color: #3f3f3f;
+}
+div.figure, div.informalfigure {
+  
+  display: table;
+  padding: 0.5em;
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.figure-inner, div.informalfigure-inner {
+  padding: 0.5em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.caption { margin-top: 0.5em; }
+div.programlisting {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.screen {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.screen .prompt {
+  color: #3f3f3f;
+}
+div.screen .userinput {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+div.programlisting .userinput {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+pre.linenumbering {
+  color: #3f3f3f;
+  margin: 0;
+  padding-right: 1em;
+  float: left;
+  text-align: right;
+}
+
+
+
+dl.index dt { margin-top: 0; }
+dl.index dd { margin-top: 0; margin-bottom: 0; }
+dl.indexdiv dt { margin-top: 0; }
+dl.indexdiv dd { margin-top: 0; margin-bottom: 0; }
+dl.setindex dt { margin-top: 0; }
+dl.setindex dd { margin-top: 0; margin-bottom: 0; }
+div.list div.title-formal span.title {
+  border-bottom: solid 1px #e0e0df;
+}
+div.simplelist {
+  margin-left: 1.72em;
+}
+div.simplelist table { margin-left: 0; border: none; }
+div.simplelist td {
+  padding: 0.5em;
+  border-left: solid 1px #e0e0df;
+}
+div.simplelist td.td-first {
+  padding-left: 0;
+  border-left: 0;
+}
+div.synopsis {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border-top: solid 2px #c0c9ff;
+  border-bottom: solid 2px #c0c9ff;
+}
+div.synopsis div.synopsis {
+  padding: 0;
+  border: none;
+}
+div.synopsis div.block { margin-top: 0.2em; }
+div.synopsis div.block-first { margin-top: 0; }
+div.cmdsynopsis { font-family: monospace; }
+
+span.accel { text-decoration: underline; }
+span.acronym { font-family: sans-serif; }
+span.application { font-style: italic; }
+span.classname, span.exceptionname, span.interfacename { font-family: monospace; }
+span.code {
+  font-family: monospace;
+  border: solid 1px #e0e0df;
+  padding-left: 0.2em;
+  padding-right: 0.2em;
+}
+pre span.code { border: none; padding: 0; }
+span.command {
+  font-family: monospace;
+  border: solid 1px #e0e0df;
+  padding-left: 0.2em;
+  padding-right: 0.2em;
+}
+pre span.command { border: none; padding: 0; }
+span.computeroutput { font-family: monospace; }
+
+span.constant { font-family: monospace; }
+span.database { font-family: monospace; }
+span.email { font-family: monospace; }
+span.emphasis { font-style: italic; }
+span.emphasis-bold { font-style: normal; font-weight: bold; }
+span.envar { font-family: monospace; }
+
+span.filename { font-family: monospace; }
+span.firstterm { font-style: italic; }
+span.foreignphrase { font-style: italic; }
+span.function { font-family: monospace; }
+
+dt.glossterm span.glossterm { font-style: normal; }
+
+
+span.glossterm { font-style: italic; }
+
+span.guibutton, span.guilabel, span.guimenu, span.guimenuitem, span.guisubmenu, span.interface {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+span.keycap {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+span.lineannotation { font-style: italic; }
+span.literal { font-family: monospace; }
+span.markup  { font-family: monospace; }
+span.medialabel { font-style: italic; }
+span.methodname { font-family: monospace; }
+span.ooclass, span.ooexception, span.oointerface { font-family: monospace; }
+span.option { font-family: monospace; }
+span.parameter { font-family: monospace; }
+span.paramdef span.parameter { font-style: italic; }
+span.prompt { font-family: monospace; }
+span.property { font-family: monospace; }
+span.replaceable  { font-style: italic; }
+span.returnvalue { font-family: monospace; }
+span.sgmltag { font-family: monospace; }
+span.structfield, span.structname { font-family: monospace; }
+span.symbol { font-family: monospace; }
+span.systemitem { font-family: monospace; }
+span.token { font-family: monospace; }
+span.type { font-family: monospace; }
+span.uri { font-family: monospace; }
+span.userinput { font-family: monospace; }
+span.varname { font-family: monospace; }
+span.wordasword { font-style: italic; }
+
+
+
+div.footnotes { font-style: italic; font-size: 0.8em; }
+div.footnote { margin-top: 1.44em; }
+span.footnote-number { display: inline; padding-right: 0.83em; }
+span.footnote-number + p { display: inline; }
+a.footnote { text-decoration: none; font-size: 0.8em; }
+a.footnote-ref { text-decoration: none; }
+
+span.co {
+  margin-left: 0.2em; margin-right: 0.2em;
+  padding-left: 0.4em; padding-right: 0.4em;
+  border: solid 1px #000000;
+  -moz-border-radius: 8px;
+  background-color: #000000;
+  color: #FFFFFF;
+  font-size: 8px;
+}
+span.co:hover {
+  border-color: #333333;
+  background-color: #333333;
+  color: #FFFFFF;
+}
+span.co a { text-decoration: none; }
+span.co a:hover { text-decoration: none; }
+
+dt.question { margin-left: 0em; }
+dt.question div.label { float: left; }
+dd + dt.question { margin-top: 1em; }
+dd.answer {
+  margin-top: 1em;
+  margin-left: 2em;
+  margin-right: 1em;
+}
+dd.answer div.label { float: left; }
+</style>
+</head>
+<body>
+<div class="navbar navbar-top"><table class="navbar"><tr>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideOptionsImage.html" title="Image Options">Image Options</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></td>
+</tr></table></div>
+<div class="sidebar"><div class="sidenav"><div class="autotoc"><ul>
+<li><a href="GuideIndex-info.html" title="About This Document">About This Document</a></li>
+<li>
+<a class="xref" href="GuideIndex.html" title="The Geeqie User Manual">The Geeqie User Manual</a><div class="autotoc"><ul>
+<li><a class="xref" href="GuideIntroduction.html" title="Introduction">Introduction</a></li>
+<li><a class="xref" href="GuideMainWindow.html" title="Main Window">Main Window</a></li>
+<li><a class="xref" href="GuideSidebars.html" title="Sidebars">Sidebars</a></li>
+<li><a class="xref" href="GuideOtherWindows.html" title="Stand-alone Windows">Stand-alone Windows</a></li>
+<li><a class="xref" href="GuideImageSearch.html" title="Search and Select">Search and Select</a></li>
+<li><a class="xref" href="GuideImageManagementPlugins.html" title="Plugins">Plugins</a></li>
+<li><a class="xref" href="GuideImageManagement.html" title="File Management">File Management</a></li>
+<li><a class="xref" href="GuideColorManagement.html" title="Color Management">Color Management</a></li>
+<li><a class="xref" href="GuideImagePresentation.html" title="Image Presentation">Image Presentation</a></li>
+<li><a class="xref" href="GuidePrinting.html" title="Printing">Printing</a></li>
+<li>
+<a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
+<li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
+<li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li>OverlayScreen Display</li>
+<li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
+<li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
+<li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
+<li><a class="xref" href="GuideOptionsMetadata.html" title="Metadata">Metadata</a></li>
+<li><a class="xref" href="GuideOptionsKeywords.html" title="Keywords">Keywords</a></li>
+<li><a class="xref" href="GuideOptionsColor.html" title="Color management options">Color management options</a></li>
+<li><a class="xref" href="GuideOptionsStereo.html" title="Stereo image management">Stereo image management</a></li>
+<li><a class="xref" href="GuideOptionsBehavior.html" title="Behavior Options">Behavior Options</a></li>
+<li><a class="xref" href="GuideOptionsToolbar.html" title="Toolbar">Toolbar</a></li>
+</ul></div>
+</li>
+<li><a class="xref" href="GuideOptionsAdditional.html" title="Additional Preferences">Additional Preferences</a></li>
+<li><a class="xref" href="GuideReference.html" title="Reference">Reference</a></li>
+<li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
+<li><a class="xref" href="GuideLicence.html" title="Licence">Licence</a></li>
+<li><a class="xref" href="GuideCredits.html" title="Credits">Credits</a></li>
+<li><a class="xref" href="GuideGnuFdl.html" title="GNU Free Documentation License">GNU Free Documentation License</a></li>
+</ul></div>
+</li>
+</ul></div></div></div>
+<div class="body body-sidebar"><div class="division section">
+<a name="GuideOptionsOSD"></a><div class="header"><h1 class="section title"><span class="title">OverlayScreen Display</span></h1></div>
+<ul class="linktrail">
+<li class="linktrail linktrail-first"><a class="linktrail" href="GuideIndex.html" title="The Geeqie User Manual">The Geeqie User Manual</a></li>
+<li class="linktrail linktrail-last"><a class="linktrail" href="GuideOptionsMain.html" title="Preferences">Preferences</a></li>
+</ul>
+<p class="para block block-first">This section describes the options presented under the OSD Tab of the preferences dialog.</p>
+<div class="autotoc"><ul><li>
+<span class="label">11.3.1. </span><a class="xref" href="GuideOptionsOSD.html#OverlayScreenDisplay" title="Overlay Screen Display">Overlay Screen Display</a>
+</li></ul></div>
+<div class="division section">
+<a name="OverlayScreenDisplay"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.3.1. </span>Overlay Screen Display</span></h2></div>
+<p class="para block block-first">The contents of the Overlay Screen Display is defined by the Image Overlay Template. This template is easily customised to  display a wide range of data.</p>
+<p class="para block">
+      The format of each entry is:
+      <div dir="ltr" class=" block programlisting block-indent block-first"><pre class="programlisting">%tag[:max_length][:extra]%</pre></div>
+    </p>
+<div class="table block block-indent"><table style="border: solid 1px;"><tbody>
+<tr>
+<td class="td-colsep td-rowsep">
+              <span class="emphasis emphasis-bold">Tag</span>
+            </td>
+<td class="td-rowsep">
+              <span class="emphasis emphasis-bold">Replaced by</span>
+            </td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">name</td>
+<td class="td-rowsep">Filename of the picture</td>
+</tr>
+<tr>
+<td class="td-colsep td-rowsep">collection</td>
+<td class="td-rowsep">Name of the collection</td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">number</td>
+<td class="td-rowsep">Current number of image in the list</td>
+</tr>
+<tr>
+<td class="td-colsep td-rowsep">total</td>
+<td class="td-rowsep">Total number of images</td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">date</td>
+<td class="td-rowsep">File date</td>
+</tr>
+<tr>
+<td class="td-colsep td-rowsep">size</td>
+<td class="td-rowsep">File size</td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">width</td>
+<td class="td-rowsep">Image width</td>
+</tr>
+<tr>
+<td class="td-colsep td-rowsep">height</td>
+<td class="td-rowsep">Image height</td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">res</td>
+<td class="td-rowsep">Image resolution</td>
+</tr>
+<tr>
+<td class="td-colsep td-rowsep">keywords</td>
+<td class="td-rowsep">Image keywords from metadata</td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">comment</td>
+<td class="td-rowsep">Image comment from XMP metadata</td>
+</tr>
+<tr>
+<td class="td-colsep td-rowsep">imagecomment</td>
+<td class="td-rowsep">JPEG image comment</td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">rating</td>
+<td class="td-rowsep">Image rating</td>
+</tr>
+<tr>
+<td class="td-colsep td-rowsep">&lt;meta_tag&gt;</td>
+<td class="td-rowsep">The Exif, XMP, or IPTC tag from metadata</td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">lua/&lt;lua_script&gt;/</td>
+<td class="td-rowsep">The output of a Lua script file</td>
+</tr>
+<tr>
+<td class="td-colsep">lua//&lt;lua_command&gt;</td>
+<td>The output of a Lua command</td>
+</tr>
+</tbody></table></div>
+<p class="para block">
+      As an aide, in addition to standard metadata tags, Geeqie provides a number of
+      <a class="link" href="GuideSidebarsInfo.html#formatted_exif" title="">pre-formatted tags</a>
+      .
+    </p>
+<p class="para block">Examples of usage are:</p>
+<p class="para block">
+      <div dir="ltr" class=" block programlisting block-indent block-first"><pre class="programlisting">        %keywords%
+        %Exif.Photo.DateTimeOriginal%
+        %lua/jpeg_comment.lua/:12%
+        %lua//return(os.date())%
+      </pre></div>
+    </p>
+<p class="para block">
+      Refer to
+      <a class="link" href="GuideReferenceLua.html" title="Lua Extensions">Lua Extensions</a>
+      for further information.
+    </p>
+<p class="para block">
+      The length of displayed data can be limited by using the
+      <span class="emphasis">:max_length</span>
+      parameter. The following example will truncate the displayed data to 20 characters and will add 3 dots at the end to denote the truncation.
+      <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">%formatted.Camera:20%</pre></div>
+    </p>
+<p class="para block">
+      If two or more variables are connected with the
+      <span class="code" dir="ltr">|</span>
+      character, the variables are displayed with a separator. For example::
+      <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%|%formatted.FocalLength%</pre></div>
+      could show:
+      <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">"1/20s - 400 - 80 mm"</pre></div>
+      Or, if there is no ISO information in the Exif data:
+      <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">"1/200 - 80 mm"</pre></div>
+    </p>
+<p class="para block">If there is no data for a requested tag, the line is not displayed.</p>
+<p class="para block">
+      The
+      <span class="emphasis">:extra</span>
+      parameter may be used to format the output by prepending and appending a text string to the displayed item.
+    </p>
+<p class="para block">
+      The special character
+      <span class="code" dir="ltr">*</span>
+      is used to mark the position of the Tag data item. If no
+      <span class="code" dir="ltr">*</span>
+      is present, the extra string is just appended to the standard data displayed. Any "\n" is replaced by a newline on display.
+      <a class="link" href="GuideReferenceStandards.html" title="Standards">Pango mark up</a>
+      is accepted in both left and right parts. If the data item is empty, nothing will be displayed.
+    </p>
+<p class="para block">Examples:</p>
+<div class="table block block-indent"><table style="border: solid 1px;"><tbody>
+<tr>
+<td class="td-colsep td-rowsep">
+              <span class="emphasis emphasis-bold">Template</span>
+            </td>
+<td class="td-rowsep">
+              <span class="emphasis emphasis-bold">Example display</span>
+            </td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">
+              %name:
+              &lt;i&gt;*&lt;/i&gt;\n%
+            </td>
+<td class="td-rowsep">
+              <span class="emphasis">filename001.jpg</span>
+            </td>
+</tr>
+<tr>
+<td class="td-colsep td-rowsep">%size:\n%</td>
+<td class="td-rowsep">123456</td>
+</tr>
+<tr class="tr-shade">
+<td class="td-colsep td-rowsep">%formatted.ISOSpeedRating:ISO *%</td>
+<td class="td-rowsep">ISO 100</td>
+</tr>
+<tr>
+<td class="td-colsep">
+              %collection:Collection:
+              &lt;b&gt;*&lt;/b&gt;
+              \n%
+            </td>
+<td>
+              Collection:
+              <span class="emphasis emphasis-bold">my_new_collection</span>
+            </td>
+</tr>
+</tbody></table></div>
+<p class="para block"></p>
+<div class="block list variablelist"><dl class="variablelist">
+<dt class="term dt-first">
+          <span class="guibutton">
+            <span class="guiicon">
+              <span class="inlinegraphic"><img src="preferences-desktop-font.png"></span>
+            </span>
+          </span>
+          <span class="guilabel">Font</span>
+          ,
+          <span class="guibutton">
+            <span class="guiicon">
+              <span class="inlinegraphic"><img src="gtk-color-picker.png"></span>
+            </span>
+          </span>
+          <span class="guilabel">Text</span>
+          ,
+          <span class="guibutton">
+            <span class="guiicon">
+              <span class="inlinegraphic"><img src="gtk-color-picker.png"></span>
+            </span>
+          </span>
+          <span class="guilabel">Background</span>
+        </dt>
+<dd>The font used for the Overlay Screen Display, as well as the font colour and background colour, may be set via these buttons. Colour transparency can also be set.</dd>
+</dl></div>
+<div class="block list variablelist"><dl class="variablelist">
+<dt class="term dt-first">
+          <span class="guibutton">
+            <span class="guiicon">
+              <span class="inlinegraphic"><img src="help-contents.png"></span>
+            </span>
+          </span>
+          <span class="guilabel">Help</span>
+        </dt>
+<dd>
+          <p class="para block block-first">Show syntax help</p>
+        </dd>
+</dl></div>
+<div class="block list variablelist"><dl class="variablelist">
+<dt class="term dt-first">
+          <span class="guilabel">Defaults</span>
+        </dt>
+<dd>
+          <p class="para block block-first">Restore default image overlay template</p>
+        </dd>
+</dl></div>
+</div>
+</div></div>
+<div class="navbar navbar-bottom"><table class="navbar"><tr>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideOptionsImage.html" title="Image Options">Image Options</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></td>
+</tr></table></div>
+</body>
+</html>
--- a/web/help/GuideOptionsStereo.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsStereo.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
--- a/web/help/GuideOptionsToolbar.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsToolbar.html	Sat Oct 06 10:28:02 2018 +0100
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li><a class="xref" href="GuideOptionsWindow.html" title="Window Options">Window Options</a></li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
--- a/web/help/GuideOptionsWindow.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideOptionsWindow.html	Sat Oct 06 10:28:02 2018 +0100
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Window Options</title>
-<link rel="previous" href="GuideOptionsImage.html" title="Image Options">
+<link rel="previous" href="GuideOptionsOSD.html" title="OverlayScreen Display">
 <link rel="next" href="GuideOptionsKeyboard.html" title="Keyboard Options">
 <link rel="top" href="GuideIndex.html" title="The Geeqie User Manual">
 <style type="text/css">
@@ -410,7 +410,7 @@
 </head>
 <body>
 <div class="navbar navbar-top"><table class="navbar"><tr>
-<td class="navbar-prev"><a class="navbar-prev" href="GuideOptionsImage.html" title="Image Options">Image Options</a></td>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></td>
 <td class="navbar-next"><a class="navbar-next" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></td>
 </tr></table></div>
 <div class="sidebar"><div class="sidenav"><div class="autotoc"><ul>
@@ -431,6 +431,7 @@
 <a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a><div class="autotoc"><ul>
 <li><a class="xref" href="GuideOptionsGeneral.html" title="General Options">General Options</a></li>
 <li><a class="xref" href="GuideOptionsImage.html" title="Image Options">Image Options</a></li>
+<li><a class="xref" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></li>
 <li>Window Options</li>
 <li><a class="xref" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></li>
 <li><a class="xref" href="GuideOptionsFiltering.html" title="Files Options">Files Options</a></li>
@@ -460,20 +461,17 @@
 <p class="para block block-first">This section describes the options presented under the Windows Tab of the preferences dialog.</p>
 <div class="autotoc"><ul>
 <li>
-<span class="label">11.3.1. </span><a class="xref" href="GuideOptionsWindow.html#State" title="State">State</a>
+<span class="label">11.4.1. </span><a class="xref" href="GuideOptionsWindow.html#State" title="State">State</a>
 </li>
 <li>
-<span class="label">11.3.2. </span><a class="xref" href="GuideOptionsWindow.html#Size" title="Size">Size</a>
+<span class="label">11.4.2. </span><a class="xref" href="GuideOptionsWindow.html#Size" title="Size">Size</a>
 </li>
 <li>
-<span class="label">11.3.3. </span><a class="xref" href="GuideOptionsWindow.html#FullScreen" title="Full Screen">Full Screen</a>
-</li>
-<li>
-<span class="label">11.3.4. </span><a class="xref" href="GuideOptionsWindow.html#OverlayScreenDisplay" title="Overlay Screen Display">Overlay Screen Display</a>
+<span class="label">11.4.3. </span><a class="xref" href="GuideOptionsWindow.html#FullScreen" title="Full Screen">Full Screen</a>
 </li>
 </ul></div>
 <div class="division section">
-<a name="State"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.3.1. </span>State</span></h2></div>
+<a name="State"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.4.1. </span>State</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
           <span class="guilabel">Remember window positions</span>
@@ -532,7 +530,7 @@
 </dl></div>
 </div>
 <div class="division section">
-<a name="Size"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.3.2. </span>Size</span></h2></div>
+<a name="Size"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.4.2. </span>Size</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
           <span class="guilabel">Fit window to image when tools are hidden/floating</span>
@@ -551,7 +549,7 @@
 </dl></div>
 </div>
 <div class="division section">
-<a name="FullScreen"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.3.3. </span>Full Screen</span></h2></div>
+<a name="FullScreen"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.4.3. </span>Full Screen</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
           <span class="guilabel">Location</span>
@@ -581,226 +579,9 @@
         </dd>
 </dl></div>
 </div>
-<div class="division section">
-<a name="OverlayScreenDisplay"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.3.4. </span>Overlay Screen Display</span></h2></div>
-<p class="para block block-first">The contents of the Overlay Screen Display is defined by the Image Overlay Template. This template is easily customised to  display a wide range of data.</p>
-<p class="para block">
-      The format of each entry is:
-      <div dir="ltr" class=" block programlisting block-indent block-first"><pre class="programlisting">%tag[:max_length][:extra]%</pre></div>
-    </p>
-<div class="table block block-indent"><table style="border: solid 1px;"><tbody>
-<tr>
-<td class="td-colsep td-rowsep">
-              <span class="emphasis emphasis-bold">Tag</span>
-            </td>
-<td class="td-rowsep">
-              <span class="emphasis emphasis-bold">Replaced by</span>
-            </td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">name</td>
-<td class="td-rowsep">Filename of the picture</td>
-</tr>
-<tr>
-<td class="td-colsep td-rowsep">collection</td>
-<td class="td-rowsep">Name of the collection</td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">number</td>
-<td class="td-rowsep">Current number of image in the list</td>
-</tr>
-<tr>
-<td class="td-colsep td-rowsep">total</td>
-<td class="td-rowsep">Total number of images</td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">date</td>
-<td class="td-rowsep">File date</td>
-</tr>
-<tr>
-<td class="td-colsep td-rowsep">size</td>
-<td class="td-rowsep">File size</td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">width</td>
-<td class="td-rowsep">Image width</td>
-</tr>
-<tr>
-<td class="td-colsep td-rowsep">height</td>
-<td class="td-rowsep">Image height</td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">res</td>
-<td class="td-rowsep">Image resolution</td>
-</tr>
-<tr>
-<td class="td-colsep td-rowsep">keywords</td>
-<td class="td-rowsep">Image keywords from metadata</td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">comment</td>
-<td class="td-rowsep">Image comment from XMP metadata</td>
-</tr>
-<tr>
-<td class="td-colsep td-rowsep">imagecomment</td>
-<td class="td-rowsep">JPEG image comment</td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">rating</td>
-<td class="td-rowsep">Image rating</td>
-</tr>
-<tr>
-<td class="td-colsep td-rowsep">&lt;meta_tag&gt;</td>
-<td class="td-rowsep">The Exif, XMP, or IPTC tag from metadata</td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">lua/&lt;lua_script&gt;/</td>
-<td class="td-rowsep">The output of a Lua script file</td>
-</tr>
-<tr>
-<td class="td-colsep">lua//&lt;lua_command&gt;</td>
-<td>The output of a Lua command</td>
-</tr>
-</tbody></table></div>
-<p class="para block">
-      As an aide, in addition to standard metadata tags, Geeqie provides a number of
-      <a class="link" href="GuideSidebarsInfo.html#formatted_exif" title="">pre-formatted tags</a>
-      .
-    </p>
-<p class="para block">Examples of usage are:</p>
-<p class="para block">
-      <div dir="ltr" class=" block programlisting block-indent block-first"><pre class="programlisting">        %keywords%
-        %Exif.Photo.DateTimeOriginal%
-        %lua/jpeg_comment.lua/:12%
-        %lua//return(os.date())%
-      </pre></div>
-    </p>
-<p class="para block">
-      Refer to
-      <a class="link" href="GuideReferenceLua.html" title="Lua Extensions">Lua Extensions</a>
-      for further information.
-    </p>
-<p class="para block">
-      The length of displayed data can be limited by using the
-      <span class="emphasis">:max_length</span>
-      parameter. The following example will truncate the displayed data to 20 characters and will add 3 dots at the end to denote the truncation.
-      <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">%formatted.Camera:20%</pre></div>
-    </p>
-<p class="para block">
-      If two or more variables are connected with the
-      <span class="code" dir="ltr">|</span>
-      character, the variables are displayed with a separator. For example::
-      <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%|%formatted.FocalLength%</pre></div>
-      could show:
-      <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">"1/20s - 400 - 80 mm"</pre></div>
-      Or, if there is no ISO information in the Exif data:
-      <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">"1/200 - 80 mm"</pre></div>
-    </p>
-<p class="para block">If there is no data for a requested tag, the line is not displayed.</p>
-<p class="para block">
-      The
-      <span class="emphasis">:extra</span>
-      parameter may be used to format the output by prepending and appending a text string to the displayed item.
-    </p>
-<p class="para block">
-      The special character
-      <span class="code" dir="ltr">*</span>
-      is used to mark the position of the Tag data item. If no
-      <span class="code" dir="ltr">*</span>
-      is present, the extra string is just appended to the standard data displayed. Any "\n" is replaced by a newline on display.
-      <a class="link" href="GuideReferenceStandards.html" title="Standards">Pango mark up</a>
-      is accepted in both left and right parts. If the data item is empty, nothing will be displayed.
-    </p>
-<p class="para block">Examples:</p>
-<div class="table block block-indent"><table style="border: solid 1px;"><tbody>
-<tr>
-<td class="td-colsep td-rowsep">
-              <span class="emphasis emphasis-bold">Template</span>
-            </td>
-<td class="td-rowsep">
-              <span class="emphasis emphasis-bold">Example display</span>
-            </td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">
-              %name:
-              &lt;i&gt;*&lt;/i&gt;\n%
-            </td>
-<td class="td-rowsep">
-              <span class="emphasis">filename001.jpg</span>
-            </td>
-</tr>
-<tr>
-<td class="td-colsep td-rowsep">%size:\n%</td>
-<td class="td-rowsep">123456</td>
-</tr>
-<tr class="tr-shade">
-<td class="td-colsep td-rowsep">%formatted.ISOSpeedRating:ISO *%</td>
-<td class="td-rowsep">ISO 100</td>
-</tr>
-<tr>
-<td class="td-colsep">
-              %collection:Collection:
-              &lt;b&gt;*&lt;/b&gt;
-              \n%
-            </td>
-<td>
-              Collection:
-              <span class="emphasis emphasis-bold">my_new_collection</span>
-            </td>
-</tr>
-</tbody></table></div>
-<p class="para block"></p>
-<div class="block list variablelist"><dl class="variablelist">
-<dt class="term dt-first">
-          <span class="guibutton">
-            <span class="guiicon">
-              <span class="inlinegraphic"><img src="preferences-desktop-font.png"></span>
-            </span>
-          </span>
-          <span class="guilabel">Font</span>
-          ,
-          <span class="guibutton">
-            <span class="guiicon">
-              <span class="inlinegraphic"><img src="gtk-color-picker.png"></span>
-            </span>
-          </span>
-          <span class="guilabel">Text</span>
-          ,
-          <span class="guibutton">
-            <span class="guiicon">
-              <span class="inlinegraphic"><img src="gtk-color-picker.png"></span>
-            </span>
-          </span>
-          <span class="guilabel">Background</span>
-        </dt>
-<dd>The font used for the Overlay Screen Display, as well as the font colour and background colour, may be set via these buttons. Colour transparency can also be set.</dd>
-</dl></div>
-<div class="block list variablelist"><dl class="variablelist">
-<dt class="term dt-first">
-          <span class="guibutton">
-            <span class="guiicon">
-              <span class="inlinegraphic"><img src="help-contents.png"></span>
-            </span>
-          </span>
-          <span class="guilabel">Help</span>
-        </dt>
-<dd>
-          <p class="para block block-first">Show syntax help</p>
-        </dd>
-</dl></div>
-<div class="block list variablelist"><dl class="variablelist">
-<dt class="term dt-first">
-          <span class="guilabel">Defaults</span>
-        </dt>
-<dd>
-          <p class="para block block-first">Restore default image overlay template</p>
-        </dd>
-</dl></div>
-</div>
 </div></div>
 <div class="navbar navbar-bottom"><table class="navbar"><tr>
-<td class="navbar-prev"><a class="navbar-prev" href="GuideOptionsImage.html" title="Image Options">Image Options</a></td>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideOptionsOSD.html" title="OverlayScreen Display">OverlayScreen Display</a></td>
 <td class="navbar-next"><a class="navbar-next" href="GuideOptionsKeyboard.html" title="Keyboard Options">Keyboard Options</a></td>
 </tr></table></div>
 </body>
--- a/web/help/GuideReferenceConfig.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideReferenceConfig.html	Sat Oct 06 10:28:02 2018 +0100
@@ -462,7 +462,7 @@
 </ul>
 <p class="para block block-first">The following data lists the locations Geeqie uses for various actions. The uppercase symbols are environment variables. If they are not set on your system the fallback locations are listed in parentheses.</p>
 <p class="para block">
-    Geqqie will first attempt to load a configuration file from:
+    Geeqie will first attempt to load a configuration file from:
     <div dir="ltr" class=" block programlisting block-indent block-first"><pre class="programlisting">/etc/geeqie/geeqierc.xml</pre></div>
   </p>
 <p class="para block">It will then continue with the following locations.</p>
--- a/web/help/GuideReferenceLua.html	Fri Oct 05 18:30:47 2018 -0700
+++ b/web/help/GuideReferenceLua.html	Sat Oct 06 10:28:02 2018 +0100
@@ -462,7 +462,7 @@
 </ul>
 <p class="para block block-first">
     Lua scripts allow the functionality of Geeqie to be extended. Lua scripts may only be used in conjunction with the
-    <a class="link" href="GuideOptionsWindow.html#OverlayScreenDisplay" title="Overlay Screen Display">Overlay Screen Display</a>
+    <a class="link" href="GuideOptionsOSD.html#OverlayScreenDisplay" title="Overlay Screen Display">Overlay Screen Display</a>
     and the
     <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">geeqie --remote --lua:</pre></div>
     command line option.
@@ -500,7 +500,7 @@
     </p>
 <p class="para block">
       A link to a Lua script must be inserted into the overlay template. Refer to the
-      <a class="link" href="GuideOptionsWindow.html#OverlayScreenDisplay" title="Overlay Screen Display">Overlay Screen Display</a>
+      <a class="link" href="GuideOptionsOSD.html#OverlayScreenDisplay" title="Overlay Screen Display">Overlay Screen Display</a>
       section of Window Options.
     </p>
 <p class="para block">The full extent of the Lua language is available.</p>