https://gitlab.gnome.org/GNOME/dasher/merge_requests/2

commit 250a6403e35d7b51559aad044fbcccbbdfcdc333
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Fri Dec 27 23:49:07 2019 +0100

    migrate from gnome-doc-utils to yelp

---
 Data/Help/Gnome/C/dasher.xml       | 1309 ------------------------------------
 Data/Help/Gnome/C/dasher.xml.in    | 1311 -------------------------------------
 Data/Help/Gnome/C/index.docbook    | 1309 ++++++++++++++++++++++++++++++++++++
 Data/Help/Gnome/C/index.docbook.in | 1311 +++++++++++++++++++++++++++++++++++++
 Data/Help/Gnome/Makefile.am        |   12 
 INSTALL.Linux                      |    2 
 Makefile.am                        |    4 
 Src/Gtk2/dasher_main.cpp           |    2 
 configure.ac                       |   11 
 gnome-doc-utils.make               |  577 ----------------
 m4/README                          |    2 
 m4/gnome-doc-utils.m4              |   61 -
 m4/yelp.m4                         |  219 ++++++
 13 files changed, 2850 insertions(+), 3280 deletions(-)

--- a/Data/Help/Gnome/Makefile.am
+++ b/Data/Help/Gnome/Makefile.am
@@ -1,10 +1,8 @@
-include $(top_srcdir)/gnome-doc-utils.make
-dist-hook: doc-dist-hook
+@YELP_HELP_RULES@
 
-DOC_MODULE = dasher
-DOC_ENTITIES =
-DOC_INCLUDES = 
-DOC_FIGURES = figures/figure2.png \
+HELP_ID = dasher
+HELP_FILES = index.docbook
+HELP_MEDIA = figures/figure2.png \
 	      figures/main.png \
 	      figures/prefs1.png \
 	      figures/prefs2.png \
@@ -20,5 +18,5 @@ DOC_FIGURES = figures/figure2.png \
               figures/exampleHad3a.png \
               figures/exampleHad4.png
 
-DOC_LINGUAS = ca cs de el en_GB es eu fr oc ro ru sl sv zh_CN
+HELP_LINGUAS = ca cs de el en_GB es eu fr oc ro ru sl sv zh_CN
 
--- a/INSTALL.Linux
+++ b/INSTALL.Linux
@@ -17,7 +17,7 @@ based distributions the following can be
 
   packages="g++
             gnome-common
-            gnome-doc-utils
+            yelp-tools
             libatspi2.0-dev
             libgtk-3-dev"
   sudo apt-get install $packages
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,7 +8,7 @@ ACLOCAL_AMFLAGS = -I m4
 distuninstallcheck_listfiles = \
 		find . -type f -print | \
 		grep -v '^\./var/scrollkeeper' | \
-		grep -v '^\./share/gnome/help'
+		grep -v '^\./share/help'
 
 EXTRA_DIST = \
 		INSTALL.Linux \
@@ -18,13 +18,11 @@ EXTRA_DIST = \
 		m4/pkg.m4 \
 		m4/glib-gettext.m4 \
 		m4/dgconf-2.m4 \
-		m4/gnome-doc-utils.m4 \
 		m4/intltool.m4 \
 		m4/nls.m4 \
 		intltool-merge.in \
 		intltool-extract.in \
 		intltool-update.in \
-		gnome-doc-utils.make \
 		.tarball-version \
 		build-aux/mkversion
 
--- a/configure.ac
+++ b/configure.ac
@@ -73,7 +73,7 @@ AC_ARG_WITH([gnome],
 	else
 	  WITHGNOME=true
 	  # Need to work out how to translate replaced variables before uncommenting
-	  # AC_CONFIG_FILES([Data/Help/Gnome/C/dasher.xml])
+	  # AC_CONFIG_FILES([Data/Help/Gnome/C/index.docbook])
 	fi, 
 	WITHGNOME=true)
 
@@ -430,14 +430,7 @@ GTKBUILD_LIBS="$X_LIBS $GTK_LIBS $GIO_LI
 AC_SUBST(GTKBUILD_CFLAGS)
 AC_SUBST(GTKBUILD_LIBS)
 
-AC_MSG_CHECKING([for gnome-doc-utils])
-dnl Avoid default action which is to complain if not found
-GNOME_DOC_INIT([0.9.0],[gdu_cv_have_gdu=yes],[gdu_cv_have_gdu=no])
-AC_MSG_RESULT($gdu_cv_have_gdu)
-
-if test x"$WITHGNOME" = xtrue -a x"$gdu_cv_have_gdu" = xno ; then
-    AC_MSG_ERROR([gnome-doc-utils not found!])
-fi
+YELP_HELP_INIT
 
 dnl XXX PRLW How is this better than the standard
 dnl gdu_cv_have_gdu && enable_scrollkeeper ?
--- a/gnome-doc-utils.make
+++ /dev/null
@@ -1,577 +0,0 @@
-# gnome-doc-utils.make - make magic for building documentation
-# Copyright (C) 2004-2005 Shaun McCance <shaunm@gnome.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-################################################################################
-## @@ Generating Header Files
-
-## @ DOC_H_FILE
-## The name of the header file to generate
-DOC_H_FILE ?=
-
-## @ DOC_H_DOCS
-## The input DocBook files for generating the header file
-DOC_H_DOCS ?=
-
-$(DOC_H_FILE): $(DOC_H_DOCS);
-	@rm -f $@.tmp; touch $@.tmp;
-	echo 'const gchar* documentation_credits[] = {' >> $@.tmp
-	list='$(DOC_H_DOCS)'; for doc in $$list; do \
-	  xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
-	  if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
-	  xsltproc --path "$$xmlpath" $(_credits) $$doc; \
-	done | sort | uniq \
-	  | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \
-	  | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp
-	echo '	NULL' >> $@.tmp
-	echo '};' >> $@.tmp
-	echo >> $@.tmp
-	list='$(DOC_H_DOCS)'; for doc in $$list; do \
-	  xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
-	  if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
-	  docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \
-	    | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \
-	  echo $$xmlpath; \
-	  ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
-	  for id in $$ids; do \
-	    echo '#define HELP_'`echo $$docid`'_'`echo $$id \
-	      | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \
-	  done; \
-	  echo >> $@.tmp; \
-	done;
-	cp $@.tmp $@ && rm -f $@.tmp
-
-dist-check-gdu:
-if !HAVE_GNOME_DOC_UTILS
-	@echo "*** GNOME Doc Utils must be installed in order to make dist"
-	@false
-endif
-
-.PHONY: dist-doc-header
-dist-doc-header: $(DOC_H_FILE)
-	@if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \
-	echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \
-	$(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)";
-
-doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header)
-
-.PHONY: clean-doc-header
-_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header)
-clean-local: $(_clean_doc_header)
-distclean-local: $(_clean_doc_header)
-mostlyclean-local: $(_clean_doc_header)
-maintainer-clean-local: $(_clean_doc_header)
-clean-doc-header:
-	rm -f $(DOC_H_FILE)
-
-all: $(DOC_H_FILE)
-
-
-################################################################################
-## @@ Generating Documentation Files
-
-## @ DOC_MODULE
-## The name of the document being built
-DOC_MODULE ?=
-
-## @ DOC_ENTITIES
-## Files included with a SYSTEM entity
-DOC_ENTITIES ?=
-
-## @ DOC_INCLUDES
-## Files included with XInclude
-DOC_INCLUDES ?=
-
-## @ DOC_FIGURES
-## Figures and other external data
-DOC_FIGURES ?=
-
-## @ DOC_FORMATS
-## The default formats to be built and installed
-DOC_FORMATS ?= docbook
-_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS))
-
-## @ DOC_LINGUAS
-## The languages this document is translated into
-DOC_LINGUAS ?=
-_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),		\
-	$(filter $(LINGUAS),$(DOC_LINGUAS)),					\
-	$(DOC_LINGUAS))
-
-_DOC_ABS_SRCDIR = @abs_srcdir@
-
-
-################################################################################
-## Variables for Bootstrapping
-
-_xml2po ?= `which xml2po`
-
-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
-_db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
-_chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
-_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
-
-if ENABLE_SK
-_ENABLE_SK = true
-_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir`
-_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir`
-_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml
-endif
-
-
-################################################################################
-## @@ Rules for OMF Files
-
-db2omf_args =									\
-	--stringparam db2omf.basename $(DOC_MODULE)				\
-	--stringparam db2omf.format $(3)					\
-	--stringparam db2omf.dtd						\
-	$(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 		\
-		| sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/')			\
-	--stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2)))	\
-	--stringparam db2omf.omf_dir "$(OMF_DIR)"				\
-	--stringparam db2omf.help_dir "$(HELP_DIR)"				\
-	--stringparam db2omf.omf_in "$(_DOC_OMF_IN)"				\
-	$(if $(_ENABLE_SK),							\
-	  --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)")		\
-	$(_db2omf) $(2)
-
-## @ _DOC_OMF_IN
-## The OMF input file
-_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in))
-
-## @ _DOC_OMF_DB
-## The OMF files for DocBook output
-_DOC_OMF_DB = $(if $(_DOC_OMF_IN),						\
-	$(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf))
-
-$(_DOC_OMF_DB) : $(_DOC_OMF_IN)
-$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml
-	@test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {	\
-	  echo "The file '$(_skcontentslist)' does not exist." >&2;		\
-	  echo "Please check your ScrollKeeper installation." >&2;		\
-	  exit 1; }
-	xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
-
-## @ _DOC_OMF_HTML
-## The OMF files for HTML output
-_DOC_OMF_HTML = $(if $(_DOC_OMF_IN),						\
-	$(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf))
-
-$(_DOC_OMF_HTML) : $(_DOC_OMF_IN)
-$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml
-if ENABLE_SK
-	@test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || {	\
-	  echo "The file '$(_skcontentslist)' does not exist" >&2;		\
-	  echo "Please check your ScrollKeeper installation." >&2;		\
-	  exit 1; }
-endif
-	xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
-
-## @ _DOC_OMF_ALL
-## All OMF output files to be built
-# FIXME
-_DOC_OMF_ALL =									\
-	$(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB))		\
-	$(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML))
-
-.PHONY: omf
-omf: $(_DOC_OMF_ALL)
-
-
-################################################################################
-## @@ C Locale Documents
-
-## @ _DOC_C_MODULE
-## The top-level documentation file in the C locale
-_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml)
-
-## @ _DOC_C_ENTITIES
-## Files included with a SYSTEM entity in the C locale
-_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent))
-
-## @ _DOC_C_XINCLUDES
-## Files included with XInclude in the C locale
-_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc))
-
-## @ _DOC_C_DOCS
-## All documentation files in the C locale
-_DOC_C_DOCS =								\
-	$(_DOC_C_ENTITIES)	$(_DOC_C_INCLUDES)			\
-	$(_DOC_C_MODULE)
-
-## @ _DOC_C_DOCS_NOENT
-## All documentation files in the C locale,
-## except files included with a SYSTEM entity
-_DOC_C_DOCS_NOENT =							\
-	$(_DOC_C_MODULE)	$(_DOC_C_INCLUDES)
-
-## @ _DOC_C_FIGURES
-## All figures and other external data in the C locale
-_DOC_C_FIGURES = $(if $(DOC_FIGURES),					\
-	$(foreach fig,$(DOC_FIGURES),C/$(fig)),				\
-	$(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png)))
-
-## @ _DOC_C_HTML
-## All HTML documentation in the C locale
-# FIXME: probably have to shell escape to determine the file names
-_DOC_C_HTML = $(foreach f,						\
-	$(shell xsltproc --xinclude 					\
-	  --stringparam db.chunk.basename "$(DOC_MODULE)"		\
-	  $(_chunks) "C/$(DOC_MODULE).xml"),				\
-	C/$(f).xhtml)
-
-###############################################################################
-## @@ Other Locale Documentation
-
-## @ _DOC_POFILES
-## The .po files used for translating the document
-_DOC_POFILES = $(if $(DOC_MODULE),						\
-	$(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po))
-
-.PHONY: po
-po: $(_DOC_POFILES)
-
-## @ _DOC_LC_MODULES
-## The top-level documentation files in all other locales
-_DOC_LC_MODULES = $(if $(DOC_MODULE),						\
-	$(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml))
-
-## @ _DOC_LC_XINCLUDES
-## Files included with XInclude in all other locales
-_DOC_LC_INCLUDES =								\
-	$(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES),	\
-		$(lc)/$(notdir $(inc)) ))
-
-## @ _DOC_LC_HTML
-## All HTML documentation in all other locales
-# FIXME: probably have to shell escape to determine the file names
-_DOC_LC_HTML =									\
-	$(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML),		\
-		$(lc)/$(notdir $(doc)) ))
-
-## @ _DOC_LC_DOCS
-## All documentation files in all other locales
-_DOC_LC_DOCS =									\
-	$(_DOC_LC_MODULES)	$(_DOC_LC_INCLUDES)				\
-	$(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML))
-
-## @ _DOC_LC_FIGURES
-## All figures and other external data in all other locales
-_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS),				\
-	$(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) )
-
-_DOC_SRC_FIGURES =								\
-	$(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS),	\
-		$(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) ))
-
-$(_DOC_POFILES):
-	@if ! test -d $(dir $@); then \
-	  echo "mkdir $(dir $@)"; \
-	  mkdir "$(dir $@)"; \
-	fi
-	@if test ! -f $@ -a -f $(srcdir)/$@; then \
-	  echo "cp $(srcdir)/$@ $@"; \
-	  cp "$(srcdir)/$@" "$@"; \
-	fi;
-	@docs=; \
-	list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \
-	  docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \
-	done; \
-	if ! test -f $@; then \
-	  echo "(cd $(dir $@) && \
-	    $(_xml2po) -e $$docs > $(notdir $@).tmp && \
-	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \
-	  (cd $(dir $@) && \
-	    $(_xml2po) -e $$docs > $(notdir $@).tmp && \
-	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \
-	else \
-	  echo "(cd $(dir $@) && \
-	    $(_xml2po) -e -u $(notdir $@) $$docs)"; \
-	  (cd $(dir $@) && \
-	    $(_xml2po) -e -u $(notdir $@) $$docs); \
-	fi
-
-# FIXME: fix the dependancy
-# FIXME: hook xml2po up
-$(_DOC_LC_DOCS) : $(_DOC_POFILES)
-$(_DOC_LC_DOCS) : $(_DOC_C_DOCS)
-	if ! test -d $(dir $@); then mkdir $(dir $@); fi
-	if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \
-	(cd $(dir $@) && \
-	  $(_xml2po) -e -p \
-	    "$${d}$(dir $@)$(patsubst %/$(notdir $@),%,$@).po" \
-	    "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \
-	    cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)
-
-## @ _DOC_POT
-## A pot file
-_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot)
-.PHONY: pot
-pot: $(_DOC_POT)
-$(_DOC_POT): $(_DOC_C_DOCS_NOENT)
-	$(_xml2po) -e -o $@ $^
-
-
-################################################################################
-## @@ All Documentation
-
-## @ _DOC_HTML_ALL
-## All HTML documentation, only if it's built
-_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \
-	$(_DOC_C_HTML) $(_DOC_LC_HTML))
-
-_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
-
-$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
-	xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
-
-
-################################################################################
-
-all:							\
-	$(_DOC_C_DOCS)		$(_DOC_LC_DOCS)		\
-	$(_DOC_OMF_ALL)		$(_DOC_DSK_ALL)		\
-	$(_DOC_HTML_ALL)	$(_DOC_POFILES)
-
-
-.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir
-
-clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML)
-clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML)
-clean-doc-lc:
-	rm -f $(_DOC_LC_DOCS)
-	@list='$(_DOC_POFILES)'; for po in $$list; do \
-	  if ! test "$$po" -ef "$(srcdir)/$$po"; then \
-	    echo "rm -f $$po"; \
-	    rm -f "$$po"; \
-	  fi; \
-	done
-	@for lc in C $(_DOC_REAL_LINGUAS); do \
-	  if test -f "$$lc/.xml2po.mo"; then \
-	    echo "rm -f $$lc/.xml2po.mo"; \
-	    rm -f "$$lc/.xml2po.mo"; \
-	  fi; \
-	done
-clean-doc-dir:
-	@for lc in C $(_DOC_REAL_LINGUAS); do \
-	  for dir in `find $$lc -depth -type d`; do \
-	    if ! test $$dir -ef $(srcdir)/$$dir; then \
-	      echo "rmdir $$dir"; \
-	      rmdir "$$dir"; \
-	   fi; \
-	  done; \
-	done
-
-_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf)
-_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
-_clean_lc  = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
-_clean_dir = $(if $(DOC_MODULE),clean-doc-dir)
-
-clean-local:						\
-	$(_clean_omf)		$(_clean_dsk)		\
-	$(_clean_lc)		$(_clean_dir)
-distclean-local:					\
-	$(_clean_omf)		$(_clean_dsk)		\
-	$(_clean_lc)		$(_clean_dir)
-mostlyclean-local:					\
-	$(_clean_omf)		$(_clean_dsk)		\
-	$(_clean_lc)		$(_clean_dir)
-maintainer-clean-local:					\
-	$(_clean_omf)		$(_clean_dsk)		\
-	$(_clean_lc)		$(_clean_dir)
-
-
-.PHONY: dist-doc-docs dist-doc-figs dist-doc-omf dist-doc-dsk
-doc-dist-hook: 					\
-	$(if $(DOC_MODULE),dist-doc-docs)	\
-	$(if $(_DOC_C_FIGURES),dist-doc-figs)	\
-	$(if $(_DOC_OMF_IN),dist-doc-omf)
-#	$(if $(_DOC_DSK_IN),dist-doc-dsk)
-
-dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)
-	@for lc in C $(_DOC_REAL_LINGUAS); do \
-	  echo " $(mkinstalldirs) $(distdir)/$$lc"; \
-	  $(mkinstalldirs) "$(distdir)/$$lc"; \
-	done
-	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \
-	for doc in $$list; do \
-	  if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
-	    docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
-	    if ! test -d "$(distdir)/$$docdir"; then \
-	      echo "$(mkinstalldirs) $(distdir)/$$docdir"; \
-	      $(mkinstalldirs) "$(distdir)/$$docdir"; \
-	    fi; \
-	  echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \
-	  $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \
-	done
-
-dist-doc-figs: $(_DOC_SRC_FIGURES)
-	@list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \
-	for fig in $$list; do \
-	  if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \
-	  if test -f "$$d$$fig"; then \
-	    figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
-	    if ! test -d "$(distdir)/$$figdir"; then \
-	      echo "$(mkinstalldirs) $(distdir)/$$figdir"; \
-	      $(mkinstalldirs) "$(distdir)/$$figdir"; \
-	    fi; \
-	    echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \
-	    $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \
-	  fi; \
-	done;
-
-dist-doc-omf:
-	@if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \
-	echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \
-	$(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))"
-
-dist-doc-dsk:
-	@if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \
-	echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \
-	$(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))"
-
-
-.PHONY: check-doc-docs check-doc-omf
-check:							\
-	$(if $(DOC_MODULE),check-doc-docs)		\
-	$(if $(_DOC_OMF_IN),check-doc-omf)
-
-check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
-	@for lc in C $(_DOC_REAL_LINGUAS); do \
-	  if test -f "$$lc"; \
-	    then d=; \
-	    xmlpath="$$lc"; \
-	  else \
-	    d="$(srcdir)/"; \
-	    xmlpath="$$lc:$(srcdir)/$$lc"; \
-	  fi; \
-	  echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \
-	  xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \
-	done
-
-check-doc-omf: $(_DOC_OMF_ALL)
-	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
-	  echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \
-	  xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \
-	done
-
-
-.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk
-install-data-local:					\
-	$(if $(DOC_MODULE),install-doc-docs)		\
-	$(if $(_DOC_HTML_ALL),install-doc-html)		\
-	$(if $(_DOC_C_FIGURES),install-doc-figs)	\
-	$(if $(_DOC_OMF_IN),install-doc-omf)
-#	$(if $(_DOC_DSK_IN),install-doc-dsk)
-
-install-doc-docs:
-	@for lc in C $(_DOC_REAL_LINGUAS); do \
-	  echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$lc"; \
-	  $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$lc; \
-	done
-	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
-	  if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \
-	  docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
-	  docdir="$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$docdir"; \
-	  if ! test -d "$$docdir"; then \
-	    echo "$(mkinstalldirs) $$docdir"; \
-	    $(mkinstalldirs) "$$docdir"; \
-	  fi; \
-	  echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$doc"; \
-	  $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$doc; \
-	done
-
-install-doc-figs:
-	@list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \
-	  for lc in C $(_DOC_REAL_LINGUAS); do \
-	    figsymlink=false; \
-	    if test -f "$$lc/$$fig"; then \
-	      figfile="$$lc/$$fig"; \
-	    elif test -f "$(srcdir)/$$lc/$$fig"; then \
-	      figfile="$(srcdir)/$$lc/$$fig"; \
-	    else \
-	      figsymlink=true; \
-	    fi; \
-	    figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \
-	    figdir="$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$figdir"; \
-	    if ! test -d "$$figdir"; then \
-	      echo "$(mkinstalldirs) $$figdir"; \
-	      $(mkinstalldirs) "$$figdir"; \
-	    fi; \
-	    figbase=`echo $$fig | sed -e 's/^.*\///'`; \
-	    if $$figsymlink; then \
-	      echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \
-	      ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \
-	    else \
-	      echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \
-	      $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \
-	    fi; \
-	  done; \
-	done
-
-install-doc-html:
-	echo install-html
-
-install-doc-omf:
-	$(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)
-	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
-	  echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
-	  $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf; \
-	done
-	@if test "x$(_ENABLE_SK)" = "xtrue"; then \
-	  echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)"; \
-	  scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)"; \
-	fi;
-
-install-doc-dsk:
-	echo install-dsk
-
-
-.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk
-uninstall-local:					\
-	$(if $(DOC_MODULE),uninstall-doc-docs)		\
-	$(if $(_DOC_HTML_ALL),uninstall-doc-html)	\
-	$(if $(_DOC_C_FIGURES),uninstall-doc-figs)	\
-	$(if $(_DOC_OMF_IN),uninstall-doc-omf)
-#	$(if $(_DOC_DSK_IN),uninstall-doc-dsk)
-
-uninstall-doc-docs:
-	@list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \
-	  echo " rm -f $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$doc"; \
-	  rm -f "$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$doc"; \
-	done
-
-uninstall-doc-figs:
-	@list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \
-	  echo "rm -f $(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$fig"; \
-	  rm -f "$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$fig"; \
-	done;
-
-uninstall-doc-omf:
-	@list='$(_DOC_OMF_ALL)'; for omf in $$list; do \
-	  if test "x$(_ENABLE_SK)" = "xtrue"; then \
-	    echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
-	    scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
-	  fi; \
-	  echo "rm -f $(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
-	  rm -f "$(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \
-	done
--- a/m4/README
+++ b/m4/README
@@ -1,6 +1,6 @@
 pkg.m4:                      pkg-config-0.27.1
 glib-gettext.m4:             glib of 2013-01-23 (2.35.4)
 dgconf-2.m4:                 modified gconf-2.m4.in from gconf of 2009-04-28 (git HEAD)
-gnome-doc-utils.m4:          gnome-doc-utils-0.20.10
 intltool.m4:                 intltool-0.50.2
 nls.m4:                      gettext of 2009-04-28 (0.18)
+yelp.m4:                     yelp-tools 3.32.2
--- a/m4/gnome-doc-utils.m4
+++ /dev/null
@@ -1,61 +0,0 @@
-dnl Do not call GNOME_DOC_DEFINES directly.  It is split out from
-dnl GNOME_DOC_INIT to allow gnome-doc-utils to bootstrap off itself.
-AC_DEFUN([GNOME_DOC_DEFINES],
-[
-AC_ARG_WITH([help-dir],
-  AC_HELP_STRING([--with-help-dir=DIR], [path to help docs]),,
-  [with_help_dir='${datadir}/gnome/help'])
-HELP_DIR="$with_help_dir"
-AC_SUBST(HELP_DIR)
-
-AC_ARG_WITH([omf-dir],
-  AC_HELP_STRING([--with-omf-dir=DIR], [path to OMF files]),,
-  [with_omf_dir='${datadir}/omf'])
-OMF_DIR="$with_omf_dir"
-AC_SUBST(OMF_DIR)
-
-AC_ARG_WITH([help-formats],
-  AC_HELP_STRING([--with-help-formats=FORMATS], [list of formats]),,
-  [with_help_formats=''])
-DOC_USER_FORMATS="$with_help_formats"
-AC_SUBST(DOC_USER_FORMATS)
-
-AC_ARG_ENABLE([scrollkeeper],
-	[AC_HELP_STRING([--disable-scrollkeeper],
-			[do not make updates to the scrollkeeper database])],,
-	enable_scrollkeeper=yes)
-AM_CONDITIONAL([ENABLE_SK],[test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"])
-
-dnl disable scrollkeeper automatically for distcheck
-DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS"
-AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
-
-AM_CONDITIONAL([HAVE_GNOME_DOC_UTILS],[test "$gdu_cv_have_gdu" = "yes"])
-])
-
-# GNOME_DOC_INIT ([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
-#
-AC_DEFUN([GNOME_DOC_INIT],
-[AC_REQUIRE([AC_PROG_LN_S])dnl
-
-if test -z "$AM_DEFAULT_VERBOSITY"; then
-  AM_DEFAULT_VERBOSITY=1
-fi
-AC_SUBST([AM_DEFAULT_VERBOSITY])
-
-ifelse([$1],,[gdu_cv_version_required=0.3.2],[gdu_cv_version_required=$1])
-
-AC_MSG_CHECKING([gnome-doc-utils >= $gdu_cv_version_required])
-PKG_CHECK_EXISTS([gnome-doc-utils >= $gdu_cv_version_required],
-	[gdu_cv_have_gdu=yes],[gdu_cv_have_gdu=no])
-
-if test "$gdu_cv_have_gdu" = "yes"; then
-	AC_MSG_RESULT([yes])
-	ifelse([$2],,[:],[$2])
-else
-	AC_MSG_RESULT([no])
-	ifelse([$3],,[AC_MSG_ERROR([gnome-doc-utils >= $gdu_cv_version_required not found])],[$3])
-fi
-
-GNOME_DOC_DEFINES
-])
--- /dev/null
+++ b/m4/yelp.m4
@@ -0,0 +1,219 @@
+AC_DEFUN([YELP_HELP_INIT],
+[
+AC_REQUIRE([AC_PROG_LN_S])
+m4_pattern_allow([AM_V_at])
+m4_pattern_allow([AM_V_GEN])
+m4_pattern_allow([AM_DEFAULT_VERBOSITY])
+
+YELP_LC_MEDIA_LINKS=true
+YELP_LC_DIST=true
+
+for yelpopt in [$1]; do
+  case $yelpopt in
+    lc-media-links)    YELP_LC_MEDIA_LINKS=true ;;
+    no-lc-media-links) YELP_LC_MEDIA_LINKS= ;;
+    lc-dist)           YELP_LC_DIST=true ;;
+    no-lc-dist)        YELP_LC_DIST= ;;
+    *) AC_MSG_ERROR([Unrecognized [YELP_HELP_INIT] option $yelpopt"]) ;;
+  esac
+done;
+AC_SUBST([YELP_LC_MEDIA_LINKS])
+AC_SUBST([YELP_LC_DIST])
+
+AC_ARG_WITH([help-dir],
+            AS_HELP_STRING([--with-help-dir=DIR],
+                           [path where help files are installed]),,
+            [with_help_dir='${datadir}/help'])
+HELP_DIR="$with_help_dir"
+AC_SUBST(HELP_DIR)
+
+AC_ARG_VAR([ITSTOOL], [Path to the `itstool` command])
+AC_CHECK_PROG([ITSTOOL], [itstool], [itstool])
+if test x"$ITSTOOL" = x; then
+  AC_MSG_ERROR([itstool not found])
+fi
+
+AC_ARG_VAR([XMLLINT], [Path to the `xmllint` command])
+AC_CHECK_PROG([XMLLINT], [xmllint], [xmllint])
+if test x"$XMLLINT" = x; then
+  AC_MSG_ERROR([xmllint not found])
+fi
+
+YELP_HELP_RULES='
+HELP_ID ?=
+HELP_POT ?=
+HELP_FILES ?=
+HELP_EXTRA ?=
+HELP_MEDIA ?=
+HELP_LINGUAS ?=
+
+_HELP_LINGUAS = $(if $(filter environment,$(origin LINGUAS)),$(filter $(LINGUAS),$(HELP_LINGUAS)),$(HELP_LINGUAS))
+_HELP_POTFILE = $(if $(HELP_POT),$(HELP_POT),$(if $(HELP_ID),$(HELP_ID).pot))
+_HELP_POFILES = $(if $(HELP_ID),$(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).po))
+_HELP_MOFILES = $(patsubst %.po,%.mo,$(_HELP_POFILES))
+_HELP_C_FILES = $(foreach f,$(HELP_FILES),C/$(f))
+_HELP_C_EXTRA = $(foreach f,$(HELP_EXTRA),C/$(f))
+_HELP_C_MEDIA = $(foreach f,$(HELP_MEDIA),C/$(f))
+_HELP_LC_FILES = $(foreach lc,$(_HELP_LINGUAS),$(foreach f,$(HELP_FILES),$(lc)/$(f)))
+_HELP_LC_STAMPS = $(foreach lc,$(_HELP_LINGUAS),$(lc)/$(lc).stamp)
+
+_HELP_DEFAULT_V = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1)
+_HELP_V = $(if $(V),$(V),$(_HELP_DEFAULT_V))
+_HELP_LC_VERBOSE = $(_HELP_LC_VERBOSE_$(_HELP_V))
+_HELP_LC_VERBOSE_ = $(_HELP_LC_VERBOSE_$(_HELP_DEFAULT_V))
+_HELP_LC_VERBOSE_0 = @echo "  GEN    "$(dir [$]@);
+
+all: $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA) $(_HELP_LC_FILES) $(_HELP_POFILES)
+
+.PHONY: pot
+pot: $(_HELP_POTFILE)
+$(_HELP_POTFILE): $(_HELP_C_FILES) $(_HELP_C_EXTRA) $(_HELP_C_MEDIA)
+	$(AM_V_GEN)if test -d "C"; then d=; else d="$(srcdir)/"; fi; \
+	$(ITSTOOL) -o "[$]@" $(foreach f,$(_HELP_C_FILES),"$${d}$(f)")
+
+.PHONY: repo
+repo: $(_HELP_POTFILE)
+	$(AM_V_at)for po in $(_HELP_POFILES); do \
+	  if test "x[$](_HELP_V)" = "x0"; then echo "  GEN    $${po}"; fi; \
+	  msgmerge -q -o "$${po}" "$${po}" "$(_HELP_POTFILE)"; \
+	done
+
+$(_HELP_POFILES):
+	$(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi
+	$(AM_V_at)if test ! -f "[$]@" -a -f "$(srcdir)/[$]@"; then cp "$(srcdir)/[$]@" "[$]@"; fi
+	$(AM_V_GEN)if ! test -f "[$]@"; then \
+	  (cd "$(dir [$]@)" && \
+	    $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \
+	    mv "$(notdir [$]@).tmp" "$(notdir [$]@)"); \
+	else \
+	  (cd "$(dir [$]@)" && \
+	    $(ITSTOOL) -o "$(notdir [$]@).tmp" $(_HELP_C_FILES) && \
+	    msgmerge -o "$(notdir [$]@)" "$(notdir [$]@)" "$(notdir [$]@).tmp" && \
+	    rm "$(notdir [$]@).tmp"); \
+	fi
+
+$(_HELP_MOFILES): %.mo: %.po
+	$(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi
+	$(AM_V_GEN)msgfmt -o "[$]@" "$<"
+
+$(_HELP_LC_FILES): $(_HELP_LINGUAS)
+$(_HELP_LINGUAS): $(_HELP_LC_STAMPS)
+$(_HELP_LC_STAMPS): %.stamp: %.mo
+$(_HELP_LC_STAMPS): $(_HELP_C_FILES) $(_HELP_C_EXTRA)
+	$(AM_V_at)if ! test -d "$(dir [$]@)"; then mkdir "$(dir [$]@)"; fi
+	$(_HELP_LC_VERBOSE)if test -d "C"; then d="../"; else d="$(abs_srcdir)/"; fi; \
+	mo="$(dir [$]@)$(patsubst %/$(notdir [$]@),%,[$]@).mo"; \
+	if test -f "$${mo}"; then mo="../$${mo}"; else mo="$(abs_srcdir)/$${mo}"; fi; \
+	(cd "$(dir [$]@)" && $(ITSTOOL) -m "$${mo}" $(foreach f,$(_HELP_C_FILES),$${d}/$(f))) && \
+	touch "[$]@"
+
+.PHONY: clean-help
+mostlyclean-am: $(if $(HELP_ID),clean-help)
+clean-help:
+	rm -f $(_HELP_LC_FILES) $(_HELP_LC_STAMPS) $(_HELP_MOFILES)
+
+EXTRA_DIST ?=
+EXTRA_DIST += $(_HELP_C_EXTRA) $(_HELP_C_MEDIA)
+EXTRA_DIST += $(if $(YELP_LC_DIST),$(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).stamp))
+EXTRA_DIST += $(foreach lc,$(HELP_LINGUAS),$(lc)/$(lc).po)
+EXTRA_DIST += $(foreach f,$(HELP_MEDIA),$(foreach lc,$(HELP_LINGUAS),$(wildcard $(lc)/$(f))))
+
+distdir: distdir-help-files
+distdir-help-files: $(_HELP_LC_FILES)
+	@for lc in C $(if $(YELP_LC_DIST),$(HELP_LINGUAS)) ; do \
+	  $(MKDIR_P) "$(distdir)/$$lc"; \
+	  for file in $(HELP_FILES); do \
+	    if test -f "$$lc/$$file"; then d=./; else d=$(srcdir)/; fi; \
+	    cp -p "$$d$$lc/$$file" "$(distdir)/$$lc/" || exit 1; \
+	  done; \
+	done; \
+
+.PHONY: check-help
+check: check-help
+check-help:
+	for lc in C $(_HELP_LINGUAS); do \
+	  if test -d "$$lc"; \
+	    then d=; \
+	    xmlpath="$$lc"; \
+	  else \
+	    d="$(srcdir)/"; \
+	    xmlpath="$$lc:$(srcdir)/$$lc"; \
+	  fi; \
+	  for page in $(HELP_FILES); do \
+	    echo "$(XMLLINT) --nonet --noout --noent --path $$xmlpath --xinclude $$d$$lc/$$page"; \
+	    $(XMLLINT) --nonet --noout --noent --path "$$xmlpath" --xinclude "$$d$$lc/$$page"; \
+	  done; \
+	done
+
+
+.PHONY: install-help
+install-data-am: $(if $(HELP_ID),install-help)
+install-help: $(_HELP_LC_FILES)
+	@for lc in C $(_HELP_LINGUAS); do \
+	  $(mkinstalldirs) "$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)" || exit 1; \
+	done
+	@for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \
+	  if test -f "$$lc/$$f"; then d=; else d="$(srcdir)/"; fi; \
+	  helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+	  if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \
+	  echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir`basename $$f`"; \
+	  $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir`basename $$f`" || exit 1; \
+	done; done
+	@for f in $(_HELP_C_EXTRA); do \
+	  lc=`dirname "$$f"`; lc=`basename "$$lc"`; \
+	  if test -f "$$f"; then d=; else d="$(srcdir)/"; fi; \
+	  helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+	  if ! test -d "$$helpdir"; then $(mkinstalldirs) "$$helpdir"; fi; \
+	  echo "$(INSTALL_DATA) $$d$$f $$helpdir`basename $$f`"; \
+	  $(INSTALL_DATA) "$$d$$f" "$$helpdir`basename $$f`" || exit 1; \
+	done
+	@for f in $(HELP_MEDIA); do \
+	  for lc in C $(_HELP_LINGUAS); do \
+	    if test -f "$$lc$$f"; then d=; else d="$(srcdir)/"; fi; \
+	    helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+	    mdir=`dirname "$$f"`; \
+	    if test "x$mdir" = "x."; then mdir=""; fi; \
+	    if ! test -d "$$helpdir$$mdir"; then $(mkinstalldirs) "$$helpdir$$mdir"; fi; \
+	    if test -f "$$d$$lc/$$f"; then \
+	      echo "$(INSTALL_DATA) $$d$$lc/$$f $$helpdir$$f"; \
+	      $(INSTALL_DATA) "$$d$$lc/$$f" "$$helpdir$$f" || exit 1; \
+	    elif test "x$$lc" != "xC"; then \
+	      if test "x$(YELP_LC_MEDIA_LINKS)" != "x"; then \
+	        echo "$(LN_S) -f $(HELP_DIR)/C/$(HELP_ID)/$$f $$helpdir$$f"; \
+	        dname="$$f"; \
+	        pars="../"; \
+	        while test "$$dname" != "." -a "$$dname" != "/"; do \
+	          pars="../$$pars"; \
+	          dname=$$(dirname "$$dname"); \
+	        done; \
+	        $(LN_S) -f $$pars"C/$(HELP_ID)/$$f" "$$helpdir$$f" || exit 1; \
+	      fi; \
+	    fi; \
+	  done; \
+	done
+
+.PHONY: uninstall-help
+uninstall-am: $(if $(HELP_ID),uninstall-help)
+uninstall-help:
+	for lc in C $(_HELP_LINGUAS); do for f in $(HELP_FILES); do \
+	  helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+	  echo "rm -f $$helpdir`basename $$f`"; \
+	  rm -f "$$helpdir`basename $$f`"; \
+	done; done
+	@for f in $(_HELP_C_EXTRA); do \
+	  lc=`dirname "$$f"`; lc=`basename "$$lc"`; \
+	  helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+	  echo "rm -f $$helpdir`basename $$f`"; \
+	  rm -f "$$helpdir`basename $$f`"; \
+	done
+	@for f in $(HELP_MEDIA); do \
+	  for lc in C $(_HELP_LINGUAS); do \
+	    helpdir="$(DESTDIR)$(HELP_DIR)/$$lc/$(HELP_ID)/"; \
+	    echo "rm -f $$helpdir$$f"; \
+	    rm -f "$$helpdir$$f"; \
+	  done; \
+	done;
+'
+AC_SUBST([YELP_HELP_RULES])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([YELP_HELP_RULES])])
+])
--- a/Src/Gtk2/dasher_main.cpp
+++ b/Src/Gtk2/dasher_main.cpp
@@ -990,7 +990,7 @@ dasher_main_command_help(DasherMain *pSe
   GError *err = NULL;
 
   scr = gtk_widget_get_screen(GTK_WIDGET(pPrivate->pMainWindow));
-  if (!gtk_show_uri(scr, "ghelp:dasher", gtk_get_current_event_time(), &err)) {
+  if (!gtk_show_uri(scr, "help:dasher", gtk_get_current_event_time(), &err)) {
     GtkWidget *d;
     d = gtk_message_dialog_new(GTK_WINDOW(pPrivate->pMainWindow),
                                GTK_DIALOG_MODAL,
--- a/Data/Help/Gnome/C/dasher.xml
+++ /dev/null
@@ -1,1309 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-<article id="index">
-  <articleinfo>
-    <title>Dasher Manual</title>
-    <corpauthor role="maintainer">The Dasher Project</corpauthor>
-    <copyright>
-      <year>2010</year>
-      <holder>The Dasher Project</holder>
-    </copyright>
-    <legalnotice>
-      <para>Permission is granted to make and distribute verbatim copies of this manual provided the
-        copyright notice and this permission notice are preserved on all copies.</para>
-      <para>Permission is granted to copy and distribute modified versions of this manual under the
-        conditions for verbatim copying, provided that the entire resulting derived work is
-        distributed under the terms of a permission notice identical to this one.</para>
-      <para>Permission is granted to copy and distribute translations of this manual into another
-        language, under the above conditions for modified versions, except that this permission
-        notice may be stated in a translation approved by the Free Software Foundation.</para>
-      <para>UNIX is a trademark of X/Open Group.</para>
-      <para>Linux is a trademark of Linus Torvalds.</para>
-      <para>X Window System is a trademark of X Consortium, Inc.</para>
-      <para>Windows is a trademark of Microsoft Corp.</para>
-      <para>Macintosh and Apple are trademarks of Apple Computer, Inc.</para>
-      <para>All other trademarks are property of their respective owners.</para>
-    </legalnotice>
-    <abstract role="description">
-      <para>Dasher is an accessible text entry application that uses pointing gestures
-        rather than typing. It is designed to be fast while fun to use.</para>
-    </abstract>
-    <revhistory>
-      <revision>
-        <revnumber>1.0.0</revnumber>
-        <date>2004-02-08</date>
-      </revision>
-      <revision>
-        <revnumber>1.1.0</revnumber>
-        <date>2006-03-31</date>
-      </revision>
-      <revision>
-        <revnumber>1.2.0</revnumber>
-        <date>2006-07-11</date>
-      </revision>
-      <revision>
-        <revnumber>1.2.1</revnumber>
-        <date>2006-09-02</date>
-      </revision>
-    </revhistory>
-  </articleinfo>
-
-  <sect1 id="intro">
-    <title>Introduction</title>
-    <para><application>Dasher</application> is an information-efficient text-entry interface, driven
-      by natural continuous pointing gestures. Dasher is a competitive text-entry system wherever a
-      full-size keyboard cannot be used - for example on a palmtop or wearable computer, or when
-      operating a computer one-handed (by joystick, touchscreen or mouse) or zero-handed (i.e. by
-      head-mouse or eyetracker). This document describes version 4.2.0 of
-      <application>Dasher</application>.</para>
-    <para><application>Dasher</application> can be started by selecting
-      <guimenuitem>Dasher</guimenuitem> from the <guisubmenu>Accessibility </guisubmenu> submenu of
-      the <guimenu>Main Menu</guimenu>, or by running the command <command>dasher</command> on the
-      command line.</para>
-  </sect1>
-  <sect1 id="whatsnew">
-    <title>What's New</title>
-
-    <sect2>
-      <title>New features In version 4.2</title>
-
-
-      <para> There is an automatic speed control, which will speed up Dasher when it senses you are
-        able to go faster. </para>
-
-      <para> There is a new socket interface allowing Dasher to listen to head-trackers or
-        gaze-trackers or EEG-interfaces without going through the mouse.</para>
-
-      <para> There are several `button modes' for people who want to drive Dasher using one, two,
-        three, or four switches.</para>
-
-      <para> There is a `click mode', for people who like to point where they want to go, and click
-        to take a single step in that direction. This is aimed at beginners, in particular</para>
-
-
-    </sect2>
-    <sect2>
-      <title>What's coming in version 4.4</title>
-      <para> We will implement a game-mode for Dasher: this will help novices learn to write. A
-        teaching hand will guide the novice when he goes astray, and novices who write fast without
-        needing much guidance will win lots of points. </para>
-
-      <para> New language models will be added, which will make predictions at the word level as
-        well as the letter level.</para>
-
-      <para>Japanese and Chinese will be fully supported. </para>
-
-      <para>The Dasher team also hopes to create a free web-cam-based head tracker and gaze tracker,
-        `FreeVIM', by December 2006. </para>
-    </sect2>
-  </sect1>
-  <sect1 id="basics">
-    <title>Dasher Basics</title>
-    <para>Dasher is an information-efficient text-entry interface, driven by natural continuous
-      pointing gestures. Dasher is a competitive text-entry system wherever a full-size keyboard
-      cannot be used - for example, <itemizedlist>
-        <listitem>
-          <para>On a palmtop computer;</para>
-        </listitem>
-        <listitem>
-          <para>on a wearable computer;</para>
-        </listitem>
-        <listitem>
-          <para>when operating a computer one-handed, by joystick, touchscreen, trackball, or
-          mouse;</para>
-        </listitem>
-        <listitem>
-          <para>when operating a computer with zero hands (i.e., by head-mouse or by
-          eyetracker).</para>
-        </listitem>
-      </itemizedlist> The eyetracking version of Dasher allows an experienced user to write text as
-      fast as normal handwriting - 29 words per minute; using a mouse, experienced users can write
-      at 39 words per minute.</para>
-
-    <para> Dasher can be used to write efficiently in any language. </para>
-
-    <para>Dasher is fast and fun to learn.
-      <!--TODO - write this section (See what
- users round the world say, in section \ref{sec.users}.)-->
-    </para>
-
-    <para>Dasher is <emphasis>free software</emphasis>. It's distributed under the same license as
-      GNU/Linux, the GPL. </para>
-
-    <sect2>
-      <title>How does Dasher work?</title>
-
-      <blockquote>
-        <attribution>Financial Times, 5th February 2002</attribution>
-        <para>Dasher is like an arcade game: `Attack of the killer alphabets', perhaps.</para>
-      </blockquote>
-
-      <para>Dasher is a zooming interface. You point where you want to go, and the display zooms in
-        wherever you point. The world into which you are zooming is painted with letters, so that
-        any point you zoom in on corresponds to a piece of text. The more you zoom in, the longer
-        the piece of text you have written. You choose what you write by choosing where to zoom.</para>
-
-      <para>To make the interface efficient, we use the predictions of a language model to determine
-        how much of the world is devoted to each piece of text. Probable pieces of text are given
-        more space, so they are quick and easy to select. Improbable pieces of text (for example,
-        text with spelling mistakes) are given less space, so they are harder to write. The language
-        model learns all the time: if you use a novel word once, it is easier to write next time.</para>
-
-
-
-      <para>A big advantage of Dasher over other predictive text-entry interfaces that offer
-        word-completions to the user is that it is <emphasis>mode-free</emphasis>: the user does not
-        need to switch from a writing mode to an <quote>accept-model-predictions</quote> mode.</para>
-
-      <para>Another advantage is that it is easy to train the model on any writing style: simply
-        load up an example file, then write away!</para>
-
-      <para> It's quite hard to convey in words what Dasher looks like, so please visit <ulink
-          url="http://www.inference.phy.cam.ac.uk/dasher/" type="http">http://www.inference.phy.cam.ac.uk/dasher/</ulink> to see movies.</para>
-
-    </sect2>
-    <sect2>
-      <title>Dasher explained -- the library analogy</title>
-      <para> Imagine <emphasis>a library containing all possible books</emphasis>, ordered
-        alphabetically on a single shelf. Books in which the first letter is <quote>a</quote>; are
-        at the left hand side. Books in which the first letter is <quote>z</quote>; are at the
-        right. In picture (i) below, the shelf is shown vertically with <quote>left</quote>; (a) at
-        the top and ,<quote>right</quote>; (z) at the bottom. The first book in the
-        <quote>a</quote>; section reads
-        <quote><computeroutput>aaaaaaaaaaaa</computeroutput>...</quote>; somewhere to its right are
-        books that start <quote><computeroutput>all good things must come to an
-          end</computeroutput>...</quote>; a tiny bit further to the right are books that start
-            <quote><computeroutput>all good things must come to an
-        enema</computeroutput>...</quote>.</para>
-
-
-      <para> When someone writes a piece of text, their choice of the text string can be viewed as a
-        choice of a book from this library of all books - the book that contains exactly the chosen
-        text. How do they choose that book? Let's imagine they want to write
-            <quote><computeroutput>all good things</computeroutput>...</quote>;</para>
-      <figure>
-        <title>The library of all books.</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/a-z.gif"/>
-          </imageobject>
-          <imageobject>
-            <imagedata fileref="figures/aa-az.gif"/>
-          </imageobject>
-          <imageobject>
-            <imagedata fileref="figures/ala-alz.gif"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para>First, they walk into the <quote>
-          <computeroutput>a</computeroutput>
-        </quote>; section of the library. There, they are confronted by books starting <quote>
-          <computeroutput>aa</computeroutput>
-        </quote>;, <quote>
-          <computeroutput>ab</computeroutput>
-        </quote>, <quote><computeroutput>ac</computeroutput>...</quote>; <quote>
-          <computeroutput>az</computeroutput>
-        </quote>; [Picture (ii)]. Looking more closely at the <quote>
-          <computeroutput>al</computeroutput>
-        </quote>; section, they can find books starting <quote>
-          <computeroutput>ala</computeroutput>
-        </quote>;, <quote>;<computeroutput>alb</computeroutput></quote>;,...; <quote>
-          <computeroutput>alz</computeroutput>
-        </quote>; [Picture (iii)].</para>
-
-      <para> By looking ever more closely at the shelf, the writer can find the book containing the
-        text he wishes to write. Thus writing can be described as <emphasis>zooming in on an
-          alphabetical library, steering as you go</emphasis>.</para>
-
-      <para> This is exactly how Dasher works, except for one crucial point: <emphasis>we alter the
-          SIZE of the shelf space devoted to each book in proportion to the probability of the
-          corresponding text.</emphasis> For example, not very many books start with an <quote>
-          <computeroutput>x</computeroutput>
-        </quote>;, so we devote less space to <quote><computeroutput>x</computeroutput>...;</quote>;
-        books, and more to the more plausible books, thus making it easier to find books that
-        contain probable text.</para>
-
-      <para> Here is the corresponding sequence of pictures of the library in Dasher. (The character
-          <quote>_</quote>; denotes the space character.)</para>
-      <figure>
-        <title>The library of all books.</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/a-z.gif"/>
-          </imageobject>
-          <imageobject>
-            <imagedata fileref="figures/aa-az.gif"/>
-          </imageobject>
-          <imageobject>
-            <imagedata fileref="figures/ala-alz.gif"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <!--
-\begin{center}
-\begin{tabular}{ccc}
-\mbox{\psfig{figure=images/a-z.m.gif.50.ps}}&
-\mbox{\psfig{figure=images/aa-az.m.gif.50.ps}}&
-\mbox{\psfig{figure=images/ala-alz.m.gif.50.ps}}\\
-(i)&(ii)&(iii)\\
-\end{tabular}
-\end{center}
-							      -->
-
-      <para> Dasher can be trained on examples of any writing style, and it learns all the time,
-        picking up your personal turns of phrase.</para>
-
-      <para>The image below shows the state of the Dasher interface while the user is writing the
-        word `objection'; alternative words that could easily be written at this point include
-        `objective', `objects_', and `object_oriented'.</para>
-      <figure>
-        <title>Writing `objection' in Dasher.</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/object.gif"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <para> If you find Dasher hard to imagine based on these static pictures, please take a look
-        at the movies on <ulink url="http://www.inference.phy.cam.ac.uk/dasher/" type="http">http://www.inference.phy.cam.ac.uk/dasher/</ulink>.</para>
-
-
-      <!--% When  you try Dasher for the first time,  please read the tips for novices.-->
-    </sect2>
-    <sect2>
-      <title>Tips for novices</title>
-      <para>Don't give up if it takes you a minute or two to get started - within ten minutes,
-        you'll be blazing along. It's a lot like driving a car. You should <emphasis>start by
-          driving cautiously</emphasis>. If you can't tell where you are going, <emphasis>stop
-        going</emphasis>. Indeed, you will probably learn Dasher fastest if you come to it with
-        car-driving analogies in mind, rather than standard computer analogies. For example, the way
-        navigation works is not by DRAGGING but by STEERING: if cars worked like windows computers,
-        you would have to <quote>grab</quote> the piece of road you want, then ,<quote>drag</quote>;
-        it towards you; but in a car, when you wish to drive right, you POINT RIGHT with your
-        steering wheel. Dasher does not work by dragging either. <emphasis>Do not try to grab things
-          and drag them. Just decide where you want to go, and point there.</emphasis></para>
-
-      <para>
-        <emphasis>The single most important concept</emphasis> that a novice user needs to
-        understand is that one should always continue <emphasis>inside</emphasis> the text written
-        so far: to select the book that contains <quote>all</quote>; as its first word, one does
-          <emphasis>not</emphasis> enter the <quote>a</quote>; section of the library, then exit the
-          <quote>;a</quote>; section, and enter the ,<quote>l</quote>; section. One enters the
-          <quote>a</quote>; section, then finds the <quote>al</quote>; section that is
-          <emphasis>within</emphasis> the <quote>a</quote>; section, then enters the
-        <quote>all</quote>; section <emphasis>within</emphasis> the <quote>al</quote>; section.</para>
-
-      <para> It's just like finding a name in a phonebook. To find <quote>
-          <computeroutput>Alison</computeroutput>
-        </quote>;, you don't go to the <quote>
-          <computeroutput>A</computeroutput>
-        </quote>; section of the phonebook, then the
-        <quote>;<computeroutput>L</computeroutput></quote>; section: you go into the <quote>
-          <computeroutput>A</computeroutput>
-        </quote>; section, then find <emphasis>within it</emphasis> the <quote>
-          <computeroutput>Al</computeroutput>
-        </quote>; section, and so forth. Once you are in the <quote>
-          <computeroutput>Al</computeroutput>
-        </quote>; section, you never leave it.</para>
-
-      <para><emphasis>The second most important idea</emphasis> is that what you have written
-        depends <emphasis>only</emphasis> on where you finally end up in the library, not on how you
-        got there; so there is no need to steer accurately on your way to your destination.
-          <emphasis>You are allowed to cut corners.</emphasis> (For example, in the previous image,
-        if you wanted to write `objects_are', it would be fine to move the mouse straight towards
-        the letters `are', even if this takes the mouse across the unwanted grey `i' square.)</para>
-
-
-
-
-      <para><emphasis>Common errors.</emphasis> Often, a beginner who is trying to find a particular
-        letter will drive the display forwards fast while hunting for the letter. The rule of the
-        road for Dasher users is just like that for car-drivers: don't drive forwards until you have
-        identified where you want to go! So, after you have found the first letter of your sentence,
-        and zoomed towards it, please <emphasis>SLOW DOWN and don't proceed any further into this
-          first letter's square until you have figured out where you should be steering
-        towards</emphasis>. Your next letter <emphasis>is</emphasis> there, immediately inside the
-        first square you have entered. The letters are ordered alphabetically. If you can't see your
-        letter, figure out where it must be on the basis of the letters you <emphasis>can</emphasis>
-        see. Then point to the right place and enter the second letter's square.</para>
-    </sect2>
-    <sect2>
-      <title>Example</title>
-      <figure id="figHad1">
-        <title>Writing <quote>
-            <computeroutput>I once had a whim</computeroutput>
-          </quote>;. Where should the user steer now?</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/exampleHad2.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para> Imagine you want to write `<computeroutput>I once had a whim</computeroutput>'. You
-        write `<computeroutput>I once ha...</computeroutput>' and the Dasher display looks like
-          <xref linkend="figHad1"/>. You want to write `<computeroutput>had</computeroutput>'. What
-        should you do? There are lots of letter <computeroutput>d</computeroutput>s on the screen,
-        and all of them are rather small. The five arrows in <xref linkend="figHad1"/> show some of
-        these <computeroutput>d</computeroutput>s. The purple arrow points to a
-        <computeroutput>d</computeroutput> that we can't see yet, but we know it must be there
-        because we can see `<computeroutput>a</computeroutput>',
-        `<computeroutput>b</computeroutput>', and `<computeroutput>c</computeroutput>' above it.</para>
-      <figure id="figHad2">
-        <title>Some alternative letter <computeroutput>d</computeroutput>s, with a beginner's error
-          highlighted</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/exampleHad2a.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para> A common beginner's mistake is to keep rushing forward and spot
-        <emphasis>any</emphasis> of these letter <computeroutput>d</computeroutput>s, and zoom into
-        it. For example, <xref linkend="figHad3"/> shows what happens if the user zooms towards the
-          <computeroutput>d</computeroutput> highlighted in <xref linkend="figHad2"/>.</para>
-      <figure id="figHad3">
-        <title>What happens when you select the wrong <computeroutput>d</computeroutput></title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/exampleHad3a.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-
-      <para>If you go in this <computeroutput>d</computeroutput>, you are writing `<computeroutput>I
-          once </computeroutput><emphasis>head</emphasis><computeroutput>...</computeroutput>'. The
-        other two <computeroutput>d</computeroutput>s labelled by red arrows (in <xref
-          linkend="figHad1"/>) correspond to writing `<computeroutput>I once
-          </computeroutput><emphasis>heard</emphasis><computeroutput>...</computeroutput>' and
-          `<computeroutput>I once
-        </computeroutput><emphasis>hedge</emphasis><computeroutput>...</computeroutput>'.</para>
-
-
-      <para> It is crucial to understand that there is only one correct
-        <computeroutput>d</computeroutput>, namely the <computeroutput>d</computeroutput> that is
-        immediately inside the blue box corresponding to letter `<computeroutput>a</computeroutput>'
-        in the sequence `<computeroutput>I once ha</computeroutput>'. That blue box is highlighted
-        in <xref linkend="figHad4"/>.</para>
-      <figure id="figHad4">
-        <title>The correct letter <computeroutput>d</computeroutput> is the one marked by the green
-          arrow. This example illustrates the rule <quote>always keep going
-            <emphasis>inside</emphasis> the box that you want</quote>; in this case, the blue box
-          associated with the letter <computeroutput>a</computeroutput> of the word <quote>
-            <computeroutput>had</computeroutput>
-          </quote>; </title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/exampleHad4.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <para>If you ever leave that blue box (as we did in <xref linkend="figHad3"/>) then we lose
-        the letter `<computeroutput>a</computeroutput>'.</para>
-    </sect2>
-
-    <sect2>
-      <title>Summary</title>
-      <para>
-        <emphasis>Don't click. Don't drag. And don't speed.</emphasis>
-      </para>
-    </sect2>
-
-    <sect2>
-      <title>What do the colours mean?</title>
-      <para> In the English-language desktop version 3 of Dasher, <itemizedlist>
-          <listitem>
-            <para><emphasis>white</emphasis> squares contain the space characters (always placed at
-              the bottom of the alphabet);</para>
-          </listitem>
-
-          <listitem>
-            <para>a special <emphasis>yellow</emphasis> box contains the upper case characters
-              [A-Z];</para>
-          </listitem>
-
-          <listitem>
-            <para>a <emphasis>red</emphasis> box contains numerals [0-9] (if the full alphabet is
-              enabled);</para>
-          </listitem>
-
-          <listitem>
-            <para>a <emphasis>green</emphasis> box contains punctuation characters (with the
-              characters most similar to the space character [.,;:-] placed at the bottom, next to
-              the <emphasis>white</emphasis> space character. Within the punctuation section,
-              letters with similar roles are coloured similarly: punctuation characters similar to
-              the period [.,;:-] are coloured slate-blue;</para>
-          </listitem>
-          <listitem>
-            <para>the other colours are included simply to discriminate the squares from each
-            other.</para>
-          </listitem>
-          <listitem>
-            <para>In languages with accents (grave, acute, circumflex, etc), the accents are
-              displayed in an <emphasis>orange</emphasis> box.</para>
-          </listitem>
-          <listitem>
-            <para> In the Japanese version of Dasher, colours are used to distinguish the different
-              hiragana groups (eg ka,ki,ku,ke,ko are orange).</para>
-          </listitem>
-          <listitem>
-            <para> In the Korean version of Dasher, three different colours are used to distinguish
-              initial consonants, vowels, and terminal consonants.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-      <para> You can alter the colour scheme by editing the <computeroutput>colour</computeroutput>
-        and <computeroutput>alphabet</computeroutput> xml files, as described in <xref
-          linkend="personalising"/>.</para>
-    </sect2>
-    <sect2>
-      <title>How to start dasher (version 4)</title>
-      <para> Set the dasher application running; when the dasher window comes up, either click the
-        left mouse button or press the space bar to set it going. [One of these two will work.]
-        Repeat this action (click or space), when you are finished, to stop dasher from dashing.
-        Your computer's mouse controls Dasher.</para>
-
-      <para> Adjust the speed slider to fix the maximum speed Dasher will zoom at. A speed of 1 is
-        good for a beginner, increasing to 2 after 5 minutes' practice, and to 4 when you are
-        expert.</para>
-    </sect2>
-    <sect2>
-      <title>How to start dasher (version 2) on pocket PC</title>
-      <para> Install, run (wait a few seconds for it to load up the training file), then touch the
-        screen with the stylus to make dasher move.</para>
-
-      <para>There are three special strongly-coloured squares in this version of Dasher, coloured
-        yellow, red (in some releases only), and green; all three squares do not produce any
-        character; these squares indicate sub-groupings of the alphabet. (Uppercase Alphabet,
-        Numerals (in some releases only), and Punctuation.)</para>
-    </sect2>
-  </sect1>
-  <!--<sect1 id="usage">
-    <title>Using Dasher</title>
-    <sect2 id="menubar">
-      <title>Menus</title>
-      <para> The menu bar, located at the top of the <interface>Main Window</interface>, provides
-        the following commands: </para>
-      <variablelist>
-        <varlistentry>
-          <term>
-            <guimenu>File</guimenu>
-          </term>
-          <listitem>
-            <para>This menu contains the following commands: <itemizedlist>
-                <listitem>
-                  <para>
-                    <guimenuitem>New</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Open</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Save</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Save As</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Append to file</guimenuitem> this command can be used to append
-                    the current Dasher buffer to an existing text file.</para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Import training text</guimenuitem> this command can be used to
-                    add the contents of an existing text file to Dasher's language model.</para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Quit</guimenuitem>
-                  </para>
-                </listitem>
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>
-            <guimenu>Edit</guimenu>
-          </term>
-          <listitem>
-            <para> This menu contains the following commands: <itemizedlist>
-                <listitem>
-                  <para>
-                    <guimenuitem>Cut</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Copy</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Paste</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Copy All</guimenuitem>
-                  </para>
-                </listitem>
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>
-            <guimenu>Options</guimenu>
-          </term>
-          <listitem>
-            <para> This menu contains the following commands: <itemizedlist>
-                <listitem>
-                  <para><guimenuitem>Preferences</guimenuitem>, which launches the <link
-                      linkend="prefs">
-                      <interface>Preferences Dialog</interface>
-                    </link></para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Edit font</guimenuitem> alters the font used in the edit
-                  box.</para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Dasher font</guimenuitem> alters the size of the moving
-                    characters.</para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Dasher font size</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Enter text into other windows</guimenuitem> this causes Dasher
-                    to enter text into whichever window is selected.</para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Control mode</guimenuitem> this causes an extra node to appear
-                    at the bottom of the alphabet. Here, you can edit text directly from within
-                    Dasher, cause Dasher to speak text that you have entered and stop or pause
-                    Dasher.</para>
-                </listitem>
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>
-            <guimenu>Help</guimenu>
-          </term>
-          <listitem>
-            <para>This menu contains the following commands: <itemizedlist>
-                <listitem>
-                  <para><guimenuitem>About</guimenuitem> shows basic information about
-                      <application>Dasher</application>, such as author's name and version number.
-                  </para>
-                </listitem>
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </sect2>
-
-    <sect2 id="prefs">
-      <title>Customization</title>
-      <para> To change default settings, select <guimenuitem>Preferences</guimenuitem> command in
-          <guimenu>Settings</guimenu> menu. This launches the <interface>Preferences
-        dialog</interface>, shown in <xref linkend="prefs1"/>, <xref linkend="prefs2"/>, <xref
-          linkend="prefs3"/>, <xref linkend="prefs4"/> and <xref linkend="prefs5"/>. </para>
-      <figure id="prefs1">
-        <title>&quot;Alphabet&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs1.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para> Dasher has support for many languages, and the choice of which language to write in is
-        made with this dialog. Note that some languages (for example, Hiragana, Korean and the
-        International Phonetic Alphabet) may require fonts that you do not have installed. For
-        information on creating your own alphabet files, see the <ulink
-          url="http://www.inference.phy.cam.ac.uk/dasher/" type="http">Dasher website</ulink>. </para>
-      <figure id="prefs2">
-        <title>&quot;Colour&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs2.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para> Dasher has support for different colour schemes. The 'Default' colour scheme is a
-        simple rotation of colours that should work with any language. Enhanced colour schemes may
-        be used for languages with logical groupings (such as Hiragana or Korean) or to increase
-        contrast. </para>
-      <figure id="prefs3">
-        <title>&quot;Control&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs3.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para>
-        <itemizedlist>
-          <listitem>
-            <para><guimenuitem>One dimensional mode</guimenuitem> maps the Y coordinate of the mouse
-              position to an X/Y coordinate, for use with one-dimensional input methods.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Eyetracker mode</guimenuitem> optimisations for eyetrackers 
-              specifically, makes Dasher behave as in one-dimensional mode near the right hand edge
-              of the screen.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Start on left mouse button</guimenuitem> the left mouse button starts
-              and stops Dasher.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Start on space bar</guimenuitem> the space bar starts and stops
-              Dasher.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Start with mouse position</guimenuitem> when Dasher is paused, a red
-              box appears. Hold the cursor inside the red box until a yellow box appears. Hold the
-              cursor inside the yellow box. Dasher will then start..</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Copy all on stop</guimenuitem> when stopped, Dasher will copy all
-              text to the clipboard automatically.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Speak on stop</guimenuitem> when stopped, Dasher will speak newly
-              entered text automatically.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Pause outside window</guimenuitem> Dasher will pause if the mouse
-              pointer moves outside its window.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-      <figure id="prefs4">
-        <title>&quot;View&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs4.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para>
-        <itemizedlist>
-          <listitem>
-            <para><guimenuitem>Orientation</guimenuitem> alters the direction that the text moves
-              in. If set to &quot;Alphabet default&quot;, the alphabet file will choose the
-              appropriate direction for the alphabet.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Show toolbar</guimenuitem> you can hide Dasher's toolbar if you wish.
-              Calling dasher with the '-o' switch will open a reduced-options version of dasher,
-              designed for entry into other applications.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Show speed slider</guimenuitem> enable/disable the speed
-            slider.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Show mouse position</guimenuitem> in some situations (such as
-              one-dimensional or eyetracker mode), the absolute position of the mouse will differ
-              from Dasher's perception of the mouse position. This option shows you where Dasher's
-              mouse is.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Draw line between crosshairs and mouse</guimenuitem> helpful for
-              users who have trouble keeping track of the pointer.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Draw box outlines</guimenuitem> increases the contrast around the
-              edges of boxes, to help distinguish between them.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Change colour scheme automatically</guimenuitem> languages such as
-              Hiragana are aware of which colour scheme they should be using. This option allows an
-              alphabet to select its colour scheme automatically.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-      <figure id="prefs5">
-        <title>&quot;Advanced&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs5.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para>
-        <itemizedlist>
-          <listitem>
-            <para><guimenuitem>Smoothing</guimenuitem> adds a &quot;uniform&quot; element to
-              the language model's predictions. A smoothing value of 100 will result in an entirely
-              uniform distribution being used  each box will have the same size.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Timestamp new files</guimenuitem> each file created by Dasher will
-              automatically have the current time in its filename.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Distance from centreline for start on mouse position</guimenuitem>
-              controls the range for the 'Start on mouse position' option.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Number of pixels that should cover the entire Y range</guimenuitem>
-              some input devices do not have enough gain to cover an entire Dasher window; this
-              option increases the gain of displacement on the Y axis.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-    </sect2>
-  </sect1>-->
-  <sect1 id="reallife">
-    <title>How to use Dasher in real life</title>
-
-    <para> Dasher can be used to communicate through your computer, and (to some degree) to control
-      your computer. Obviously, the simplest way to communicate with Dasher is to have the person
-      you're talking to watch the screen as you write. But there are lots of other ways to
-      communicate through Dasher.</para>
-
-    <sect2>
-      <title>Copy to clipboard</title>
-
-      <para> If you have the `copy on stop' feature switched on, then, every time you stop Dasher,
-        the contents of Dasher's text box get copied directly to your computer's clipboard. You can
-        then use the `Paste' function of another application to transfer what you've written.</para>
-    </sect2>
-
-    <sect2>
-      <title>Speaking</title>
-
-      <para>Dasher connects to your computer's built-in text-to-speech system. There are several
-        ways to use Dasher for speaking.</para>
-
-      <para> You can choose to have Dasher `speak each word': every time you pass through the end of
-        a word (by entering a space character for example), that word gets spoken immediately.</para>
-
-      <para> You can also choose to have Dasher `speak on stop': every time you stop Dasher moving,
-        everything that is in the text box gets spoken.</para>
-
-      <para> Finally, you can speak exactly when you want to by switching on <emphasis>Control
-        Mode</emphasis> (which is under the Options Menu in Dasher version 3). This mode brings up
-        an extra box in the Dasher alphabet, coloured grey, which works a bit like an escape key on
-        a keyboard. If you go inside the Control box, you will find several control-related options:
-        Stop (red); pause (yellow); Move; Delete; and Speak. Inside the Speak box are the options to
-        `speak everything', `speak new' (just the new words that you wrote since the last
-        utterance), and `speak again' (which re-speaks whatever was last spoken).</para>
-    </sect2>
-
-    <sect2>
-      <title>Save to file</title>
-
-      <para> You can save whatever is in the text box of Dasher as a plain text file by clicking the
-        `Save file' icon in the icon bar, or using the menus at the top of the Dasher window
-        (selecting File then Save).</para>
-    </sect2>
-
-    <sect2>
-      <title>Send text to other window</title>
-
-      <para> You can also have whatever is written in Dasher be directly beamed to another window.
-        Enable the `send text to other window' option under the options menu. Then the window that
-        you select will get Dasher's output.</para>
-    </sect2>
-
-
-
-
-    <sect2>
-      <title>Font sizes</title>
-
-      <para> Dasher has a text box (where the text appears) and a Dasher canvas (where all the fun
-        zooming action happens). You can change the font sizes of both these regions using the
-        Dasher menus at the top of the Dasher window. The two fonts are called the `Edit font' (for
-        the text box's font), and the `Dasher font', I think. (I forget the exact menu names in
-        Dasher version 3, sorry.) To change the edit font size bring up the usual dialog box and
-        change size. To change the Dasher canvas size, find the Dasher-size option, which offers
-        three to choose from, named something like: small, medium, and large.</para>
-    </sect2>
-  </sect1>
-
-  <sect1 id="personalising">
-    <title>Personalizing Dasher</title>
-    <para> There are three classes of files you can tweak in order to make Dasher work better for
-      you: <computeroutput>alphabet</computeroutput> files, <computeroutput>colour</computeroutput>
-      files, and <computeroutput>training</computeroutput> files.</para>
-
-    <sect2>
-      <title>Personalizing the language model</title>
-      <para>Dasher's predictions (in version 3 of Dasher) are based not on a dictionary but on a
-        training text of ordinary text. For example, when you download Dasher version 3, it comes
-        with a file called <filename>training_english_GB.txt</filename>. This is 300 kbytes of
-        ordinary English harvested from various documents on the Internet. </para>
-
-      <para> When you use Dasher, it stores everything you write in another personal file with the
-        same name as the training file. Next time you use Dasher, it reads in the original training
-        file and everything you wrote last time, to help it predict better. Dasher learns all the
-        time. To get the best results from Dasher: <itemizedlist>
-          <listitem>
-            <para>If possible, provide Dasher with a training text in your own style -- a plain text
-              file made from documents you have written before, and containing your own pet phrases,
-              friends' names, and so forth. Either append this file to the training file, or replace
-              the original training file.</para>
-          </listitem>
-          <listitem>
-            <para> If you think your personal training file may have become corrupted with rubbish
-              text, edit it using any plain text editor. (Or ask a friend to do this for
-            you.)</para>
-          </listitem>
-          <listitem>
-            <para> If you use Dasher for many months, the personal training file may become so large
-              that Dasher becomes slow to start up; if so, edit the training file using a plain text
-              editor. </para>
-          </listitem>
-        </itemizedlist></para>
-    </sect2>
-    <sect2>
-      <title>Personalizing the alphabet</title>
-      <para> Which characters are available to you, and their order, is determined by the alphabet
-        file. For example, you might use <filename>alphabet.english.xml</filename>. Dasher comes
-        with many alternative alphabets. You can edit alphabet files to change which characters are
-        in the alphabet, or their order. When you edit this xml file, it might be a good idea to
-        save the new file with a new name and change the name of the alphabets in the new file, to
-        avoid confusion. Each field in the xml file specifies a symbol by three items: the character
-        that should be <emphasis>displayed</emphasis> (<computeroutput>d=</computeroutput>...); the
-        character that goes into the <emphasis>text</emphasis> when this symbol is selected
-          (<computeroutput>t=</computeroutput>...); and the background colour number of the box for
-        this symbol (<computeroutput>b=</computeroutput>...), of which more below.</para>
-    </sect2>
-    <sect2>
-      <title>Personalizing the colour scheme</title>
-      <para>You can change the colours of the Dasher world in two ways. The colour file (for example
-          <filename>colour.xml</filename> or <filename>colour.euroasian.xml</filename>) specifies
-        the 200 colours in the palette that Dasher uses. Each line specifies red, green, blue
-        values.</para>
-
-      <para> These colours are used to colour multiple objects in dasher. If for example you want to
-        change the colour of the <quote>red line</quote>;, change the second colour line of the
-        colour file, which reads <computeroutput>&lt;colour r=&quot;255&quot;
-          g=&quot;0&quot; b=&quot;0&quot;/&gt;</computeroutput>. </para>
-
-
-      <para> You can change which of these colours is used for each symbol's box by changing the
-          <quote>b</quote>; field for that symbol in the alphabet file.</para>
-    </sect2>
-
-
-
-
-  </sect1>
-  <sect1 id="languages">
-    <title>Languages</title>
-
-    <para> Dasher works in hundreds of languages.</para>
-
-    <para> For each language there is an alphabet file (or possibly more than one alphabet file). On
-      the Dasher website we aim to supply at least one training text for each language. If we don't
-      have a good training text for your language, please help us by making one and sending it to
-      us.</para>
-
-    <para> See the Dasher website for the list of languages supported by Dasher. As of October 2005,
-      all the major languages of the world are well supported, with the exception of Japanese and
-      Chinese, for which Dasher version 3 offers only phonetic support (hiragana and pin-yin). In
-      Dasher version 4, we will provide full support for Japanese and Chinese. </para>
-
-    <!--    %% Dasher works beautifully in Korean-->
-
-
-  </sect1>
-
-
-
-  <sect1 id="specialneeds">
-    <title>Dasher Special Needs Guide</title>
-
-    <para> Dasher is designed on the principle of getting <emphasis>as much information as
-      possible</emphasis> from the gestures you can make.</para>
-
-    <para> We can get information from whichever of the following is easiest for you: <orderedlist>
-        <listitem>
-          <para>
-            <emphasis>Continuous</emphasis> gestures (conveyed via a joystick, trackpad, head mouse,
-            or gaze tracker, for example) often achieve the highest rates of writing.</para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis>Discrete</emphasis> gestures (switches, button presses) may be able to convey
-            information in three different ways:</para>
-          <orderedlist>
-            <listitem>
-              <para> The <emphasis>time</emphasis> at which you press a button can convey
-                information. (This idea is used in grid systems controlled by a single
-              button.)</para>
-            </listitem>
-            <listitem>
-              <para>
-                <emphasis>How long</emphasis> you press a button for can convey information. (This
-                idea is used in Morse code, where two durations are distinguished.) </para>
-            </listitem>
-            <listitem>
-              <para> The <emphasis>choice</emphasis> of <emphasis>which</emphasis> button you press
-                can convey information. (This idea is used in ordinary keyboards.)</para>
-            </listitem>
-          </orderedlist>
-        </listitem>
-      </orderedlist></para>
-
-    <sect2 id="manual7">
-      <title>Continuous gestures</title>
-      <para> Dasher's normal mode (<emphasis>mouse mode</emphasis>) is driven by a two-dimensional
-        continuous steering gesture. Dasher also has a <emphasis>one-dimensional mode</emphasis>,
-        for users who can control only one dimension.</para>
-
-      <para> Can you make one or two continuous gestures? If you can operate a joystick, mouse,
-        trackpad, or rollerball, then you have a two-dimensional control. If you can point on a
-        touch-screen then that's perfect too. Can you move your nose around? If you can shake your
-        head, that's a one-dimensional control; if you can nod, that's two. A head-mouse can be
-        quite cheap, and it is a convenient way to drive Dasher. (We recommend the
-          <emphasis>SmartNav3</emphasis> from NaturalPoint, which costs about $200, and works under
-        microsoft windows only; this device used to be called the NavPoint TrackIR until 2002, when
-        that brand name was transferred to a different device. We also recommend the Origin
-        instruments <emphasis>Headmouse Extreme</emphasis>, which costs about $1000; it works as a
-        USB mouse on any computer.) Can you waggle one finger or one foot? These head-mice can be
-        used to track fingers and feet as well as heads. For a detailed comparison of SmartNav3 with
-        Headmouse Extreme, please see <ulink
-          url="http://www.inference.phy.cam.ac.uk/dasher/Headmouse.html" type="http">http://www.inference.phy.cam.ac.uk/dasher/Headmouse.html</ulink>.</para>
-
-      <para>If you are severely paralysed, the best option may be a gaze tracker. Do you have
-        control of where your eyes are looking? With a gaze tracker we can write at 25 words per
-        minute. Gaze trackers are quite expensive: we paid $2000 for the QuickGlance from EyeTech
-        Digital Systems, and the Tobii eyetracker costs about $20,000. [We recommend both of these
-        systems. You attach QuickGlance to an existing computer; Quickglance II costs about $4000.
-        Tobii is a complete computer with built-in eyetracking cameras.] Dasher also works with the
-        Eye response <emphasis>Erica</emphasis>, with LC's <emphasis>Eyegaze</emphasis>, and with
-        Metrovision's gaze-tracker. All three of these systems are complete computers with
-        eye-tracking cameras attached.</para>
-
-      <para> If joysticks, mice, rollerballs, and gaze trackers don't work, there may be a few other
-        ways to convey a continuous one-dimensional signal. Lips and eyebrows should both work,
-        though we don't know of any manufacturer selling appropriate devices. Breath is a
-        one-dimensional signal too. If you can control your breath, it should be possible to make a
-        breath mouse for you. We made our $22 breath mouse using a USB optical mouse, a belt, and
-        some elastic, and our most experienced user can write at 15 words per minute by breath
-        alone.</para>
-      <sect3>
-        <title>Starting and stopping</title>
-        <para>There are several ways of starting and stopping Dasher. Pressing a button (for
-          example, the left mouse button or the space bar) is one option. But if you can not press
-          any buttons, it's possible to start and stop using only continuous gestures: in the
-          options menu, select <quote>start on position</quote>; and switch on <quote>control
-          mode</quote>;. When control mode is switched on, the Dasher alphabet includes a special
-          Control node (a bit like an <computeroutput>Esc</computeroutput> key on a keyboard),
-          within which various control functions are available. When you are inside the control
-          node, Dasher moves more slowly than normal, for safety. The control node options include
-          `pause' and `stop'. Use `pause' if you are half-way through writing something, and want to
-          pause for a moment. Use `stop' when you have finished. <command>Pause</command> and
-            <command>stop</command> produce the same behaviour, except <command>stop</command> may
-          cause other automatic actions, such as `speak on stop', or `copy the text
-          <!--% to clipboard --> on stop'.</para>
-
-        <para>When Dasher is paused or stopped, it can be restarted using any of the starting
-          methods that are enabled. If `start on position' is enabled, then whenever Dasher is
-          stopped a sequence of large targets will be displayed; you restart Dasher by pointing at
-          (or looking at) the first (red) target, then the second (yellow) target. (We use two
-          targets in sequence to make it difficult to start Dasher by accident.)</para>
-      </sect3>
-      <sect3>
-        <title>Recommendations for head-tracking</title>
-        <para> Many trackers have `smoothing' options, which determine the frequency with which the
-          mouse position is updated; these options are normally used to smooth and damp down the
-          mouse motion. For Dasher, we don't want such smoothing. We like instant, live, raw and
-          jerky mouse coordinates. If there is a `smoothing' control, turn it right down.</para>
-
-        <para>The `gain' (sometimes called the `speed') of the head-tracker is also an important
-          setting to adjust. Some trackers' gains can be adjusted in software. You can also adjust
-          the gain by changing the geometry of your tracker: if you move the tracked dot from your
-          forehead to the brim of a baseball cap, for example, then you roughly double the gain.
-          Sitting closer to the tracker may also increase the gain. Find a gain setting that is
-          comfortable. I like high gain because it allows me to steer with very small head
-        motions.</para>
-      </sect3>
-      <sect3>
-        <title>Recommendations for gaze-tracking</title>
-        <para>For good results with gaze trackers, we strongly recommend that the gaze-tracker be
-          made to be as responsive as possible. Many trackers have `smoothing' options, which
-          determine the frequency with which the mouse position is updated and the number of
-          successive gaze images used to estimate the mouse position. These options are normally
-          used to smooth and damp down the mouse motion. For Dasher, we don't want such smoothing.
-          We like instant, live, raw and jerky mouse coordinates. When you are navigating, your eye
-          moves very quickly to the target you are interested in, and we want Dasher to respond
-          instantly. The ideal settings for Dasher may be very different from the ideal settings for
-          other software. Ask your eyetracker manufacturer to make it easy to change the settings
-          when switching application. </para>
-
-        <para> Dasher has several options designed for use with gaze-trackers. We recommend using
-            <emphasis>eyetracker mode</emphasis> (under Options/Preferences/Control). In this mode,
-          the dynamics of Dasher are slightly different from standard dynamics, making
-          error-correction easier by gaze.</para>
-
-        <para>If your gaze-tracker's calibration drifts with time, for example when your head moves,
-          then you should select the <emphasis>Autocalibrate eyetracker</emphasis> feature. When
-          this feature is switched on, Dasher keeps track of your steering and infers the vertical
-          calibration error, and corrects for it. You can see this correction taking effect by
-          noticing the vertical offset between the mouse position as displayed by Dasher (by the tip
-          of the red line) and the gaze-tracker's mouse position (shown by the system's mouse
-          cursor).</para>
-
-        <para>To avoid difficulties with the mouse being bounded by the top and bottom of the
-          screen, we recommend choosing a window size for Dasher that is <emphasis>not</emphasis>
-          full-screen in size. Place the Dasher window so that there is a margin above and below the
-          Dasher canvas.</para>
-
-        <para><emphasis>Technical note:</emphasis> As well as through mouse emulation, Dasher is
-          able to receive tracking information from gaze trackers, head trackers, or similar systems
-          directly by means of a system socket. This option can be configured in the 'Input Device'
-          section of the 'preferences' dialogue.</para>
-      </sect3>
-    </sect2>
-    <sect2 id="manual8">
-      <title>Discrete Gestures</title>
-      <para>We have several versions of <emphasis>button Dasher</emphasis>, available in Dasher
-        Version 4.</para>
-
-      <sect3>
-        <title>Are time-critical gestures not an option?</title>
-        <para>Some ways of conveying information make use of the <emphasis>timing</emphasis> of
-          gestures. However, some people can't make gestures at a required instant. For example,
-          spastics find it very difficult to do an action `exactly now!'</para>
-
-        <para>If time-critical gestures are not an option, go to <xref linkend="no_time_critical"/>.</para>
-
-        <para>If you <emphasis>can</emphasis> convey information by <emphasis>precisely
-          timed</emphasis> gestures, go to section <xref linkend="timed"/>.</para>
-      </sect3>
-    </sect2>
-    <sect2 id="no_time_critical">
-      <title>`Timeless' choices of Dasher</title>
-      <para> So, you want to steer Dasher at your own pace. Can you make fairly-accurate continuous
-        gestures, given time? For example, can you position a pointer accurately on a screen, then
-        press a button to indicate that you are ready? Or can you touch a touch-screen fairly
-        accurately? <itemizedlist>
-          <listitem>
-            <para>If so, try <emphasis>click mode</emphasis>. Go to <xref
-                linkend="time_critical_button"/>.</para>
-          </listitem>
-          <listitem>
-            <para> Otherwise try <emphasis>direct button mode</emphasis> or <emphasis>menu button
-                mode</emphasis>. Go to <xref linkend="no_time_critical_button"/>.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-      <sect3 id="time_critical_button">
-        <title>`Timeless' continuous Dasher: click mode</title>
-
-        <para> In <emphasis>click mode</emphasis>, you position the mouse pointer where you want to
-          go, then press a button when you are ready. Dasher then zooms in on the position you
-          chose.</para>
-
-        <para> Alternatively, if you have a touch screen, a single touch on the screen initiates a
-          zoom to that position.</para>
-      </sect3>
-      <sect3 id="no_time_critical_button">
-        <title>`Timeless' choices of Button Dasher</title>
-        <para> How many different switches, keys, or buttons can you easily operate? </para>
-        <variablelist>
-          <varlistentry>
-            <term>1</term>
-            <listitem>
-              <para>With just one button, the only timeless way to convey information is by the
-                  <emphasis>duration</emphasis> of your button-presses. Can you make a distinction
-                between short presses and long presses? If so, you can use <emphasis>menu
-                  button-Dasher</emphasis>. Connect up your short press to the `menu' action, and
-                your long press to the `select' action. </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>2</term>
-            <listitem>
-              <para>You can use <emphasis>menu button-Dasher</emphasis>. Connect one button to the
-                `menu' action, and the other to the `select' action. If one button is easier to
-                press, make that button the `menu' button. </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>2.5</term>
-            <listitem>
-              <para>If you can easily press two buttons, and, for special occasions, you are able to
-                press a third button, you can use <emphasis>menu button-Dasher</emphasis> or
-                  <emphasis>direct button-Dasher</emphasis>. </para>
-              <orderedlist>
-                <listitem>
-                  <para> Set up <emphasis>menu button-Dasher</emphasis> as described above, and use
-                    the third button as your escape key -- to make Dasher go away, for example.
-                    [This feature is not currently provided within Dasher.]</para>
-                </listitem>
-                <listitem>
-                  <para> In <emphasis>direct button-Dasher</emphasis>, each button produces a
-                    particular navigation action such as `up', `down', or `back'. If you have 2.5
-                    buttons, map the convenient two to `up' and `down', and the inconvenient button
-                    to `back'.</para>
-                </listitem>
-              </orderedlist>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>3</term>
-            <listitem>
-              <para>You can use <emphasis>direct button-Dasher</emphasis> or <emphasis>menu
-                  button-Dasher</emphasis> as described above.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>4, 5, 6, or 7</term>
-            <listitem>
-              <para>With more than three buttons, you have the option to use <emphasis>direct
-                  button-Dasher</emphasis> with three, four, five, or six `forward' directions.
-                Please try <emphasis>menu button-Dasher</emphasis> too, even though it uses only two
-                buttons.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>8 or more</term>
-            <listitem>
-              <para>Try <emphasis>direct button-Dasher</emphasis> and <emphasis>menu
-                button-Dasher</emphasis>. With this many buttons, you also have the option of using
-                a system like T9 -- the predictive-text system found on many mobile phones. You may
-                wish to investigate <emphasis>Tapir</emphasis>, a disambiguating on-screen keyboard
-                from the developers of Dasher.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </sect3>
-    </sect2>
-
-    <sect2 id="timed">
-      <title>Button Dashers that exploit timing</title>
-      <para>There are two Dasher modes which make use of precise timing information, and generally
-        require fewer button presses than the nn-time-critical modes:</para>
-      <sect3 id="onebutton">
-        <title>(One button) dynamic mode</title>
-        <para>When started, Dasher will zoom towards a point towards the top or bottom of the
-          display. A short button press will switch the point of zoom to the opposite side. Text can
-          be entered by pressing the button when the desired phrase reaches the edge of the
-        display.</para>
-      </sect3>
-      <sect3 id="twobutton">
-        <title>Two button dynamic mode</title>
-        <para>Dasher zooms continuously towards the centre of the screen, with the two buttons being
-          used to shift the display up and down. The buttons should be pressed whenever the desired
-          text is aligned with the two markers.</para>
-      </sect3>
-      <sect3>
-        <title>Correcting errors</title>
-        <para>In either dynamic mode, there are three options for error correction: using an
-          additional button, long presses or multiple presses. In all cases these actions will
-          switch to a mode where Dasher unzooms at a fixed rate. In this mode, one more press will
-          stop Dasher and a second press will return Dasher to forward zooming.</para>
-      </sect3>
-    </sect2>
-  </sect1>
-
-  <sect1 id="modesummary">
-    <title>Summary of Dasher Modes</title>
-    <para> The various modes of <application>Dasher</application> are listed below. The mode may be
-      changed via the <emphasis>
-        <quote>edit</quote>
-      </emphasis> menu. Select <emphasis>
-        <quote>Preferences</quote>
-      </emphasis> and then <emphasis>
-        <quote>Control</quote>
-      </emphasis>. Each mode has a number of variable parameters associated with it which can be
-      adjusted using the <emphasis>options</emphasis> button located below the mode menu. </para>
-
-    <sect2 id="normal">
-      <title>Normal</title>
-      <para> The original <application>Dasher</application> mode. Functions using a two dimensional
-        steering gesture, from a mouse, say. A one-dimensional mode is also available, for those who
-        may not be able to control two-dimensions, and a special eyetracker mode is available for
-        those using Dasher with a gaze or head tracker. Dasher can be started using mouse position
-        alone if clicking is not possible - select 'Start on Mouse Position' and 'Circle Start' to
-        allow starting and stopping by dwelling in the circle in the centre of the display. The 'Two
-        Box' start mode starts Dasher by dwelling in the two boxes in sequence. In the latter case
-        stopping must be done through control mode.</para>
-    </sect2>
-
-    <sect2 id="click">
-      <title>Click Mode</title>
-      <para> In <emphasis>click mode</emphasis> you position the mouse pointer where you want to go,
-        then press the button when you are ready. <application>Dasher</application> then zooms into
-        the place where you clicked. </para>
-    </sect2>
-
-    <sect2 id="menu">
-      <title>Menu Mode</title>
-      <para> One button is used to select a location, and once a second button is pressed
-          <application>Dasher</application> zooms to that location. The large box occurring last in
-        the cycle is used to zoom out.</para>
-    </sect2>
-
-    <sect2 id="direct">
-      <title>Direct Mode</title>
-      <para>Direct mode is similar to menu mode, except boxes are assigned directly to each button
-        rather than being selected in sequence.</para>
-    </sect2>
-
-    <sect2 id="compass">
-      <title>Compass Mode</title>
-      <para>Compass mode makes use of four buttons. Two buttons are used to control vertical
-        position. When the required vertical position has been reached a third button is pressed to
-        zoom in. After zooming in on the location, the user once more selects vertical position. A
-        forth button zooms out if an error is made.</para>
-    </sect2>
-
-    <sect2 id="dynamic">
-      <title>(One Button) Dynamic Mode</title>
-      <para>
-        <application>Dasher</application> continually zooms in and a single button may be used to
-        move <quote>up</quote> and <quote>down</quote>. There is also a <emphasis>Two Button Dynamic
-          Mode</emphasis> where two buttons are used to control motions <quote>up</quote> and
-          <quote>down</quote>. A third button, long presses or multiple presses can be used to
-        unzoom and correct errors. </para>
-    </sect2>
-
-    <sect2 id="buttondynamic">
-      <title>Two Button Dynamic Mode</title>
-      <para>
-        <application>Dasher</application> continually zooms in, whilst two buttons are used to
-        control vertical motion. Correction is performed in the same way as One button dynamic
-      mode.</para>
-    </sect2>
-  </sect1>
-
-
-
-
-
-  <sect1 id="authors">
-    <title>Authors</title>
-    <para>
-      <application>Dasher</application> was written by the members of The Dasher Project
-        (<email>dasher@inf.phy.cam.ac.uk</email>). To find more information about it, please visit
-        <application>Dasher's</application>
-      <ulink url="http://www.inference.phy.cam.ac.uk/dasher/" type="http">Web page</ulink>. Please
-      send all comments, suggestions, and bug reports to the <ulink url="http://bugzilla.gnome.org/enter_bug.cgi?product=dasher"
-        type="http">GNOME bug tracking database</ulink>. Instructions for submitting bug reports can
-      be found on-line at <ulink url="http://bugzilla.gnome.org/page.cgi?id=bug-writing.html" type="http">
-        http://bugzilla.gnome.org/page.cgi?id=bug-writing.html</ulink>. If you are using GNOME 1.1 or later, you can
-      also use command <command>bug-buddy</command> for submitting bug reports.</para>
-    <para> This manual was written by The Dasher Project (<email>dasher@inf.phy.cam.ac.uk</email>).
-      Please send all comments and suggestions regarding the manual to the GNOME Documentation
-      Project at <email>gnome-doc-list@gnome.org</email>.</para>
-  </sect1>
-</article>
--- a/Data/Help/Gnome/C/dasher.xml.in
+++ /dev/null
@@ -1,1311 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-<article id="index">
-  <articleinfo>
-    <title>Dasher Manual</title>
-    <corpauthor role="maintainer">The Dasher Project</corpauthor>
-    <copyright>
-      <year>2010</year>
-      <holder>The Dasher Project</holder>
-    </copyright>
-    <legalnotice>
-      <para>Permission is granted to make and distribute verbatim copies of this manual provided the
-        copyright notice and this permission notice are preserved on all copies.</para>
-      <para>Permission is granted to copy and distribute modified versions of this manual under the
-        conditions for verbatim copying, provided that the entire resulting derived work is
-        distributed under the terms of a permission notice identical to this one.</para>
-      <para>Permission is granted to copy and distribute translations of this manual into another
-        language, under the above conditions for modified versions, except that this permission
-        notice may be stated in a translation approved by the Free Software Foundation.</para>
-      <para>UNIX is a trademark of X/Open Group.</para>
-      <para>Linux is a trademark of Linus Torvalds.</para>
-      <para>X Window System is a trademark of X Consortium, Inc.</para>
-      <para>Windows is a trademark of Microsoft Corp.</para>
-      <para>Macintosh and Apple are trademarks of Apple Computer, Inc.</para>
-      <para>All other trademarks are property of their respective owners.</para>
-    </legalnotice>
-    <abstract role="description">
-      <para>Dasher is an accessible text entry application that uses pointing gestures
-        rather than typing. It is designed to be fast while fun to use.</para>
-    </abstract>
-    <revhistory>
-      <revision>
-        <revnumber>1.0.0</revnumber>
-        <date>2004-02-08</date>
-      </revision>
-      <revision>
-        <revnumber>1.1.0</revnumber>
-        <date>2006-03-31</date>
-      </revision>
-      <revision>
-        <revnumber>1.2.0</revnumber>
-        <date>2006-07-11</date>
-      </revision>
-      <revision>
-        <revnumber>1.2.1</revnumber>
-        <date>2006-09-02</date>
-      </revision>
-    </revhistory>
-  </articleinfo>
-
-  <sect1 id="intro">
-    <title>Introduction</title>
-    <para><application>Dasher</application> is an information-efficient text-entry interface, driven
-      by natural continuous pointing gestures. Dasher is a competitive text-entry system wherever a
-      full-size keyboard cannot be used - for example on a palmtop or wearable computer, or when
-      operating a computer one-handed (by joystick, touchscreen or mouse) or zero-handed (i.e. by
-      head-mouse or eyetracker). This document describes version 4.2.0 of
-      <application>Dasher</application>.</para>
-    <para><application>Dasher</application> can be started by selecting
-      <guimenuitem>Dasher</guimenuitem> from the <guisubmenu>Accessibility </guisubmenu> submenu of
-      the <guimenu>Main Menu</guimenu>, or by running the command <command>dasher</command> on the
-      command line.</para>
-  </sect1>
-  <sect1 id="whatsnew">
-    <title>What's New</title>
-
-    <sect2>
-      <title>New features In version 4.2</title>
-
-
-      <para> There is an automatic speed control, which will speed up Dasher when it senses you are
-        able to go faster. </para>
-
-      <para> There is a new socket interface allowing Dasher to listen to head-trackers or
-        gaze-trackers or EEG-interfaces without going through the mouse.</para>
-
-      <para> There are several `button modes' for people who want to drive Dasher using one, two,
-        three, or four switches.</para>
-
-      <para> There is a `click mode', for people who like to point where they want to go, and click
-        to take a single step in that direction. This is aimed at beginners, in particular</para>
-
-
-    </sect2>
-    <sect2>
-      <title>What's coming in version 4.4</title>
-      <para> We will implement a game-mode for Dasher: this will help novices learn to write. A
-        teaching hand will guide the novice when he goes astray, and novices who write fast without
-        needing much guidance will win lots of points. </para>
-
-      <para> New language models will be added, which will make predictions at the word level as
-        well as the letter level.</para>
-
-      <para>Japanese and Chinese will be fully supported. </para>
-
-      <para>The Dasher team also hopes to create a free web-cam-based head tracker and gaze tracker,
-        `FreeVIM', by December 2006. </para>
-    </sect2>
-  </sect1>
-  <sect1 id="basics">
-    <title>Dasher Basics</title>
-    <para>Dasher is an information-efficient text-entry interface, driven by natural continuous
-      pointing gestures. Dasher is a competitive text-entry system wherever a full-size keyboard
-      cannot be used - for example, <itemizedlist>
-        <listitem>
-          <para>On a palmtop computer;</para>
-        </listitem>
-        <listitem>
-          <para>on a wearable computer;</para>
-        </listitem>
-        <listitem>
-          <para>when operating a computer one-handed, by joystick, touchscreen, trackball, or
-          mouse;</para>
-        </listitem>
-        <listitem>
-          <para>when operating a computer with zero hands (i.e., by head-mouse or by
-          eyetracker).</para>
-        </listitem>
-      </itemizedlist> The eyetracking version of Dasher allows an experienced user to write text as
-      fast as normal handwriting - 29 words per minute; using a mouse, experienced users can write
-      at 39 words per minute.</para>
-
-    <para> Dasher can be used to write efficiently in any language. </para>
-
-    <para>Dasher is fast and fun to learn.
-      <!--TODO - write this section (See what
- users round the world say, in section \ref{sec.users}.)-->
-    </para>
-
-    <para>Dasher is <emphasis>free software</emphasis>. It's distributed under the same license as
-      GNU/Linux, the GPL. </para>
-
-    <sect2>
-      <title>How does Dasher work?</title>
-
-      <blockquote>
-        <attribution>Financial Times, 5th February 2002</attribution>
-        <para>Dasher is like an arcade game: `Attack of the killer alphabets', perhaps.</para>
-      </blockquote>
-
-      <para>Dasher is a zooming interface. You point where you want to go, and the display zooms in
-        wherever you point. The world into which you are zooming is painted with letters, so that
-        any point you zoom in on corresponds to a piece of text. The more you zoom in, the longer
-        the piece of text you have written. You choose what you write by choosing where to zoom.</para>
-
-      <para>To make the interface efficient, we use the predictions of a language model to determine
-        how much of the world is devoted to each piece of text. Probable pieces of text are given
-        more space, so they are quick and easy to select. Improbable pieces of text (for example,
-        text with spelling mistakes) are given less space, so they are harder to write. The language
-        model learns all the time: if you use a novel word once, it is easier to write next time.</para>
-
-
-
-      <para>A big advantage of Dasher over other predictive text-entry interfaces that offer
-        word-completions to the user is that it is <emphasis>mode-free</emphasis>: the user does not
-        need to switch from a writing mode to an <quote>accept-model-predictions</quote> mode.</para>
-
-      <para>Another advantage is that it is easy to train the model on any writing style: simply
-        load up an example file, then write away!</para>
-
-      <para> It's quite hard to convey in words what Dasher looks like, so please visit <ulink
-          url="@PACKAGE_URL@" type="http">@PACKAGE_URL@</ulink> to see movies.</para>
-
-    </sect2>
-    <sect2>
-      <title>Dasher explained -- the library analogy</title>
-      <para> Imagine <emphasis>a library containing all possible books</emphasis>, ordered
-        alphabetically on a single shelf. Books in which the first letter is <quote>a</quote>; are
-        at the left hand side. Books in which the first letter is <quote>z</quote>; are at the
-        right. In picture (i) below, the shelf is shown vertically with <quote>left</quote>; (a) at
-        the top and ,<quote>right</quote>; (z) at the bottom. The first book in the
-        <quote>a</quote>; section reads
-        <quote><computeroutput>aaaaaaaaaaaa</computeroutput>...</quote>; somewhere to its right are
-        books that start <quote><computeroutput>all good things must come to an
-          end</computeroutput>...</quote>; a tiny bit further to the right are books that start
-            <quote><computeroutput>all good things must come to an
-        enema</computeroutput>...</quote>.</para>
-
-
-      <para> When someone writes a piece of text, their choice of the text string can be viewed as a
-        choice of a book from this library of all books - the book that contains exactly the chosen
-        text. How do they choose that book? Let's imagine they want to write
-            <quote><computeroutput>all good things</computeroutput>...</quote>;</para>
-      <figure>
-        <title>The library of all books.</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/a-z.gif"/>
-          </imageobject>
-          <imageobject>
-            <imagedata fileref="figures/aa-az.gif"/>
-          </imageobject>
-          <imageobject>
-            <imagedata fileref="figures/ala-alz.gif"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para>First, they walk into the <quote>
-          <computeroutput>a</computeroutput>
-        </quote>; section of the library. There, they are confronted by books starting <quote>
-          <computeroutput>aa</computeroutput>
-        </quote>;, <quote>
-          <computeroutput>ab</computeroutput>
-        </quote>, <quote><computeroutput>ac</computeroutput>...</quote>; <quote>
-          <computeroutput>az</computeroutput>
-        </quote>; [Picture (ii)]. Looking more closely at the <quote>
-          <computeroutput>al</computeroutput>
-        </quote>; section, they can find books starting <quote>
-          <computeroutput>ala</computeroutput>
-        </quote>;, <quote>;<computeroutput>alb</computeroutput></quote>;,...; <quote>
-          <computeroutput>alz</computeroutput>
-        </quote>; [Picture (iii)].</para>
-
-      <para> By looking ever more closely at the shelf, the writer can find the book containing the
-        text he wishes to write. Thus writing can be described as <emphasis>zooming in on an
-          alphabetical library, steering as you go</emphasis>.</para>
-
-      <para> This is exactly how Dasher works, except for one crucial point: <emphasis>we alter the
-          SIZE of the shelf space devoted to each book in proportion to the probability of the
-          corresponding text.</emphasis> For example, not very many books start with an <quote>
-          <computeroutput>x</computeroutput>
-        </quote>;, so we devote less space to <quote><computeroutput>x</computeroutput>...;</quote>;
-        books, and more to the more plausible books, thus making it easier to find books that
-        contain probable text.</para>
-
-      <para> Here is the corresponding sequence of pictures of the library in Dasher. (The character
-          <quote>_</quote>; denotes the space character.)</para>
-      <figure>
-        <title>The library of all books.</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/a-z.gif"/>
-          </imageobject>
-          <imageobject>
-            <imagedata fileref="figures/aa-az.gif"/>
-          </imageobject>
-          <imageobject>
-            <imagedata fileref="figures/ala-alz.gif"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <!--
-\begin{center}
-\begin{tabular}{ccc}
-\mbox{\psfig{figure=images/a-z.m.gif.50.ps}}&
-\mbox{\psfig{figure=images/aa-az.m.gif.50.ps}}&
-\mbox{\psfig{figure=images/ala-alz.m.gif.50.ps}}\\
-(i)&(ii)&(iii)\\
-\end{tabular}
-\end{center}
-							      -->
-
-      <para> Dasher can be trained on examples of any writing style, and it learns all the time,
-        picking up your personal turns of phrase.</para>
-
-      <para>The image below shows the state of the Dasher interface while the user is writing the
-        word `objection'; alternative words that could easily be written at this point include
-        `objective', `objects_', and `object_oriented'.</para>
-      <figure>
-        <title>Writing `objection' in Dasher.</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/object.gif"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <para> If you find Dasher hard to imagine based on these static pictures, please take a look
-        at the movies on <ulink url="@PACKAGE_URL@" type="http">@PACKAGE_URL@</ulink>.</para>
-
-
-      <!--% When  you try Dasher for the first time,  please read the tips for novices.-->
-    </sect2>
-    <sect2>
-      <title>Tips for novices</title>
-      <para>Don't give up if it takes you a minute or two to get started - within ten minutes,
-        you'll be blazing along. It's a lot like driving a car. You should <emphasis>start by
-          driving cautiously</emphasis>. If you can't tell where you are going, <emphasis>stop
-        going</emphasis>. Indeed, you will probably learn Dasher fastest if you come to it with
-        car-driving analogies in mind, rather than standard computer analogies. For example, the way
-        navigation works is not by DRAGGING but by STEERING: if cars worked like windows computers,
-        you would have to <quote>grab</quote> the piece of road you want, then ,<quote>drag</quote>;
-        it towards you; but in a car, when you wish to drive right, you POINT RIGHT with your
-        steering wheel. Dasher does not work by dragging either. <emphasis>Do not try to grab things
-          and drag them. Just decide where you want to go, and point there.</emphasis></para>
-
-      <para>
-        <emphasis>The single most important concept</emphasis> that a novice user needs to
-        understand is that one should always continue <emphasis>inside</emphasis> the text written
-        so far: to select the book that contains <quote>all</quote>; as its first word, one does
-          <emphasis>not</emphasis> enter the <quote>a</quote>; section of the library, then exit the
-          <quote>;a</quote>; section, and enter the ,<quote>l</quote>; section. One enters the
-          <quote>a</quote>; section, then finds the <quote>al</quote>; section that is
-          <emphasis>within</emphasis> the <quote>a</quote>; section, then enters the
-        <quote>all</quote>; section <emphasis>within</emphasis> the <quote>al</quote>; section.</para>
-
-      <para> It's just like finding a name in a phonebook. To find <quote>
-          <computeroutput>Alison</computeroutput>
-        </quote>;, you don't go to the <quote>
-          <computeroutput>A</computeroutput>
-        </quote>; section of the phonebook, then the
-        <quote>;<computeroutput>L</computeroutput></quote>; section: you go into the <quote>
-          <computeroutput>A</computeroutput>
-        </quote>; section, then find <emphasis>within it</emphasis> the <quote>
-          <computeroutput>Al</computeroutput>
-        </quote>; section, and so forth. Once you are in the <quote>
-          <computeroutput>Al</computeroutput>
-        </quote>; section, you never leave it.</para>
-
-      <para><emphasis>The second most important idea</emphasis> is that what you have written
-        depends <emphasis>only</emphasis> on where you finally end up in the library, not on how you
-        got there; so there is no need to steer accurately on your way to your destination.
-          <emphasis>You are allowed to cut corners.</emphasis> (For example, in the previous image,
-        if you wanted to write `objects_are', it would be fine to move the mouse straight towards
-        the letters `are', even if this takes the mouse across the unwanted grey `i' square.)</para>
-
-
-
-
-      <para><emphasis>Common errors.</emphasis> Often, a beginner who is trying to find a particular
-        letter will drive the display forwards fast while hunting for the letter. The rule of the
-        road for Dasher users is just like that for car-drivers: don't drive forwards until you have
-        identified where you want to go! So, after you have found the first letter of your sentence,
-        and zoomed towards it, please <emphasis>SLOW DOWN and don't proceed any further into this
-          first letter's square until you have figured out where you should be steering
-        towards</emphasis>. Your next letter <emphasis>is</emphasis> there, immediately inside the
-        first square you have entered. The letters are ordered alphabetically. If you can't see your
-        letter, figure out where it must be on the basis of the letters you <emphasis>can</emphasis>
-        see. Then point to the right place and enter the second letter's square.</para>
-    </sect2>
-    <sect2>
-      <title>Example</title>
-      <figure id="figHad1">
-        <title>Writing <quote>
-            <computeroutput>I once had a whim</computeroutput>
-          </quote>;. Where should the user steer now?</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/exampleHad2.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para> Imagine you want to write `<computeroutput>I once had a whim</computeroutput>'. You
-        write `<computeroutput>I once ha...</computeroutput>' and the Dasher display looks like
-          <xref linkend="figHad1"/>. You want to write `<computeroutput>had</computeroutput>'. What
-        should you do? There are lots of letter <computeroutput>d</computeroutput>s on the screen,
-        and all of them are rather small. The five arrows in <xref linkend="figHad1"/> show some of
-        these <computeroutput>d</computeroutput>s. The purple arrow points to a
-        <computeroutput>d</computeroutput> that we can't see yet, but we know it must be there
-        because we can see `<computeroutput>a</computeroutput>',
-        `<computeroutput>b</computeroutput>', and `<computeroutput>c</computeroutput>' above it.</para>
-      <figure id="figHad2">
-        <title>Some alternative letter <computeroutput>d</computeroutput>s, with a beginner's error
-          highlighted</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/exampleHad2a.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para> A common beginner's mistake is to keep rushing forward and spot
-        <emphasis>any</emphasis> of these letter <computeroutput>d</computeroutput>s, and zoom into
-        it. For example, <xref linkend="figHad3"/> shows what happens if the user zooms towards the
-          <computeroutput>d</computeroutput> highlighted in <xref linkend="figHad2"/>.</para>
-      <figure id="figHad3">
-        <title>What happens when you select the wrong <computeroutput>d</computeroutput></title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/exampleHad3a.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-
-      <para>If you go in this <computeroutput>d</computeroutput>, you are writing `<computeroutput>I
-          once </computeroutput><emphasis>head</emphasis><computeroutput>...</computeroutput>'. The
-        other two <computeroutput>d</computeroutput>s labelled by red arrows (in <xref
-          linkend="figHad1"/>) correspond to writing `<computeroutput>I once
-          </computeroutput><emphasis>heard</emphasis><computeroutput>...</computeroutput>' and
-          `<computeroutput>I once
-        </computeroutput><emphasis>hedge</emphasis><computeroutput>...</computeroutput>'.</para>
-
-
-      <para> It is crucial to understand that there is only one correct
-        <computeroutput>d</computeroutput>, namely the <computeroutput>d</computeroutput> that is
-        immediately inside the blue box corresponding to letter `<computeroutput>a</computeroutput>'
-        in the sequence `<computeroutput>I once ha</computeroutput>'. That blue box is highlighted
-        in <xref linkend="figHad4"/>.</para>
-      <figure id="figHad4">
-        <title>The correct letter <computeroutput>d</computeroutput> is the one marked by the green
-          arrow. This example illustrates the rule <quote>always keep going
-            <emphasis>inside</emphasis> the box that you want</quote>; in this case, the blue box
-          associated with the letter <computeroutput>a</computeroutput> of the word <quote>
-            <computeroutput>had</computeroutput>
-          </quote>; </title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="figures/exampleHad4.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <para>If you ever leave that blue box (as we did in <xref linkend="figHad3"/>) then we lose
-        the letter `<computeroutput>a</computeroutput>'.</para>
-    </sect2>
-
-    <sect2>
-      <title>Summary</title>
-      <para>
-        <emphasis>Don't click. Don't drag. And don't speed.</emphasis>
-      </para>
-    </sect2>
-
-    <sect2>
-      <title>What do the colours mean?</title>
-      <para> In the English-language desktop version 3 of Dasher, <itemizedlist>
-          <listitem>
-            <para><emphasis>white</emphasis> squares contain the space characters (always placed at
-              the bottom of the alphabet);</para>
-          </listitem>
-
-          <listitem>
-            <para>a special <emphasis>yellow</emphasis> box contains the upper case characters
-              [A-Z];</para>
-          </listitem>
-
-          <listitem>
-            <para>a <emphasis>red</emphasis> box contains numerals [0-9] (if the full alphabet is
-              enabled);</para>
-          </listitem>
-
-          <listitem>
-            <para>a <emphasis>green</emphasis> box contains punctuation characters (with the
-              characters most similar to the space character [.,;:-] placed at the bottom, next to
-              the <emphasis>white</emphasis> space character. Within the punctuation section,
-              letters with similar roles are coloured similarly: punctuation characters similar to
-              the period [.,;:-] are coloured slate-blue;</para>
-          </listitem>
-          <listitem>
-            <para>the other colours are included simply to discriminate the squares from each
-            other.</para>
-          </listitem>
-          <listitem>
-            <para>In languages with accents (grave, acute, circumflex, etc), the accents are
-              displayed in an <emphasis>orange</emphasis> box.</para>
-          </listitem>
-          <listitem>
-            <para> In the Japanese version of Dasher, colours are used to distinguish the different
-              hiragana groups (eg ka,ki,ku,ke,ko are orange).</para>
-          </listitem>
-          <listitem>
-            <para> In the Korean version of Dasher, three different colours are used to distinguish
-              initial consonants, vowels, and terminal consonants.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-      <para> You can alter the colour scheme by editing the <computeroutput>colour</computeroutput>
-        and <computeroutput>alphabet</computeroutput> xml files, as described in <xref
-          linkend="personalising"/>.</para>
-    </sect2>
-    <sect2>
-      <title>How to start dasher (version 4)</title>
-      <para> Set the dasher application running; when the dasher window comes up, either click the
-        left mouse button or press the space bar to set it going. [One of these two will work.]
-        Repeat this action (click or space), when you are finished, to stop dasher from dashing.
-        Your computer's mouse controls Dasher.</para>
-
-      <para> Adjust the speed slider to fix the maximum speed Dasher will zoom at. A speed of 1 is
-        good for a beginner, increasing to 2 after 5 minutes' practice, and to 4 when you are
-        expert.</para>
-    </sect2>
-    <sect2>
-      <title>How to start dasher (version 2) on pocket PC</title>
-      <para> Install, run (wait a few seconds for it to load up the training file), then touch the
-        screen with the stylus to make dasher move.</para>
-
-      <para>There are three special strongly-coloured squares in this version of Dasher, coloured
-        yellow, red (in some releases only), and green; all three squares do not produce any
-        character; these squares indicate sub-groupings of the alphabet. (Uppercase Alphabet,
-        Numerals (in some releases only), and Punctuation.)</para>
-    </sect2>
-  </sect1>
-  <!--<sect1 id="usage">
-    <title>Using Dasher</title>
-    <sect2 id="menubar">
-      <title>Menus</title>
-      <para> The menu bar, located at the top of the <interface>Main Window</interface>, provides
-        the following commands: </para>
-      <variablelist>
-        <varlistentry>
-          <term>
-            <guimenu>File</guimenu>
-          </term>
-          <listitem>
-            <para>This menu contains the following commands: <itemizedlist>
-                <listitem>
-                  <para>
-                    <guimenuitem>New</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Open</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Save</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Save As</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Append to file</guimenuitem> this command can be used to append
-                    the current Dasher buffer to an existing text file.</para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Import training text</guimenuitem> this command can be used to
-                    add the contents of an existing text file to Dasher's language model.</para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Quit</guimenuitem>
-                  </para>
-                </listitem>
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>
-            <guimenu>Edit</guimenu>
-          </term>
-          <listitem>
-            <para> This menu contains the following commands: <itemizedlist>
-                <listitem>
-                  <para>
-                    <guimenuitem>Cut</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Copy</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Paste</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Copy All</guimenuitem>
-                  </para>
-                </listitem>
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>
-            <guimenu>Options</guimenu>
-          </term>
-          <listitem>
-            <para> This menu contains the following commands: <itemizedlist>
-                <listitem>
-                  <para><guimenuitem>Preferences</guimenuitem>, which launches the <link
-                      linkend="prefs">
-                      <interface>Preferences Dialog</interface>
-                    </link></para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Edit font</guimenuitem> alters the font used in the edit
-                  box.</para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Dasher font</guimenuitem> alters the size of the moving
-                    characters.</para>
-                </listitem>
-                <listitem>
-                  <para>
-                    <guimenuitem>Dasher font size</guimenuitem>
-                  </para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Enter text into other windows</guimenuitem> this causes Dasher
-                    to enter text into whichever window is selected.</para>
-                </listitem>
-                <listitem>
-                  <para><guimenuitem>Control mode</guimenuitem> this causes an extra node to appear
-                    at the bottom of the alphabet. Here, you can edit text directly from within
-                    Dasher, cause Dasher to speak text that you have entered and stop or pause
-                    Dasher.</para>
-                </listitem>
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>
-            <guimenu>Help</guimenu>
-          </term>
-          <listitem>
-            <para>This menu contains the following commands: <itemizedlist>
-                <listitem>
-                  <para><guimenuitem>About</guimenuitem> shows basic information about
-                      <application>Dasher</application>, such as author's name and version number.
-                  </para>
-                </listitem>
-              </itemizedlist>
-            </para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-    </sect2>
-
-    <sect2 id="prefs">
-      <title>Customization</title>
-      <para> To change default settings, select <guimenuitem>Preferences</guimenuitem> command in
-          <guimenu>Settings</guimenu> menu. This launches the <interface>Preferences
-        dialog</interface>, shown in <xref linkend="prefs1"/>, <xref linkend="prefs2"/>, <xref
-          linkend="prefs3"/>, <xref linkend="prefs4"/> and <xref linkend="prefs5"/>. </para>
-      <figure id="prefs1">
-        <title>&quot;Alphabet&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs1.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para> Dasher has support for many languages, and the choice of which language to write in is
-        made with this dialog. Note that some languages (for example, Hiragana, Korean and the
-        International Phonetic Alphabet) may require fonts that you do not have installed. For
-        information on creating your own alphabet files, see the <ulink
-          url="@PACKAGE_URL@" type="http">Dasher website</ulink>. </para>
-      <figure id="prefs2">
-        <title>&quot;Colour&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs2.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para> Dasher has support for different colour schemes. The 'Default' colour scheme is a
-        simple rotation of colours that should work with any language. Enhanced colour schemes may
-        be used for languages with logical groupings (such as Hiragana or Korean) or to increase
-        contrast. </para>
-      <figure id="prefs3">
-        <title>&quot;Control&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs3.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para>
-        <itemizedlist>
-          <listitem>
-            <para><guimenuitem>One dimensional mode</guimenuitem> maps the Y coordinate of the mouse
-              position to an X/Y coordinate, for use with one-dimensional input methods.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Eyetracker mode</guimenuitem> optimisations for eyetrackers 
-              specifically, makes Dasher behave as in one-dimensional mode near the right hand edge
-              of the screen.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Start on left mouse button</guimenuitem> the left mouse button starts
-              and stops Dasher.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Start on space bar</guimenuitem> the space bar starts and stops
-              Dasher.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Start with mouse position</guimenuitem> when Dasher is paused, a red
-              box appears. Hold the cursor inside the red box until a yellow box appears. Hold the
-              cursor inside the yellow box. Dasher will then start..</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Copy all on stop</guimenuitem> when stopped, Dasher will copy all
-              text to the clipboard automatically.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Speak on stop</guimenuitem> when stopped, Dasher will speak newly
-              entered text automatically.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Pause outside window</guimenuitem> Dasher will pause if the mouse
-              pointer moves outside its window.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-      <figure id="prefs4">
-        <title>&quot;View&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs4.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para>
-        <itemizedlist>
-          <listitem>
-            <para><guimenuitem>Orientation</guimenuitem> alters the direction that the text moves
-              in. If set to &quot;Alphabet default&quot;, the alphabet file will choose the
-              appropriate direction for the alphabet.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Show toolbar</guimenuitem> you can hide Dasher's toolbar if you wish.
-              Calling dasher with the '-o' switch will open a reduced-options version of dasher,
-              designed for entry into other applications.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Show speed slider</guimenuitem> enable/disable the speed
-            slider.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Show mouse position</guimenuitem> in some situations (such as
-              one-dimensional or eyetracker mode), the absolute position of the mouse will differ
-              from Dasher's perception of the mouse position. This option shows you where Dasher's
-              mouse is.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Draw line between crosshairs and mouse</guimenuitem> helpful for
-              users who have trouble keeping track of the pointer.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Draw box outlines</guimenuitem> increases the contrast around the
-              edges of boxes, to help distinguish between them.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Change colour scheme automatically</guimenuitem> languages such as
-              Hiragana are aware of which colour scheme they should be using. This option allows an
-              alphabet to select its colour scheme automatically.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-      <figure id="prefs5">
-        <title>&quot;Advanced&quot; dialog</title>
-        <screenshot>
-          <screeninfo>Preferences dialog</screeninfo>
-          <graphic fileref="figures/prefs5.png" format="PNG" srccredit="ME"/>
-        </screenshot>
-      </figure>
-      <para>
-        <itemizedlist>
-          <listitem>
-            <para><guimenuitem>Smoothing</guimenuitem> adds a &quot;uniform&quot; element to
-              the language model's predictions. A smoothing value of 100 will result in an entirely
-              uniform distribution being used  each box will have the same size.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Timestamp new files</guimenuitem> each file created by Dasher will
-              automatically have the current time in its filename.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Distance from centreline for start on mouse position</guimenuitem>
-              controls the range for the 'Start on mouse position' option.</para>
-          </listitem>
-          <listitem>
-            <para><guimenuitem>Number of pixels that should cover the entire Y range</guimenuitem>
-              some input devices do not have enough gain to cover an entire Dasher window; this
-              option increases the gain of displacement on the Y axis.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-    </sect2>
-  </sect1>-->
-  <sect1 id="reallife">
-    <title>How to use Dasher in real life</title>
-
-    <para> Dasher can be used to communicate through your computer, and (to some degree) to control
-      your computer. Obviously, the simplest way to communicate with Dasher is to have the person
-      you're talking to watch the screen as you write. But there are lots of other ways to
-      communicate through Dasher.</para>
-
-    <sect2>
-      <title>Copy to clipboard</title>
-
-      <para> If you have the `copy on stop' feature switched on, then, every time you stop Dasher,
-        the contents of Dasher's text box get copied directly to your computer's clipboard. You can
-        then use the `Paste' function of another application to transfer what you've written.</para>
-    </sect2>
-
-    <sect2>
-      <title>Speaking</title>
-
-      <para>Dasher connects to your computer's built-in text-to-speech system. There are several
-        ways to use Dasher for speaking.</para>
-
-      <para> You can choose to have Dasher `speak each word': every time you pass through the end of
-        a word (by entering a space character for example), that word gets spoken immediately.</para>
-
-      <para> You can also choose to have Dasher `speak on stop': every time you stop Dasher moving,
-        everything that is in the text box gets spoken.</para>
-
-      <para> Finally, you can speak exactly when you want to by switching on <emphasis>Control
-        Mode</emphasis> (which is under the Options Menu in Dasher version 3). This mode brings up
-        an extra box in the Dasher alphabet, coloured grey, which works a bit like an escape key on
-        a keyboard. If you go inside the Control box, you will find several control-related options:
-        Stop (red); pause (yellow); Move; Delete; and Speak. Inside the Speak box are the options to
-        `speak everything', `speak new' (just the new words that you wrote since the last
-        utterance), and `speak again' (which re-speaks whatever was last spoken).</para>
-    </sect2>
-
-    <sect2>
-      <title>Save to file</title>
-
-      <para> You can save whatever is in the text box of Dasher as a plain text file by clicking the
-        `Save file' icon in the icon bar, or using the menus at the top of the Dasher window
-        (selecting File then Save).</para>
-    </sect2>
-
-    <sect2>
-      <title>Send text to other window</title>
-
-      <para> You can also have whatever is written in Dasher be directly beamed to another window.
-        Enable the `send text to other window' option under the options menu. Then the window that
-        you select will get Dasher's output.</para>
-    </sect2>
-
-
-
-
-    <sect2>
-      <title>Font sizes</title>
-
-      <para> Dasher has a text box (where the text appears) and a Dasher canvas (where all the fun
-        zooming action happens). You can change the font sizes of both these regions using the
-        Dasher menus at the top of the Dasher window. The two fonts are called the `Edit font' (for
-        the text box's font), and the `Dasher font', I think. (I forget the exact menu names in
-        Dasher version 3, sorry.) To change the edit font size bring up the usual dialog box and
-        change size. To change the Dasher canvas size, find the Dasher-size option, which offers
-        three to choose from, named something like: small, medium, and large.</para>
-    </sect2>
-  </sect1>
-
-  <sect1 id="personalising">
-    <title>Personalizing Dasher</title>
-    <para> There are three classes of files you can tweak in order to make Dasher work better for
-      you: <computeroutput>alphabet</computeroutput> files, <computeroutput>colour</computeroutput>
-      files, and <computeroutput>training</computeroutput> files.</para>
-
-    <sect2>
-      <title>Personalizing the language model</title>
-      <para>Dasher's predictions (in version 3 of Dasher) are based not on a dictionary but on a
-        training text of ordinary text. For example, when you download Dasher version 3, it comes
-        with a file called <filename>training_english_GB.txt</filename>. This is 300 kbytes of
-        ordinary English harvested from various documents on the internet. </para>
-
-      <para> When you use Dasher, it stores everything you write in another personal file with the
-        same name as the training file. Next time you use Dasher, it reads in the original training
-        file and everything you wrote last time, to help it predict better. Dasher learns all the
-        time. To get the best results from Dasher: <itemizedlist>
-          <listitem>
-            <para>If possible, provide Dasher with a training text in your own style -- a plain text
-              file made from documents you have written before, and containing your own pet phrases,
-              friends' names, and so forth. Either append this file to the training file, or replace
-              the original training file.</para>
-          </listitem>
-          <listitem>
-            <para> If you think your personal training file may have become corrupted with rubbish
-              text, edit it using any plain text editor. (Or ask a friend to do this for
-            you.)</para>
-          </listitem>
-          <listitem>
-            <para> If you use Dasher for many months, the personal training file may become so large
-              that Dasher becomes slow to start up; if so, edit the training file using a plain text
-              editor. </para>
-          </listitem>
-        </itemizedlist></para>
-    </sect2>
-    <sect2>
-      <title>Personalizing the alphabet</title>
-      <para> Which characters are available to you, and their order, is determined by the alphabet
-        file. For example, you might use <filename>alphabet.english.xml</filename>. Dasher comes
-        with many alternative alphabets. You can edit alphabet files to change which characters are
-        in the alphabet, or their order. When you edit this xml file, it might be a good idea to
-        save the new file with a new name and change the name of the alphabets in the new file, to
-        avoid confusion. Each field in the xml file specifies a symbol by three items: the character
-        that should be <emphasis>displayed</emphasis> (<computeroutput>d=</computeroutput>...); the
-        character that goes into the <emphasis>text</emphasis> when this symbol is selected
-          (<computeroutput>t=</computeroutput>...); and the background colour number of the box for
-        this symbol (<computeroutput>b=</computeroutput>...), of which more below.</para>
-    </sect2>
-    <sect2>
-      <title>Personalizing the colour scheme</title>
-      <para>You can change the colours of the Dasher world in two ways. The colour file (for example
-          <filename>colour.xml</filename> or <filename>colour.euroasian.xml</filename>) specifies
-        the 200 colours in the palette that Dasher uses. Each line specifies red, green, blue
-        values.</para>
-
-      <para> These colours are used to colour multiple objects in dasher. If for example you want to
-        change the colour of the <quote>red line</quote>;, change the second colour line of the
-        colour file, which reads <computeroutput>&lt;colour r=&quot;255&quot;
-          g=&quot;0&quot; b=&quot;0&quot;/&gt;</computeroutput>. </para>
-
-
-      <para> You can change which of these colours is used for each symbol's box by changing the
-          <quote>b</quote>; field for that symbol in the alphabet file.</para>
-    </sect2>
-
-
-
-
-  </sect1>
-  <sect1 id="languages">
-    <title>Languages</title>
-
-    <para> Dasher works in hundreds of languages.</para>
-
-    <para> For each language there is an alphabet file (or possibly more than one alphabet file). On
-      the Dasher website we aim to supply at least one training text for each language. If we don't
-      have a good training text for your language, please help us by making one and sending it to
-      us.</para>
-
-    <para> See the Dasher website for the list of languages supported by Dasher. As of October 2005,
-      all the major languages of the world are well supported, with the exception of Japanese and
-      Chinese, for which Dasher version 3 offers only phonetic support (hiragana and pin-yin). In
-      Dasher version 4, we will provide full support for Japanese and Chinese. </para>
-
-    <!--    %% Dasher works beautifully in Korean-->
-
-
-  </sect1>
-
-
-
-  <sect1 id="specialneeds">
-    <title>Dasher Special Needs Guide</title>
-
-    <para> Dasher is designed on the principle of getting <emphasis>as much information as
-      possible</emphasis> from the gestures you can make.</para>
-
-    <para> We can get information from whichever of the following is easiest for you: <orderedlist>
-        <listitem>
-          <para>
-            <emphasis>Continuous</emphasis> gestures (conveyed via a joystick, trackpad, head mouse,
-            or gaze tracker, for example) often achieve the highest rates of writing.</para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis>Discrete</emphasis> gestures (switches, button presses) may be able to convey
-            information in three different ways:</para>
-          <orderedlist>
-            <listitem>
-              <para> The <emphasis>time</emphasis> at which you press a button can convey
-                information. (This idea is used in grid systems controlled by a single
-              button.)</para>
-            </listitem>
-            <listitem>
-              <para>
-                <emphasis>How long</emphasis> you press a button for can convey information. (This
-                idea is used in Morse code, where two durations are distinguished.) </para>
-            </listitem>
-            <listitem>
-              <para> The <emphasis>choice</emphasis> of <emphasis>which</emphasis> button you press
-                can convey information. (This idea is used in ordinary keyboards.)</para>
-            </listitem>
-          </orderedlist>
-        </listitem>
-      </orderedlist></para>
-
-    <sect2 id="manual7">
-      <title>Continuous gestures</title>
-      <para> Dasher's normal mode (<emphasis>mouse mode</emphasis>) is driven by a two-dimensional
-        continuous steering gesture. Dasher also has a <emphasis>one-dimensional mode</emphasis>,
-        for users who can control only one dimension.</para>
-
-      <para> Can you make one or two continuous gestures? If you can operate a joystick, mouse,
-        trackpad, or rollerball, then you have a two-dimensional control. If you can point on a
-        touch-screen then that's perfect too. Can you move your nose around? If you can shake your
-        head, that's a one-dimensional control; if you can nod, that's two. A head-mouse can be
-        quite cheap, and it is a convenient way to drive Dasher. (We recommend the
-          <emphasis>SmartNav3</emphasis> from NaturalPoint, which costs about $200, and works under
-        microsoft windows only; this device used to be called the NavPoint TrackIR until 2002, when
-        that brand name was transferred to a different device. We also recommend the Origin
-        instruments <emphasis>Headmouse Extreme</emphasis>, which costs about $1000; it works as a
-        USB mouse on any computer.) Can you waggle one finger or one foot? These head-mice can be
-        used to track fingers and feet as well as heads. For a detailed comparison of SmartNav3 with
-        Headmouse Extreme, please see <ulink
-          url="@PACKAGE_URL@Headmouse.html" type="http">@PACKAGE_URL@Headmouse.html</ulink>.</para>
-
-      <para>If you are severely paralysed, the best option may be a gaze tracker. Do you have
-        control of where your eyes are looking? With a gaze tracker we can write at 25 words per
-        minute. Gaze trackers are quite expensive: we paid $2000 for the QuickGlance from EyeTech
-        Digital Systems, and the Tobii eyetracker costs about $20,000. [We recommend both of these
-        systems. You attach QuickGlance to an existing computer; Quickglance II costs about $4000.
-        Tobii is a complete computer with built-in eyetracking cameras.] Dasher also works with the
-        Eye response <emphasis>Erica</emphasis>, with LC's <emphasis>Eyegaze</emphasis>, and with
-        Metrovision's gaze-tracker. All three of these systems are complete computers with
-        eye-tracking cameras attached.</para>
-
-      <para> If joysticks, mice, rollerballs, and gaze trackers don't work, there may be a few other
-        ways to convey a continuous one-dimensional signal. Lips and eyebrows should both work,
-        though we don't know of any manufacturer selling appropriate devices. Breath is a
-        one-dimensional signal too. If you can control your breath, it should be possible to make a
-        breath mouse for you. We made our $22 breath mouse using a USB optical mouse, a belt, and
-        some elastic, and our most experienced user can write at 15 words per minute by breath
-        alone.</para>
-      <sect3>
-        <title>Starting and stopping</title>
-        <para>There are several ways of starting and stopping Dasher. Pressing a button (for
-          example, the left mouse button or the space bar) is one option. But if you can not press
-          any buttons, it's possible to start and stop using only continuous gestures: in the
-          options menu, select <quote>start on position</quote>; and switch on <quote>control
-          mode</quote>;. When control mode is switched on, the Dasher alphabet includes a special
-          Control node (a bit like an <computeroutput>Esc</computeroutput> key on a keyboard),
-          within which various control functions are available. When you are inside the control
-          node, Dasher moves more slowly than normal, for safety. The control node options include
-          `pause' and `stop'. Use `pause' if you are half-way through writing something, and want to
-          pause for a moment. Use `stop' when you have finished. <command>Pause</command> and
-            <command>stop</command> produce the same behaviour, except <command>stop</command> may
-          cause other automatic actions, such as `speak on stop', or `copy the text
-          <!--% to clipboard --> on stop'.</para>
-
-        <para>When Dasher is paused or stopped, it can be restarted using any of the starting
-          methods that are enabled. If `start on position' is enabled, then whenever Dasher is
-          stopped a sequence of large targets will be displayed; you restart Dasher by pointing at
-          (or looking at) the first (red) target, then the second (yellow) target. (We use two
-          targets in sequence to make it difficult to start Dasher by accident.)</para>
-      </sect3>
-      <sect3>
-        <title>Recommendations for head-tracking</title>
-        <para> Many trackers have `smoothing' options, which determine the frequency with which the
-          mouse position is updated; these options are normally used to smooth and damp down the
-          mouse motion. For Dasher, we don't want such smoothing. We like instant, live, raw and
-          jerky mouse coordinates. If there is a `smoothing' control, turn it right down.</para>
-
-        <para>The `gain' (sometimes called the `speed') of the head-tracker is also an important
-          setting to adjust. Some trackers' gains can be adjusted in software. You can also adjust
-          the gain by changing the geometry of your tracker: if you move the tracked dot from your
-          forehead to the brim of a baseball cap, for example, then you roughly double the gain.
-          Sitting closer to the tracker may also increase the gain. Find a gain setting that is
-          comfortable. I like high gain because it allows me to steer with very small head
-        motions.</para>
-      </sect3>
-      <sect3>
-        <title>Recommendations for gaze-tracking</title>
-        <para>For good results with gaze trackers, we strongly recommend that the gaze-tracker be
-          made to be as responsive as possible. Many trackers have `smoothing' options, which
-          determine the frequency with which the mouse position is updated and the number of
-          successive gaze images used to estimate the mouse position. These options are normally
-          used to smooth and damp down the mouse motion. For Dasher, we don't want such smoothing.
-          We like instant, live, raw and jerky mouse coordinates. When you are navigating, your eye
-          moves very quickly to the target you are interested in, and we want Dasher to respond
-          instantly. The ideal settings for Dasher may be very different from the ideal settings for
-          other software. Ask your eyetracker manufacturer to make it easy to change the settings
-          when switching application. </para>
-
-        <para> Dasher has several options designed for use with gaze-trackers. We recommend using
-            <emphasis>eyetracker mode</emphasis> (under Options/Preferences/Control). In this mode,
-          the dynamics of Dasher are slightly different from standard dynamics, making
-          error-correction easier by gaze.</para>
-
-        <para>If your gaze-tracker's calibration drifts with time, for example when your head moves,
-          then you should select the <emphasis>Autocalibrate eyetracker</emphasis> feature. When
-          this feature is switched on, Dasher keeps track of your steering and infers the vertical
-          calibration error, and corrects for it. You can see this correction taking effect by
-          noticing the vertical offset between the mouse position as displayed by Dasher (by the tip
-          of the red line) and the gaze-tracker's mouse position (shown by the system's mouse
-          cursor).</para>
-
-        <para>To avoid difficulties with the mouse being bounded by the top and bottom of the
-          screen, we recommend choosing a window size for Dasher that is <emphasis>not</emphasis>
-          full-screen in size. Place the Dasher window so that there is a margin above and below the
-          Dasher canvas.</para>
-
-        <para><emphasis>Technical note:</emphasis> As well as through mouse emulation, Dasher is
-          able to receive tracking information from gaze trackers, head trackers, or similar systems
-          directly by means of a system socket. This option can be configured in the 'Input Device'
-          section of the 'preferences' dialogue.</para>
-      </sect3>
-    </sect2>
-    <sect2 id="manual8">
-      <title>Discrete Gestures</title>
-      <para>We have several versions of <emphasis>button Dasher</emphasis>, available in Dasher
-        Version 4.</para>
-
-      <sect3>
-        <title>Are time-critical gestures not an option?</title>
-        <para>Some ways of conveying information make use of the <emphasis>timing</emphasis> of
-          gestures. However, some people can't make gestures at a required instant. For example,
-          spastics find it very difficult to do an action `exactly now!'</para>
-
-        <para>If time-critical gestures are not an option, go to <xref linkend="no_time_critical"/>.</para>
-
-        <para>If you <emphasis>can</emphasis> convey information by <emphasis>precisely
-          timed</emphasis> gestures, go to section <xref linkend="timed"/>.</para>
-      </sect3>
-    </sect2>
-    <sect2 id="no_time_critical">
-      <title>`Timeless' choices of Dasher</title>
-      <para> So, you want to steer Dasher at your own pace. Can you make fairly-accurate continuous
-        gestures, given time? For example, can you position a pointer accurately on a screen, then
-        press a button to indicate that you are ready? Or can you touch a touch-screen fairly
-        accurately? <itemizedlist>
-          <listitem>
-            <para>If so, try <emphasis>click mode</emphasis>. Go to <xref
-                linkend="time_critical_button"/>.</para>
-          </listitem>
-          <listitem>
-            <para> Otherwise try <emphasis>direct button mode</emphasis> or <emphasis>menu button
-                mode</emphasis>. Go to <xref linkend="no_time_critical_button"/>.</para>
-          </listitem>
-        </itemizedlist>
-      </para>
-      <sect3 id="time_critical_button">
-        <title>`Timeless' continuous Dasher: click mode</title>
-
-        <para> In <emphasis>click mode</emphasis>, you position the mouse pointer where you want to
-          go, then press a button when you are ready. Dasher then zooms in on the position you
-          chose.</para>
-
-        <para> Alternatively, if you have a touch screen, a single touch on the screen initiates a
-          zoom to that position.</para>
-      </sect3>
-      <sect3 id="no_time_critical_button">
-        <title>`Timeless' choices of Button Dasher</title>
-        <para> How many different switches, keys, or buttons can you easily operate? </para>
-        <variablelist>
-          <varlistentry>
-            <term>1</term>
-            <listitem>
-              <para>With just one button, the only timeless way to convey information is by the
-                  <emphasis>duration</emphasis> of your button-presses. Can you make a distinction
-                between short presses and long presses? If so, you can use <emphasis>menu
-                  button-Dasher</emphasis>. Connect up your short press to the `menu' action, and
-                your long press to the `select' action. </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>2</term>
-            <listitem>
-              <para>You can use <emphasis>menu button-Dasher</emphasis>. Connect one button to the
-                `menu' action, and the other to the `select' action. If one button is easier to
-                press, make that button the `menu' button. </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>2.5</term>
-            <listitem>
-              <para>If you can easily press two buttons, and, for special occasions, you are able to
-                press a third button, you can use <emphasis>menu button-Dasher</emphasis> or
-                  <emphasis>direct button-Dasher</emphasis>. </para>
-              <orderedlist>
-                <listitem>
-                  <para> Set up <emphasis>menu button-Dasher</emphasis> as described above, and use
-                    the third button as your escape key -- to make Dasher go away, for example.
-                    [This feature is not currently provided within Dasher.]</para>
-                </listitem>
-                <listitem>
-                  <para> In <emphasis>direct button-Dasher</emphasis>, each button produces a
-                    particular navigation action such as `up', `down', or `back'. If you have 2.5
-                    buttons, map the convenient two to `up' and `down', and the inconvenient button
-                    to `back'.</para>
-                </listitem>
-              </orderedlist>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>3</term>
-            <listitem>
-              <para>You can use <emphasis>direct button-Dasher</emphasis> or <emphasis>menu
-                  button-Dasher</emphasis> as described above.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>4, 5, 6, or 7</term>
-            <listitem>
-              <para>With more than three buttons, you have the option to use <emphasis>direct
-                  button-Dasher</emphasis> with three, four, five, or six `forward' directions.
-                Please try <emphasis>menu button-Dasher</emphasis> too, even though it uses only two
-                buttons.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>8 or more</term>
-            <listitem>
-              <para>Try <emphasis>direct button-Dasher</emphasis> and <emphasis>menu
-                button-Dasher</emphasis>. With this many buttons, you also have the option of using
-                a system like T9 -- the predictive-text system found on many mobile phones. You may
-                wish to investigate <emphasis>Tapir</emphasis>, a disambiguating on-screen keyboard
-                from the developers of Dasher.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </sect3>
-    </sect2>
-
-    <sect2 id="timed">
-      <title>Button Dashers that exploit timing</title>
-      <para>There are two Dasher modes which make use of precise timing information, and generally
-        require fewer button presses than the nn-time-critical modes:</para>
-      <sect3 id="onebutton">
-        <title>(One button) dynamic mode</title>
-        <para>When started, Dasher will zoom towards a point towards the top or bottom of the
-          display. A short button press will switch the point of zoom to the opposite side. Text can
-          be entered by pressing the button when the desired phrase reaches the edge of the
-        display.</para>
-      </sect3>
-      <sect3 id="twobutton">
-        <title>Two button dynamic mode</title>
-        <para>Dasher zooms continuously towards the centre of the screen, with the two buttons being
-          used to shift the display up and down. The buttons should be pressed whenever the desired
-          text is aligned with the two markers.</para>
-      </sect3>
-      <sect3>
-        <title>Correcting errors</title>
-        <para>In either dynamic mode, there are three options for error correction: using an
-          additional button, long presses or multiple presses. In all cases these actions will
-          switch to a mode where Dasher unzooms at a fixed rate. In this mode, one more press will
-          stop Dasher and a second press will return Dasher to forward zooming.</para>
-      </sect3>
-    </sect2>
-  </sect1>
-
-  <sect1 id="modesummary">
-    <title>Summary of Dasher Modes</title>
-    <para> The various modes of <application>Dasher</application> are listed below. The mode may be
-      changed via the <emphasis>
-        <quote>edit</quote>
-      </emphasis> menu. Select <emphasis>
-        <quote>Preferences</quote>
-      </emphasis> and then <emphasis>
-        <quote>Control</quote>
-      </emphasis>. Each mode has a number of variable parameters associated with it which can be
-      adjusted using the <emphasis>options</emphasis> button located below the mode menu. </para>
-
-    <sect2 id="normal">
-      <title>Normal</title>
-      <para> The original <application>Dasher</application> mode. Functions using a two dimensional
-        steering gesture, from a mouse, say. A one-dimensional mode is also available, for those who
-        may not be able to control two-dimensions, and a special eyetracker mode is available for
-        those using Dasher with a gaze or head tracker. Dasher can be started using mouse position
-        alone if clicking is not possible - select 'Start on Mouse Position' and 'Circle Start' to
-        allow starting and stopping by dwelling in the circle in the centre of the display. The 'Two
-        Box' start mode starts Dasher by dwelling in the two boxes in sequence. In the latter case
-        stopping must be done through control mode.</para>
-    </sect2>
-
-    <sect2 id="click">
-      <title>Click Mode</title>
-      <para> In <emphasis>click mode</emphasis> you position the mouse pointer where you want to go,
-        then press the button when you are ready. <application>Dasher</application> then zooms into
-        the place where you clicked. </para>
-    </sect2>
-
-    <sect2 id="menu">
-      <title>Menu Mode</title>
-      <para> One button is used to select a location, and once a second button is pressed
-          <application>Dasher</application> zooms to that location. The large box occurring last in
-        the cycle is used to zoom out.</para>
-    </sect2>
-
-    <sect2 id="direct">
-      <title>Direct Mode</title>
-      <para>Direct mode is similar to menu mode, except boxes are assigned directly to each button
-        rather than being selected in sequence.</para>
-    </sect2>
-
-    <sect2 id="compass">
-      <title>Compass Mode</title>
-      <para>Compass mode makes use of four buttons. Two buttons are used to control vertical
-        position. When the required vertical position has been reached a third button is pressed to
-        zoom in. After zooming in on the location, the user once more selects vertical position. A
-        forth button zooms out if an error is made.</para>
-    </sect2>
-
-    <sect2 id="dynamic">
-      <title>(One Button) Dynamic Mode</title>
-      <para>
-        <application>Dasher</application> continually zooms in and a single button may be used to
-        move <quote>up</quote> and <quote>down</quote>. There is also a <emphasis>Two Button Dynamic
-          Mode</emphasis> where two buttons are used to control motions <quote>up</quote> and
-          <quote>down</quote>. A third button, long presses or multiple presses can be used to
-        unzoom and correct errors. </para>
-    </sect2>
-
-    <sect2 id="buttondynamic">
-      <title>Two Button Dynamic Mode</title>
-      <para>
-        <application>Dasher</application> continually zooms in, whilst two buttons are used to
-        control vertical motion. Correction is performed in the same way as One button dynamic
-      mode.</para>
-    </sect2>
-  </sect1>
-
-
-
-
-
-  <sect1 id="authors">
-    <title>Authors</title>
-    <para>
-      <application>Dasher</application> was written by the members of The Dasher Project
-        (<email>dasher@inf.phy.cam.ac.uk</email>). To find more information about it, please visit
-        <application>Dasher's</application>
-      <ulink url="@PACKAGE_URL@" type="http"> Web page</ulink>. Please
-      send all comments, suggestions, and bug reports to the <ulink url="@PACKAGE_BUGREPORT@"
-        type="http">GNOME bug tracking database</ulink>. Instructions for submitting bug reports can
-      be found on-line at <ulink url="http://bugs.gnome.org/Reporting.html" type="http">
-        http://bugs.gnome.org/Reporting.html</ulink>. If you are using GNOME 1.1 or later, you can
-      also use command <command>bug-buddy</command> for submitting bug reports. </para>
-    <para> This manual was written by The Dasher Project (<email>dasher@inf.phy.cam.ac.uk</email>).
-      Please send all comments and suggestions regarding the manual to the GNOME Documentation
-      Project at <email>docs@gnome.org</email>. You can also add your comments online by using
-        <ulink type="http" url="http://www.gnome.org/gdp/doctable/">GNOME Documentation Status
-      Table</ulink>. </para>
-  </sect1>
-</article>
--- /dev/null
+++ b/Data/Help/Gnome/C/index.docbook
@@ -0,0 +1,1309 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+<article id="index">
+  <articleinfo>
+    <title>Dasher Manual</title>
+    <corpauthor role="maintainer">The Dasher Project</corpauthor>
+    <copyright>
+      <year>2010</year>
+      <holder>The Dasher Project</holder>
+    </copyright>
+    <legalnotice>
+      <para>Permission is granted to make and distribute verbatim copies of this manual provided the
+        copyright notice and this permission notice are preserved on all copies.</para>
+      <para>Permission is granted to copy and distribute modified versions of this manual under the
+        conditions for verbatim copying, provided that the entire resulting derived work is
+        distributed under the terms of a permission notice identical to this one.</para>
+      <para>Permission is granted to copy and distribute translations of this manual into another
+        language, under the above conditions for modified versions, except that this permission
+        notice may be stated in a translation approved by the Free Software Foundation.</para>
+      <para>UNIX is a trademark of X/Open Group.</para>
+      <para>Linux is a trademark of Linus Torvalds.</para>
+      <para>X Window System is a trademark of X Consortium, Inc.</para>
+      <para>Windows is a trademark of Microsoft Corp.</para>
+      <para>Macintosh and Apple are trademarks of Apple Computer, Inc.</para>
+      <para>All other trademarks are property of their respective owners.</para>
+    </legalnotice>
+    <abstract role="description">
+      <para>Dasher is an accessible text entry application that uses pointing gestures
+        rather than typing. It is designed to be fast while fun to use.</para>
+    </abstract>
+    <revhistory>
+      <revision>
+        <revnumber>1.0.0</revnumber>
+        <date>2004-02-08</date>
+      </revision>
+      <revision>
+        <revnumber>1.1.0</revnumber>
+        <date>2006-03-31</date>
+      </revision>
+      <revision>
+        <revnumber>1.2.0</revnumber>
+        <date>2006-07-11</date>
+      </revision>
+      <revision>
+        <revnumber>1.2.1</revnumber>
+        <date>2006-09-02</date>
+      </revision>
+    </revhistory>
+  </articleinfo>
+
+  <sect1 id="intro">
+    <title>Introduction</title>
+    <para><application>Dasher</application> is an information-efficient text-entry interface, driven
+      by natural continuous pointing gestures. Dasher is a competitive text-entry system wherever a
+      full-size keyboard cannot be used - for example on a palmtop or wearable computer, or when
+      operating a computer one-handed (by joystick, touchscreen or mouse) or zero-handed (i.e. by
+      head-mouse or eyetracker). This document describes version 4.2.0 of
+      <application>Dasher</application>.</para>
+    <para><application>Dasher</application> can be started by selecting
+      <guimenuitem>Dasher</guimenuitem> from the <guisubmenu>Accessibility </guisubmenu> submenu of
+      the <guimenu>Main Menu</guimenu>, or by running the command <command>dasher</command> on the
+      command line.</para>
+  </sect1>
+  <sect1 id="whatsnew">
+    <title>What's New</title>
+
+    <sect2>
+      <title>New features In version 4.2</title>
+
+
+      <para> There is an automatic speed control, which will speed up Dasher when it senses you are
+        able to go faster. </para>
+
+      <para> There is a new socket interface allowing Dasher to listen to head-trackers or
+        gaze-trackers or EEG-interfaces without going through the mouse.</para>
+
+      <para> There are several `button modes' for people who want to drive Dasher using one, two,
+        three, or four switches.</para>
+
+      <para> There is a `click mode', for people who like to point where they want to go, and click
+        to take a single step in that direction. This is aimed at beginners, in particular</para>
+
+
+    </sect2>
+    <sect2>
+      <title>What's coming in version 4.4</title>
+      <para> We will implement a game-mode for Dasher: this will help novices learn to write. A
+        teaching hand will guide the novice when he goes astray, and novices who write fast without
+        needing much guidance will win lots of points. </para>
+
+      <para> New language models will be added, which will make predictions at the word level as
+        well as the letter level.</para>
+
+      <para>Japanese and Chinese will be fully supported. </para>
+
+      <para>The Dasher team also hopes to create a free web-cam-based head tracker and gaze tracker,
+        `FreeVIM', by December 2006. </para>
+    </sect2>
+  </sect1>
+  <sect1 id="basics">
+    <title>Dasher Basics</title>
+    <para>Dasher is an information-efficient text-entry interface, driven by natural continuous
+      pointing gestures. Dasher is a competitive text-entry system wherever a full-size keyboard
+      cannot be used - for example, <itemizedlist>
+        <listitem>
+          <para>On a palmtop computer;</para>
+        </listitem>
+        <listitem>
+          <para>on a wearable computer;</para>
+        </listitem>
+        <listitem>
+          <para>when operating a computer one-handed, by joystick, touchscreen, trackball, or
+          mouse;</para>
+        </listitem>
+        <listitem>
+          <para>when operating a computer with zero hands (i.e., by head-mouse or by
+          eyetracker).</para>
+        </listitem>
+      </itemizedlist> The eyetracking version of Dasher allows an experienced user to write text as
+      fast as normal handwriting - 29 words per minute; using a mouse, experienced users can write
+      at 39 words per minute.</para>
+
+    <para> Dasher can be used to write efficiently in any language. </para>
+
+    <para>Dasher is fast and fun to learn.
+      <!--TODO - write this section (See what
+ users round the world say, in section \ref{sec.users}.)-->
+    </para>
+
+    <para>Dasher is <emphasis>free software</emphasis>. It's distributed under the same license as
+      GNU/Linux, the GPL. </para>
+
+    <sect2>
+      <title>How does Dasher work?</title>
+
+      <blockquote>
+        <attribution>Financial Times, 5th February 2002</attribution>
+        <para>Dasher is like an arcade game: `Attack of the killer alphabets', perhaps.</para>
+      </blockquote>
+
+      <para>Dasher is a zooming interface. You point where you want to go, and the display zooms in
+        wherever you point. The world into which you are zooming is painted with letters, so that
+        any point you zoom in on corresponds to a piece of text. The more you zoom in, the longer
+        the piece of text you have written. You choose what you write by choosing where to zoom.</para>
+
+      <para>To make the interface efficient, we use the predictions of a language model to determine
+        how much of the world is devoted to each piece of text. Probable pieces of text are given
+        more space, so they are quick and easy to select. Improbable pieces of text (for example,
+        text with spelling mistakes) are given less space, so they are harder to write. The language
+        model learns all the time: if you use a novel word once, it is easier to write next time.</para>
+
+
+
+      <para>A big advantage of Dasher over other predictive text-entry interfaces that offer
+        word-completions to the user is that it is <emphasis>mode-free</emphasis>: the user does not
+        need to switch from a writing mode to an <quote>accept-model-predictions</quote> mode.</para>
+
+      <para>Another advantage is that it is easy to train the model on any writing style: simply
+        load up an example file, then write away!</para>
+
+      <para> It's quite hard to convey in words what Dasher looks like, so please visit <ulink
+          url="http://www.inference.phy.cam.ac.uk/dasher/" type="http">http://www.inference.phy.cam.ac.uk/dasher/</ulink> to see movies.</para>
+
+    </sect2>
+    <sect2>
+      <title>Dasher explained -- the library analogy</title>
+      <para> Imagine <emphasis>a library containing all possible books</emphasis>, ordered
+        alphabetically on a single shelf. Books in which the first letter is <quote>a</quote>; are
+        at the left hand side. Books in which the first letter is <quote>z</quote>; are at the
+        right. In picture (i) below, the shelf is shown vertically with <quote>left</quote>; (a) at
+        the top and ,<quote>right</quote>; (z) at the bottom. The first book in the
+        <quote>a</quote>; section reads
+        <quote><computeroutput>aaaaaaaaaaaa</computeroutput>...</quote>; somewhere to its right are
+        books that start <quote><computeroutput>all good things must come to an
+          end</computeroutput>...</quote>; a tiny bit further to the right are books that start
+            <quote><computeroutput>all good things must come to an
+        enema</computeroutput>...</quote>.</para>
+
+
+      <para> When someone writes a piece of text, their choice of the text string can be viewed as a
+        choice of a book from this library of all books - the book that contains exactly the chosen
+        text. How do they choose that book? Let's imagine they want to write
+            <quote><computeroutput>all good things</computeroutput>...</quote>;</para>
+      <figure>
+        <title>The library of all books.</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/a-z.gif"/>
+          </imageobject>
+          <imageobject>
+            <imagedata fileref="figures/aa-az.gif"/>
+          </imageobject>
+          <imageobject>
+            <imagedata fileref="figures/ala-alz.gif"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+      <para>First, they walk into the <quote>
+          <computeroutput>a</computeroutput>
+        </quote>; section of the library. There, they are confronted by books starting <quote>
+          <computeroutput>aa</computeroutput>
+        </quote>;, <quote>
+          <computeroutput>ab</computeroutput>
+        </quote>, <quote><computeroutput>ac</computeroutput>...</quote>; <quote>
+          <computeroutput>az</computeroutput>
+        </quote>; [Picture (ii)]. Looking more closely at the <quote>
+          <computeroutput>al</computeroutput>
+        </quote>; section, they can find books starting <quote>
+          <computeroutput>ala</computeroutput>
+        </quote>;, <quote>;<computeroutput>alb</computeroutput></quote>;,...; <quote>
+          <computeroutput>alz</computeroutput>
+        </quote>; [Picture (iii)].</para>
+
+      <para> By looking ever more closely at the shelf, the writer can find the book containing the
+        text he wishes to write. Thus writing can be described as <emphasis>zooming in on an
+          alphabetical library, steering as you go</emphasis>.</para>
+
+      <para> This is exactly how Dasher works, except for one crucial point: <emphasis>we alter the
+          SIZE of the shelf space devoted to each book in proportion to the probability of the
+          corresponding text.</emphasis> For example, not very many books start with an <quote>
+          <computeroutput>x</computeroutput>
+        </quote>;, so we devote less space to <quote><computeroutput>x</computeroutput>...;</quote>;
+        books, and more to the more plausible books, thus making it easier to find books that
+        contain probable text.</para>
+
+      <para> Here is the corresponding sequence of pictures of the library in Dasher. (The character
+          <quote>_</quote>; denotes the space character.)</para>
+      <figure>
+        <title>The library of all books.</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/a-z.gif"/>
+          </imageobject>
+          <imageobject>
+            <imagedata fileref="figures/aa-az.gif"/>
+          </imageobject>
+          <imageobject>
+            <imagedata fileref="figures/ala-alz.gif"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+      <!--
+\begin{center}
+\begin{tabular}{ccc}
+\mbox{\psfig{figure=images/a-z.m.gif.50.ps}}&
+\mbox{\psfig{figure=images/aa-az.m.gif.50.ps}}&
+\mbox{\psfig{figure=images/ala-alz.m.gif.50.ps}}\\
+(i)&(ii)&(iii)\\
+\end{tabular}
+\end{center}
+							      -->
+
+      <para> Dasher can be trained on examples of any writing style, and it learns all the time,
+        picking up your personal turns of phrase.</para>
+
+      <para>The image below shows the state of the Dasher interface while the user is writing the
+        word `objection'; alternative words that could easily be written at this point include
+        `objective', `objects_', and `object_oriented'.</para>
+      <figure>
+        <title>Writing `objection' in Dasher.</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/object.gif"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para> If you find Dasher hard to imagine based on these static pictures, please take a look
+        at the movies on <ulink url="http://www.inference.phy.cam.ac.uk/dasher/" type="http">http://www.inference.phy.cam.ac.uk/dasher/</ulink>.</para>
+
+
+      <!--% When  you try Dasher for the first time,  please read the tips for novices.-->
+    </sect2>
+    <sect2>
+      <title>Tips for novices</title>
+      <para>Don't give up if it takes you a minute or two to get started - within ten minutes,
+        you'll be blazing along. It's a lot like driving a car. You should <emphasis>start by
+          driving cautiously</emphasis>. If you can't tell where you are going, <emphasis>stop
+        going</emphasis>. Indeed, you will probably learn Dasher fastest if you come to it with
+        car-driving analogies in mind, rather than standard computer analogies. For example, the way
+        navigation works is not by DRAGGING but by STEERING: if cars worked like windows computers,
+        you would have to <quote>grab</quote> the piece of road you want, then ,<quote>drag</quote>;
+        it towards you; but in a car, when you wish to drive right, you POINT RIGHT with your
+        steering wheel. Dasher does not work by dragging either. <emphasis>Do not try to grab things
+          and drag them. Just decide where you want to go, and point there.</emphasis></para>
+
+      <para>
+        <emphasis>The single most important concept</emphasis> that a novice user needs to
+        understand is that one should always continue <emphasis>inside</emphasis> the text written
+        so far: to select the book that contains <quote>all</quote>; as its first word, one does
+          <emphasis>not</emphasis> enter the <quote>a</quote>; section of the library, then exit the
+          <quote>;a</quote>; section, and enter the ,<quote>l</quote>; section. One enters the
+          <quote>a</quote>; section, then finds the <quote>al</quote>; section that is
+          <emphasis>within</emphasis> the <quote>a</quote>; section, then enters the
+        <quote>all</quote>; section <emphasis>within</emphasis> the <quote>al</quote>; section.</para>
+
+      <para> It's just like finding a name in a phonebook. To find <quote>
+          <computeroutput>Alison</computeroutput>
+        </quote>;, you don't go to the <quote>
+          <computeroutput>A</computeroutput>
+        </quote>; section of the phonebook, then the
+        <quote>;<computeroutput>L</computeroutput></quote>; section: you go into the <quote>
+          <computeroutput>A</computeroutput>
+        </quote>; section, then find <emphasis>within it</emphasis> the <quote>
+          <computeroutput>Al</computeroutput>
+        </quote>; section, and so forth. Once you are in the <quote>
+          <computeroutput>Al</computeroutput>
+        </quote>; section, you never leave it.</para>
+
+      <para><emphasis>The second most important idea</emphasis> is that what you have written
+        depends <emphasis>only</emphasis> on where you finally end up in the library, not on how you
+        got there; so there is no need to steer accurately on your way to your destination.
+          <emphasis>You are allowed to cut corners.</emphasis> (For example, in the previous image,
+        if you wanted to write `objects_are', it would be fine to move the mouse straight towards
+        the letters `are', even if this takes the mouse across the unwanted grey `i' square.)</para>
+
+
+
+
+      <para><emphasis>Common errors.</emphasis> Often, a beginner who is trying to find a particular
+        letter will drive the display forwards fast while hunting for the letter. The rule of the
+        road for Dasher users is just like that for car-drivers: don't drive forwards until you have
+        identified where you want to go! So, after you have found the first letter of your sentence,
+        and zoomed towards it, please <emphasis>SLOW DOWN and don't proceed any further into this
+          first letter's square until you have figured out where you should be steering
+        towards</emphasis>. Your next letter <emphasis>is</emphasis> there, immediately inside the
+        first square you have entered. The letters are ordered alphabetically. If you can't see your
+        letter, figure out where it must be on the basis of the letters you <emphasis>can</emphasis>
+        see. Then point to the right place and enter the second letter's square.</para>
+    </sect2>
+    <sect2>
+      <title>Example</title>
+      <figure id="figHad1">
+        <title>Writing <quote>
+            <computeroutput>I once had a whim</computeroutput>
+          </quote>;. Where should the user steer now?</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/exampleHad2.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+      <para> Imagine you want to write `<computeroutput>I once had a whim</computeroutput>'. You
+        write `<computeroutput>I once ha...</computeroutput>' and the Dasher display looks like
+          <xref linkend="figHad1"/>. You want to write `<computeroutput>had</computeroutput>'. What
+        should you do? There are lots of letter <computeroutput>d</computeroutput>s on the screen,
+        and all of them are rather small. The five arrows in <xref linkend="figHad1"/> show some of
+        these <computeroutput>d</computeroutput>s. The purple arrow points to a
+        <computeroutput>d</computeroutput> that we can't see yet, but we know it must be there
+        because we can see `<computeroutput>a</computeroutput>',
+        `<computeroutput>b</computeroutput>', and `<computeroutput>c</computeroutput>' above it.</para>
+      <figure id="figHad2">
+        <title>Some alternative letter <computeroutput>d</computeroutput>s, with a beginner's error
+          highlighted</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/exampleHad2a.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+      <para> A common beginner's mistake is to keep rushing forward and spot
+        <emphasis>any</emphasis> of these letter <computeroutput>d</computeroutput>s, and zoom into
+        it. For example, <xref linkend="figHad3"/> shows what happens if the user zooms towards the
+          <computeroutput>d</computeroutput> highlighted in <xref linkend="figHad2"/>.</para>
+      <figure id="figHad3">
+        <title>What happens when you select the wrong <computeroutput>d</computeroutput></title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/exampleHad3a.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+
+      <para>If you go in this <computeroutput>d</computeroutput>, you are writing `<computeroutput>I
+          once </computeroutput><emphasis>head</emphasis><computeroutput>...</computeroutput>'. The
+        other two <computeroutput>d</computeroutput>s labelled by red arrows (in <xref
+          linkend="figHad1"/>) correspond to writing `<computeroutput>I once
+          </computeroutput><emphasis>heard</emphasis><computeroutput>...</computeroutput>' and
+          `<computeroutput>I once
+        </computeroutput><emphasis>hedge</emphasis><computeroutput>...</computeroutput>'.</para>
+
+
+      <para> It is crucial to understand that there is only one correct
+        <computeroutput>d</computeroutput>, namely the <computeroutput>d</computeroutput> that is
+        immediately inside the blue box corresponding to letter `<computeroutput>a</computeroutput>'
+        in the sequence `<computeroutput>I once ha</computeroutput>'. That blue box is highlighted
+        in <xref linkend="figHad4"/>.</para>
+      <figure id="figHad4">
+        <title>The correct letter <computeroutput>d</computeroutput> is the one marked by the green
+          arrow. This example illustrates the rule <quote>always keep going
+            <emphasis>inside</emphasis> the box that you want</quote>; in this case, the blue box
+          associated with the letter <computeroutput>a</computeroutput> of the word <quote>
+            <computeroutput>had</computeroutput>
+          </quote>; </title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/exampleHad4.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para>If you ever leave that blue box (as we did in <xref linkend="figHad3"/>) then we lose
+        the letter `<computeroutput>a</computeroutput>'.</para>
+    </sect2>
+
+    <sect2>
+      <title>Summary</title>
+      <para>
+        <emphasis>Don't click. Don't drag. And don't speed.</emphasis>
+      </para>
+    </sect2>
+
+    <sect2>
+      <title>What do the colours mean?</title>
+      <para> In the English-language desktop version 3 of Dasher, <itemizedlist>
+          <listitem>
+            <para><emphasis>white</emphasis> squares contain the space characters (always placed at
+              the bottom of the alphabet);</para>
+          </listitem>
+
+          <listitem>
+            <para>a special <emphasis>yellow</emphasis> box contains the upper case characters
+              [A-Z];</para>
+          </listitem>
+
+          <listitem>
+            <para>a <emphasis>red</emphasis> box contains numerals [0-9] (if the full alphabet is
+              enabled);</para>
+          </listitem>
+
+          <listitem>
+            <para>a <emphasis>green</emphasis> box contains punctuation characters (with the
+              characters most similar to the space character [.,;:-] placed at the bottom, next to
+              the <emphasis>white</emphasis> space character. Within the punctuation section,
+              letters with similar roles are coloured similarly: punctuation characters similar to
+              the period [.,;:-] are coloured slate-blue;</para>
+          </listitem>
+          <listitem>
+            <para>the other colours are included simply to discriminate the squares from each
+            other.</para>
+          </listitem>
+          <listitem>
+            <para>In languages with accents (grave, acute, circumflex, etc), the accents are
+              displayed in an <emphasis>orange</emphasis> box.</para>
+          </listitem>
+          <listitem>
+            <para> In the Japanese version of Dasher, colours are used to distinguish the different
+              hiragana groups (eg ka,ki,ku,ke,ko are orange).</para>
+          </listitem>
+          <listitem>
+            <para> In the Korean version of Dasher, three different colours are used to distinguish
+              initial consonants, vowels, and terminal consonants.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <para> You can alter the colour scheme by editing the <computeroutput>colour</computeroutput>
+        and <computeroutput>alphabet</computeroutput> xml files, as described in <xref
+          linkend="personalising"/>.</para>
+    </sect2>
+    <sect2>
+      <title>How to start dasher (version 4)</title>
+      <para> Set the dasher application running; when the dasher window comes up, either click the
+        left mouse button or press the space bar to set it going. [One of these two will work.]
+        Repeat this action (click or space), when you are finished, to stop dasher from dashing.
+        Your computer's mouse controls Dasher.</para>
+
+      <para> Adjust the speed slider to fix the maximum speed Dasher will zoom at. A speed of 1 is
+        good for a beginner, increasing to 2 after 5 minutes' practice, and to 4 when you are
+        expert.</para>
+    </sect2>
+    <sect2>
+      <title>How to start dasher (version 2) on pocket PC</title>
+      <para> Install, run (wait a few seconds for it to load up the training file), then touch the
+        screen with the stylus to make dasher move.</para>
+
+      <para>There are three special strongly-coloured squares in this version of Dasher, coloured
+        yellow, red (in some releases only), and green; all three squares do not produce any
+        character; these squares indicate sub-groupings of the alphabet. (Uppercase Alphabet,
+        Numerals (in some releases only), and Punctuation.)</para>
+    </sect2>
+  </sect1>
+  <!--<sect1 id="usage">
+    <title>Using Dasher</title>
+    <sect2 id="menubar">
+      <title>Menus</title>
+      <para> The menu bar, located at the top of the <interface>Main Window</interface>, provides
+        the following commands: </para>
+      <variablelist>
+        <varlistentry>
+          <term>
+            <guimenu>File</guimenu>
+          </term>
+          <listitem>
+            <para>This menu contains the following commands: <itemizedlist>
+                <listitem>
+                  <para>
+                    <guimenuitem>New</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Open</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Save</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Save As</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Append to file</guimenuitem> this command can be used to append
+                    the current Dasher buffer to an existing text file.</para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Import training text</guimenuitem> this command can be used to
+                    add the contents of an existing text file to Dasher's language model.</para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Quit</guimenuitem>
+                  </para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>
+            <guimenu>Edit</guimenu>
+          </term>
+          <listitem>
+            <para> This menu contains the following commands: <itemizedlist>
+                <listitem>
+                  <para>
+                    <guimenuitem>Cut</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Copy</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Paste</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Copy All</guimenuitem>
+                  </para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>
+            <guimenu>Options</guimenu>
+          </term>
+          <listitem>
+            <para> This menu contains the following commands: <itemizedlist>
+                <listitem>
+                  <para><guimenuitem>Preferences</guimenuitem>, which launches the <link
+                      linkend="prefs">
+                      <interface>Preferences Dialog</interface>
+                    </link></para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Edit font</guimenuitem> alters the font used in the edit
+                  box.</para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Dasher font</guimenuitem> alters the size of the moving
+                    characters.</para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Dasher font size</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Enter text into other windows</guimenuitem> this causes Dasher
+                    to enter text into whichever window is selected.</para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Control mode</guimenuitem> this causes an extra node to appear
+                    at the bottom of the alphabet. Here, you can edit text directly from within
+                    Dasher, cause Dasher to speak text that you have entered and stop or pause
+                    Dasher.</para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>
+            <guimenu>Help</guimenu>
+          </term>
+          <listitem>
+            <para>This menu contains the following commands: <itemizedlist>
+                <listitem>
+                  <para><guimenuitem>About</guimenuitem> shows basic information about
+                      <application>Dasher</application>, such as author's name and version number.
+                  </para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect2>
+
+    <sect2 id="prefs">
+      <title>Customization</title>
+      <para> To change default settings, select <guimenuitem>Preferences</guimenuitem> command in
+          <guimenu>Settings</guimenu> menu. This launches the <interface>Preferences
+        dialog</interface>, shown in <xref linkend="prefs1"/>, <xref linkend="prefs2"/>, <xref
+          linkend="prefs3"/>, <xref linkend="prefs4"/> and <xref linkend="prefs5"/>. </para>
+      <figure id="prefs1">
+        <title>&quot;Alphabet&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs1.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para> Dasher has support for many languages, and the choice of which language to write in is
+        made with this dialog. Note that some languages (for example, Hiragana, Korean and the
+        International Phonetic Alphabet) may require fonts that you do not have installed. For
+        information on creating your own alphabet files, see the <ulink
+          url="http://www.inference.phy.cam.ac.uk/dasher/" type="http">Dasher website</ulink>. </para>
+      <figure id="prefs2">
+        <title>&quot;Colour&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs2.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para> Dasher has support for different colour schemes. The 'Default' colour scheme is a
+        simple rotation of colours that should work with any language. Enhanced colour schemes may
+        be used for languages with logical groupings (such as Hiragana or Korean) or to increase
+        contrast. </para>
+      <figure id="prefs3">
+        <title>&quot;Control&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs3.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para>
+        <itemizedlist>
+          <listitem>
+            <para><guimenuitem>One dimensional mode</guimenuitem> maps the Y coordinate of the mouse
+              position to an X/Y coordinate, for use with one-dimensional input methods.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Eyetracker mode</guimenuitem> optimisations for eyetrackers
+              specifically, makes Dasher behave as in one-dimensional mode near the right hand edge
+              of the screen.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Start on left mouse button</guimenuitem> the left mouse button starts
+              and stops Dasher.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Start on space bar</guimenuitem> the space bar starts and stops
+              Dasher.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Start with mouse position</guimenuitem> when Dasher is paused, a red
+              box appears. Hold the cursor inside the red box until a yellow box appears. Hold the
+              cursor inside the yellow box. Dasher will then start..</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Copy all on stop</guimenuitem> when stopped, Dasher will copy all
+              text to the clipboard automatically.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Speak on stop</guimenuitem> when stopped, Dasher will speak newly
+              entered text automatically.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Pause outside window</guimenuitem> Dasher will pause if the mouse
+              pointer moves outside its window.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <figure id="prefs4">
+        <title>&quot;View&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs4.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para>
+        <itemizedlist>
+          <listitem>
+            <para><guimenuitem>Orientation</guimenuitem> alters the direction that the text moves
+              in. If set to &quot;Alphabet default&quot;, the alphabet file will choose the
+              appropriate direction for the alphabet.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Show toolbar</guimenuitem> you can hide Dasher's toolbar if you wish.
+              Calling dasher with the '-o' switch will open a reduced-options version of dasher,
+              designed for entry into other applications.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Show speed slider</guimenuitem> enable/disable the speed
+            slider.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Show mouse position</guimenuitem> in some situations (such as
+              one-dimensional or eyetracker mode), the absolute position of the mouse will differ
+              from Dasher's perception of the mouse position. This option shows you where Dasher's
+              mouse is.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Draw line between crosshairs and mouse</guimenuitem> helpful for
+              users who have trouble keeping track of the pointer.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Draw box outlines</guimenuitem> increases the contrast around the
+              edges of boxes, to help distinguish between them.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Change colour scheme automatically</guimenuitem> languages such as
+              Hiragana are aware of which colour scheme they should be using. This option allows an
+              alphabet to select its colour scheme automatically.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <figure id="prefs5">
+        <title>&quot;Advanced&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs5.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para>
+        <itemizedlist>
+          <listitem>
+            <para><guimenuitem>Smoothing</guimenuitem> adds a &quot;uniform&quot; element to
+              the language model's predictions. A smoothing value of 100 will result in an entirely
+              uniform distribution being used  each box will have the same size.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Timestamp new files</guimenuitem> each file created by Dasher will
+              automatically have the current time in its filename.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Distance from centreline for start on mouse position</guimenuitem>
+              controls the range for the 'Start on mouse position' option.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Number of pixels that should cover the entire Y range</guimenuitem>
+              some input devices do not have enough gain to cover an entire Dasher window; this
+              option increases the gain of displacement on the Y axis.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+    </sect2>
+  </sect1>-->
+  <sect1 id="reallife">
+    <title>How to use Dasher in real life</title>
+
+    <para> Dasher can be used to communicate through your computer, and (to some degree) to control
+      your computer. Obviously, the simplest way to communicate with Dasher is to have the person
+      you're talking to watch the screen as you write. But there are lots of other ways to
+      communicate through Dasher.</para>
+
+    <sect2>
+      <title>Copy to clipboard</title>
+
+      <para> If you have the `copy on stop' feature switched on, then, every time you stop Dasher,
+        the contents of Dasher's text box get copied directly to your computer's clipboard. You can
+        then use the `Paste' function of another application to transfer what you've written.</para>
+    </sect2>
+
+    <sect2>
+      <title>Speaking</title>
+
+      <para>Dasher connects to your computer's built-in text-to-speech system. There are several
+        ways to use Dasher for speaking.</para>
+
+      <para> You can choose to have Dasher `speak each word': every time you pass through the end of
+        a word (by entering a space character for example), that word gets spoken immediately.</para>
+
+      <para> You can also choose to have Dasher `speak on stop': every time you stop Dasher moving,
+        everything that is in the text box gets spoken.</para>
+
+      <para> Finally, you can speak exactly when you want to by switching on <emphasis>Control
+        Mode</emphasis> (which is under the Options Menu in Dasher version 3). This mode brings up
+        an extra box in the Dasher alphabet, coloured grey, which works a bit like an escape key on
+        a keyboard. If you go inside the Control box, you will find several control-related options:
+        Stop (red); pause (yellow); Move; Delete; and Speak. Inside the Speak box are the options to
+        `speak everything', `speak new' (just the new words that you wrote since the last
+        utterance), and `speak again' (which re-speaks whatever was last spoken).</para>
+    </sect2>
+
+    <sect2>
+      <title>Save to file</title>
+
+      <para> You can save whatever is in the text box of Dasher as a plain text file by clicking the
+        `Save file' icon in the icon bar, or using the menus at the top of the Dasher window
+        (selecting File then Save).</para>
+    </sect2>
+
+    <sect2>
+      <title>Send text to other window</title>
+
+      <para> You can also have whatever is written in Dasher be directly beamed to another window.
+        Enable the `send text to other window' option under the options menu. Then the window that
+        you select will get Dasher's output.</para>
+    </sect2>
+
+
+
+
+    <sect2>
+      <title>Font sizes</title>
+
+      <para> Dasher has a text box (where the text appears) and a Dasher canvas (where all the fun
+        zooming action happens). You can change the font sizes of both these regions using the
+        Dasher menus at the top of the Dasher window. The two fonts are called the `Edit font' (for
+        the text box's font), and the `Dasher font', I think. (I forget the exact menu names in
+        Dasher version 3, sorry.) To change the edit font size bring up the usual dialog box and
+        change size. To change the Dasher canvas size, find the Dasher-size option, which offers
+        three to choose from, named something like: small, medium, and large.</para>
+    </sect2>
+  </sect1>
+
+  <sect1 id="personalising">
+    <title>Personalizing Dasher</title>
+    <para> There are three classes of files you can tweak in order to make Dasher work better for
+      you: <computeroutput>alphabet</computeroutput> files, <computeroutput>colour</computeroutput>
+      files, and <computeroutput>training</computeroutput> files.</para>
+
+    <sect2>
+      <title>Personalizing the language model</title>
+      <para>Dasher's predictions (in version 3 of Dasher) are based not on a dictionary but on a
+        training text of ordinary text. For example, when you download Dasher version 3, it comes
+        with a file called <filename>training_english_GB.txt</filename>. This is 300 kbytes of
+        ordinary English harvested from various documents on the Internet. </para>
+
+      <para> When you use Dasher, it stores everything you write in another personal file with the
+        same name as the training file. Next time you use Dasher, it reads in the original training
+        file and everything you wrote last time, to help it predict better. Dasher learns all the
+        time. To get the best results from Dasher: <itemizedlist>
+          <listitem>
+            <para>If possible, provide Dasher with a training text in your own style -- a plain text
+              file made from documents you have written before, and containing your own pet phrases,
+              friends' names, and so forth. Either append this file to the training file, or replace
+              the original training file.</para>
+          </listitem>
+          <listitem>
+            <para> If you think your personal training file may have become corrupted with rubbish
+              text, edit it using any plain text editor. (Or ask a friend to do this for
+            you.)</para>
+          </listitem>
+          <listitem>
+            <para> If you use Dasher for many months, the personal training file may become so large
+              that Dasher becomes slow to start up; if so, edit the training file using a plain text
+              editor. </para>
+          </listitem>
+        </itemizedlist></para>
+    </sect2>
+    <sect2>
+      <title>Personalizing the alphabet</title>
+      <para> Which characters are available to you, and their order, is determined by the alphabet
+        file. For example, you might use <filename>alphabet.english.xml</filename>. Dasher comes
+        with many alternative alphabets. You can edit alphabet files to change which characters are
+        in the alphabet, or their order. When you edit this xml file, it might be a good idea to
+        save the new file with a new name and change the name of the alphabets in the new file, to
+        avoid confusion. Each field in the xml file specifies a symbol by three items: the character
+        that should be <emphasis>displayed</emphasis> (<computeroutput>d=</computeroutput>...); the
+        character that goes into the <emphasis>text</emphasis> when this symbol is selected
+          (<computeroutput>t=</computeroutput>...); and the background colour number of the box for
+        this symbol (<computeroutput>b=</computeroutput>...), of which more below.</para>
+    </sect2>
+    <sect2>
+      <title>Personalizing the colour scheme</title>
+      <para>You can change the colours of the Dasher world in two ways. The colour file (for example
+          <filename>colour.xml</filename> or <filename>colour.euroasian.xml</filename>) specifies
+        the 200 colours in the palette that Dasher uses. Each line specifies red, green, blue
+        values.</para>
+
+      <para> These colours are used to colour multiple objects in dasher. If for example you want to
+        change the colour of the <quote>red line</quote>;, change the second colour line of the
+        colour file, which reads <computeroutput>&lt;colour r=&quot;255&quot;
+          g=&quot;0&quot; b=&quot;0&quot;/&gt;</computeroutput>. </para>
+
+
+      <para> You can change which of these colours is used for each symbol's box by changing the
+          <quote>b</quote>; field for that symbol in the alphabet file.</para>
+    </sect2>
+
+
+
+
+  </sect1>
+  <sect1 id="languages">
+    <title>Languages</title>
+
+    <para> Dasher works in hundreds of languages.</para>
+
+    <para> For each language there is an alphabet file (or possibly more than one alphabet file). On
+      the Dasher website we aim to supply at least one training text for each language. If we don't
+      have a good training text for your language, please help us by making one and sending it to
+      us.</para>
+
+    <para> See the Dasher website for the list of languages supported by Dasher. As of October 2005,
+      all the major languages of the world are well supported, with the exception of Japanese and
+      Chinese, for which Dasher version 3 offers only phonetic support (hiragana and pin-yin). In
+      Dasher version 4, we will provide full support for Japanese and Chinese. </para>
+
+    <!--    %% Dasher works beautifully in Korean-->
+
+
+  </sect1>
+
+
+
+  <sect1 id="specialneeds">
+    <title>Dasher Special Needs Guide</title>
+
+    <para> Dasher is designed on the principle of getting <emphasis>as much information as
+      possible</emphasis> from the gestures you can make.</para>
+
+    <para> We can get information from whichever of the following is easiest for you: <orderedlist>
+        <listitem>
+          <para>
+            <emphasis>Continuous</emphasis> gestures (conveyed via a joystick, trackpad, head mouse,
+            or gaze tracker, for example) often achieve the highest rates of writing.</para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis>Discrete</emphasis> gestures (switches, button presses) may be able to convey
+            information in three different ways:</para>
+          <orderedlist>
+            <listitem>
+              <para> The <emphasis>time</emphasis> at which you press a button can convey
+                information. (This idea is used in grid systems controlled by a single
+              button.)</para>
+            </listitem>
+            <listitem>
+              <para>
+                <emphasis>How long</emphasis> you press a button for can convey information. (This
+                idea is used in Morse code, where two durations are distinguished.) </para>
+            </listitem>
+            <listitem>
+              <para> The <emphasis>choice</emphasis> of <emphasis>which</emphasis> button you press
+                can convey information. (This idea is used in ordinary keyboards.)</para>
+            </listitem>
+          </orderedlist>
+        </listitem>
+      </orderedlist></para>
+
+    <sect2 id="manual7">
+      <title>Continuous gestures</title>
+      <para> Dasher's normal mode (<emphasis>mouse mode</emphasis>) is driven by a two-dimensional
+        continuous steering gesture. Dasher also has a <emphasis>one-dimensional mode</emphasis>,
+        for users who can control only one dimension.</para>
+
+      <para> Can you make one or two continuous gestures? If you can operate a joystick, mouse,
+        trackpad, or rollerball, then you have a two-dimensional control. If you can point on a
+        touch-screen then that's perfect too. Can you move your nose around? If you can shake your
+        head, that's a one-dimensional control; if you can nod, that's two. A head-mouse can be
+        quite cheap, and it is a convenient way to drive Dasher. (We recommend the
+          <emphasis>SmartNav3</emphasis> from NaturalPoint, which costs about $200, and works under
+        microsoft windows only; this device used to be called the NavPoint TrackIR until 2002, when
+        that brand name was transferred to a different device. We also recommend the Origin
+        instruments <emphasis>Headmouse Extreme</emphasis>, which costs about $1000; it works as a
+        USB mouse on any computer.) Can you waggle one finger or one foot? These head-mice can be
+        used to track fingers and feet as well as heads. For a detailed comparison of SmartNav3 with
+        Headmouse Extreme, please see <ulink
+          url="http://www.inference.phy.cam.ac.uk/dasher/Headmouse.html" type="http">http://www.inference.phy.cam.ac.uk/dasher/Headmouse.html</ulink>.</para>
+
+      <para>If you are severely paralysed, the best option may be a gaze tracker. Do you have
+        control of where your eyes are looking? With a gaze tracker we can write at 25 words per
+        minute. Gaze trackers are quite expensive: we paid $2000 for the QuickGlance from EyeTech
+        Digital Systems, and the Tobii eyetracker costs about $20,000. [We recommend both of these
+        systems. You attach QuickGlance to an existing computer; Quickglance II costs about $4000.
+        Tobii is a complete computer with built-in eyetracking cameras.] Dasher also works with the
+        Eye response <emphasis>Erica</emphasis>, with LC's <emphasis>Eyegaze</emphasis>, and with
+        Metrovision's gaze-tracker. All three of these systems are complete computers with
+        eye-tracking cameras attached.</para>
+
+      <para> If joysticks, mice, rollerballs, and gaze trackers don't work, there may be a few other
+        ways to convey a continuous one-dimensional signal. Lips and eyebrows should both work,
+        though we don't know of any manufacturer selling appropriate devices. Breath is a
+        one-dimensional signal too. If you can control your breath, it should be possible to make a
+        breath mouse for you. We made our $22 breath mouse using a USB optical mouse, a belt, and
+        some elastic, and our most experienced user can write at 15 words per minute by breath
+        alone.</para>
+      <sect3>
+        <title>Starting and stopping</title>
+        <para>There are several ways of starting and stopping Dasher. Pressing a button (for
+          example, the left mouse button or the space bar) is one option. But if you can not press
+          any buttons, it's possible to start and stop using only continuous gestures: in the
+          options menu, select <quote>start on position</quote>; and switch on <quote>control
+          mode</quote>;. When control mode is switched on, the Dasher alphabet includes a special
+          Control node (a bit like an <computeroutput>Esc</computeroutput> key on a keyboard),
+          within which various control functions are available. When you are inside the control
+          node, Dasher moves more slowly than normal, for safety. The control node options include
+          `pause' and `stop'. Use `pause' if you are half-way through writing something, and want to
+          pause for a moment. Use `stop' when you have finished. <command>Pause</command> and
+            <command>stop</command> produce the same behaviour, except <command>stop</command> may
+          cause other automatic actions, such as `speak on stop', or `copy the text
+          <!--% to clipboard --> on stop'.</para>
+
+        <para>When Dasher is paused or stopped, it can be restarted using any of the starting
+          methods that are enabled. If `start on position' is enabled, then whenever Dasher is
+          stopped a sequence of large targets will be displayed; you restart Dasher by pointing at
+          (or looking at) the first (red) target, then the second (yellow) target. (We use two
+          targets in sequence to make it difficult to start Dasher by accident.)</para>
+      </sect3>
+      <sect3>
+        <title>Recommendations for head-tracking</title>
+        <para> Many trackers have `smoothing' options, which determine the frequency with which the
+          mouse position is updated; these options are normally used to smooth and damp down the
+          mouse motion. For Dasher, we don't want such smoothing. We like instant, live, raw and
+          jerky mouse coordinates. If there is a `smoothing' control, turn it right down.</para>
+
+        <para>The `gain' (sometimes called the `speed') of the head-tracker is also an important
+          setting to adjust. Some trackers' gains can be adjusted in software. You can also adjust
+          the gain by changing the geometry of your tracker: if you move the tracked dot from your
+          forehead to the brim of a baseball cap, for example, then you roughly double the gain.
+          Sitting closer to the tracker may also increase the gain. Find a gain setting that is
+          comfortable. I like high gain because it allows me to steer with very small head
+        motions.</para>
+      </sect3>
+      <sect3>
+        <title>Recommendations for gaze-tracking</title>
+        <para>For good results with gaze trackers, we strongly recommend that the gaze-tracker be
+          made to be as responsive as possible. Many trackers have `smoothing' options, which
+          determine the frequency with which the mouse position is updated and the number of
+          successive gaze images used to estimate the mouse position. These options are normally
+          used to smooth and damp down the mouse motion. For Dasher, we don't want such smoothing.
+          We like instant, live, raw and jerky mouse coordinates. When you are navigating, your eye
+          moves very quickly to the target you are interested in, and we want Dasher to respond
+          instantly. The ideal settings for Dasher may be very different from the ideal settings for
+          other software. Ask your eyetracker manufacturer to make it easy to change the settings
+          when switching application. </para>
+
+        <para> Dasher has several options designed for use with gaze-trackers. We recommend using
+            <emphasis>eyetracker mode</emphasis> (under Options/Preferences/Control). In this mode,
+          the dynamics of Dasher are slightly different from standard dynamics, making
+          error-correction easier by gaze.</para>
+
+        <para>If your gaze-tracker's calibration drifts with time, for example when your head moves,
+          then you should select the <emphasis>Autocalibrate eyetracker</emphasis> feature. When
+          this feature is switched on, Dasher keeps track of your steering and infers the vertical
+          calibration error, and corrects for it. You can see this correction taking effect by
+          noticing the vertical offset between the mouse position as displayed by Dasher (by the tip
+          of the red line) and the gaze-tracker's mouse position (shown by the system's mouse
+          cursor).</para>
+
+        <para>To avoid difficulties with the mouse being bounded by the top and bottom of the
+          screen, we recommend choosing a window size for Dasher that is <emphasis>not</emphasis>
+          full-screen in size. Place the Dasher window so that there is a margin above and below the
+          Dasher canvas.</para>
+
+        <para><emphasis>Technical note:</emphasis> As well as through mouse emulation, Dasher is
+          able to receive tracking information from gaze trackers, head trackers, or similar systems
+          directly by means of a system socket. This option can be configured in the 'Input Device'
+          section of the 'preferences' dialogue.</para>
+      </sect3>
+    </sect2>
+    <sect2 id="manual8">
+      <title>Discrete Gestures</title>
+      <para>We have several versions of <emphasis>button Dasher</emphasis>, available in Dasher
+        Version 4.</para>
+
+      <sect3>
+        <title>Are time-critical gestures not an option?</title>
+        <para>Some ways of conveying information make use of the <emphasis>timing</emphasis> of
+          gestures. However, some people can't make gestures at a required instant. For example,
+          spastics find it very difficult to do an action `exactly now!'</para>
+
+        <para>If time-critical gestures are not an option, go to <xref linkend="no_time_critical"/>.</para>
+
+        <para>If you <emphasis>can</emphasis> convey information by <emphasis>precisely
+          timed</emphasis> gestures, go to section <xref linkend="timed"/>.</para>
+      </sect3>
+    </sect2>
+    <sect2 id="no_time_critical">
+      <title>`Timeless' choices of Dasher</title>
+      <para> So, you want to steer Dasher at your own pace. Can you make fairly-accurate continuous
+        gestures, given time? For example, can you position a pointer accurately on a screen, then
+        press a button to indicate that you are ready? Or can you touch a touch-screen fairly
+        accurately? <itemizedlist>
+          <listitem>
+            <para>If so, try <emphasis>click mode</emphasis>. Go to <xref
+                linkend="time_critical_button"/>.</para>
+          </listitem>
+          <listitem>
+            <para> Otherwise try <emphasis>direct button mode</emphasis> or <emphasis>menu button
+                mode</emphasis>. Go to <xref linkend="no_time_critical_button"/>.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <sect3 id="time_critical_button">
+        <title>`Timeless' continuous Dasher: click mode</title>
+
+        <para> In <emphasis>click mode</emphasis>, you position the mouse pointer where you want to
+          go, then press a button when you are ready. Dasher then zooms in on the position you
+          chose.</para>
+
+        <para> Alternatively, if you have a touch screen, a single touch on the screen initiates a
+          zoom to that position.</para>
+      </sect3>
+      <sect3 id="no_time_critical_button">
+        <title>`Timeless' choices of Button Dasher</title>
+        <para> How many different switches, keys, or buttons can you easily operate? </para>
+        <variablelist>
+          <varlistentry>
+            <term>1</term>
+            <listitem>
+              <para>With just one button, the only timeless way to convey information is by the
+                  <emphasis>duration</emphasis> of your button-presses. Can you make a distinction
+                between short presses and long presses? If so, you can use <emphasis>menu
+                  button-Dasher</emphasis>. Connect up your short press to the `menu' action, and
+                your long press to the `select' action. </para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>2</term>
+            <listitem>
+              <para>You can use <emphasis>menu button-Dasher</emphasis>. Connect one button to the
+                `menu' action, and the other to the `select' action. If one button is easier to
+                press, make that button the `menu' button. </para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>2.5</term>
+            <listitem>
+              <para>If you can easily press two buttons, and, for special occasions, you are able to
+                press a third button, you can use <emphasis>menu button-Dasher</emphasis> or
+                  <emphasis>direct button-Dasher</emphasis>. </para>
+              <orderedlist>
+                <listitem>
+                  <para> Set up <emphasis>menu button-Dasher</emphasis> as described above, and use
+                    the third button as your escape key -- to make Dasher go away, for example.
+                    [This feature is not currently provided within Dasher.]</para>
+                </listitem>
+                <listitem>
+                  <para> In <emphasis>direct button-Dasher</emphasis>, each button produces a
+                    particular navigation action such as `up', `down', or `back'. If you have 2.5
+                    buttons, map the convenient two to `up' and `down', and the inconvenient button
+                    to `back'.</para>
+                </listitem>
+              </orderedlist>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>3</term>
+            <listitem>
+              <para>You can use <emphasis>direct button-Dasher</emphasis> or <emphasis>menu
+                  button-Dasher</emphasis> as described above.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>4, 5, 6, or 7</term>
+            <listitem>
+              <para>With more than three buttons, you have the option to use <emphasis>direct
+                  button-Dasher</emphasis> with three, four, five, or six `forward' directions.
+                Please try <emphasis>menu button-Dasher</emphasis> too, even though it uses only two
+                buttons.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>8 or more</term>
+            <listitem>
+              <para>Try <emphasis>direct button-Dasher</emphasis> and <emphasis>menu
+                button-Dasher</emphasis>. With this many buttons, you also have the option of using
+                a system like T9 -- the predictive-text system found on many mobile phones. You may
+                wish to investigate <emphasis>Tapir</emphasis>, a disambiguating on-screen keyboard
+                from the developers of Dasher.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+      </sect3>
+    </sect2>
+
+    <sect2 id="timed">
+      <title>Button Dashers that exploit timing</title>
+      <para>There are two Dasher modes which make use of precise timing information, and generally
+        require fewer button presses than the nn-time-critical modes:</para>
+      <sect3 id="onebutton">
+        <title>(One button) dynamic mode</title>
+        <para>When started, Dasher will zoom towards a point towards the top or bottom of the
+          display. A short button press will switch the point of zoom to the opposite side. Text can
+          be entered by pressing the button when the desired phrase reaches the edge of the
+        display.</para>
+      </sect3>
+      <sect3 id="twobutton">
+        <title>Two button dynamic mode</title>
+        <para>Dasher zooms continuously towards the centre of the screen, with the two buttons being
+          used to shift the display up and down. The buttons should be pressed whenever the desired
+          text is aligned with the two markers.</para>
+      </sect3>
+      <sect3>
+        <title>Correcting errors</title>
+        <para>In either dynamic mode, there are three options for error correction: using an
+          additional button, long presses or multiple presses. In all cases these actions will
+          switch to a mode where Dasher unzooms at a fixed rate. In this mode, one more press will
+          stop Dasher and a second press will return Dasher to forward zooming.</para>
+      </sect3>
+    </sect2>
+  </sect1>
+
+  <sect1 id="modesummary">
+    <title>Summary of Dasher Modes</title>
+    <para> The various modes of <application>Dasher</application> are listed below. The mode may be
+      changed via the <emphasis>
+        <quote>edit</quote>
+      </emphasis> menu. Select <emphasis>
+        <quote>Preferences</quote>
+      </emphasis> and then <emphasis>
+        <quote>Control</quote>
+      </emphasis>. Each mode has a number of variable parameters associated with it which can be
+      adjusted using the <emphasis>options</emphasis> button located below the mode menu. </para>
+
+    <sect2 id="normal">
+      <title>Normal</title>
+      <para> The original <application>Dasher</application> mode. Functions using a two dimensional
+        steering gesture, from a mouse, say. A one-dimensional mode is also available, for those who
+        may not be able to control two-dimensions, and a special eyetracker mode is available for
+        those using Dasher with a gaze or head tracker. Dasher can be started using mouse position
+        alone if clicking is not possible - select 'Start on Mouse Position' and 'Circle Start' to
+        allow starting and stopping by dwelling in the circle in the centre of the display. The 'Two
+        Box' start mode starts Dasher by dwelling in the two boxes in sequence. In the latter case
+        stopping must be done through control mode.</para>
+    </sect2>
+
+    <sect2 id="click">
+      <title>Click Mode</title>
+      <para> In <emphasis>click mode</emphasis> you position the mouse pointer where you want to go,
+        then press the button when you are ready. <application>Dasher</application> then zooms into
+        the place where you clicked. </para>
+    </sect2>
+
+    <sect2 id="menu">
+      <title>Menu Mode</title>
+      <para> One button is used to select a location, and once a second button is pressed
+          <application>Dasher</application> zooms to that location. The large box occurring last in
+        the cycle is used to zoom out.</para>
+    </sect2>
+
+    <sect2 id="direct">
+      <title>Direct Mode</title>
+      <para>Direct mode is similar to menu mode, except boxes are assigned directly to each button
+        rather than being selected in sequence.</para>
+    </sect2>
+
+    <sect2 id="compass">
+      <title>Compass Mode</title>
+      <para>Compass mode makes use of four buttons. Two buttons are used to control vertical
+        position. When the required vertical position has been reached a third button is pressed to
+        zoom in. After zooming in on the location, the user once more selects vertical position. A
+        forth button zooms out if an error is made.</para>
+    </sect2>
+
+    <sect2 id="dynamic">
+      <title>(One Button) Dynamic Mode</title>
+      <para>
+        <application>Dasher</application> continually zooms in and a single button may be used to
+        move <quote>up</quote> and <quote>down</quote>. There is also a <emphasis>Two Button Dynamic
+          Mode</emphasis> where two buttons are used to control motions <quote>up</quote> and
+          <quote>down</quote>. A third button, long presses or multiple presses can be used to
+        unzoom and correct errors. </para>
+    </sect2>
+
+    <sect2 id="buttondynamic">
+      <title>Two Button Dynamic Mode</title>
+      <para>
+        <application>Dasher</application> continually zooms in, whilst two buttons are used to
+        control vertical motion. Correction is performed in the same way as One button dynamic
+      mode.</para>
+    </sect2>
+  </sect1>
+
+
+
+
+
+  <sect1 id="authors">
+    <title>Authors</title>
+    <para>
+      <application>Dasher</application> was written by the members of The Dasher Project
+        (<email>dasher@inf.phy.cam.ac.uk</email>). To find more information about it, please visit
+        <application>Dasher's</application>
+      <ulink url="http://www.inference.phy.cam.ac.uk/dasher/" type="http">Web page</ulink>. Please
+      send all comments, suggestions, and bug reports to the <ulink url="http://bugzilla.gnome.org/enter_bug.cgi?product=dasher"
+        type="http">GNOME bug tracking database</ulink>. Instructions for submitting bug reports can
+      be found on-line at <ulink url="http://bugzilla.gnome.org/page.cgi?id=bug-writing.html" type="http">
+        http://bugzilla.gnome.org/page.cgi?id=bug-writing.html</ulink>. If you are using GNOME 1.1 or later, you can
+      also use command <command>bug-buddy</command> for submitting bug reports.</para>
+    <para> This manual was written by The Dasher Project (<email>dasher@inf.phy.cam.ac.uk</email>).
+      Please send all comments and suggestions regarding the manual to the GNOME Documentation
+      Project at <email>gnome-doc-list@gnome.org</email>.</para>
+  </sect1>
+</article>
--- /dev/null
+++ b/Data/Help/Gnome/C/index.docbook.in
@@ -0,0 +1,1311 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+<article id="index">
+  <articleinfo>
+    <title>Dasher Manual</title>
+    <corpauthor role="maintainer">The Dasher Project</corpauthor>
+    <copyright>
+      <year>2010</year>
+      <holder>The Dasher Project</holder>
+    </copyright>
+    <legalnotice>
+      <para>Permission is granted to make and distribute verbatim copies of this manual provided the
+        copyright notice and this permission notice are preserved on all copies.</para>
+      <para>Permission is granted to copy and distribute modified versions of this manual under the
+        conditions for verbatim copying, provided that the entire resulting derived work is
+        distributed under the terms of a permission notice identical to this one.</para>
+      <para>Permission is granted to copy and distribute translations of this manual into another
+        language, under the above conditions for modified versions, except that this permission
+        notice may be stated in a translation approved by the Free Software Foundation.</para>
+      <para>UNIX is a trademark of X/Open Group.</para>
+      <para>Linux is a trademark of Linus Torvalds.</para>
+      <para>X Window System is a trademark of X Consortium, Inc.</para>
+      <para>Windows is a trademark of Microsoft Corp.</para>
+      <para>Macintosh and Apple are trademarks of Apple Computer, Inc.</para>
+      <para>All other trademarks are property of their respective owners.</para>
+    </legalnotice>
+    <abstract role="description">
+      <para>Dasher is an accessible text entry application that uses pointing gestures
+        rather than typing. It is designed to be fast while fun to use.</para>
+    </abstract>
+    <revhistory>
+      <revision>
+        <revnumber>1.0.0</revnumber>
+        <date>2004-02-08</date>
+      </revision>
+      <revision>
+        <revnumber>1.1.0</revnumber>
+        <date>2006-03-31</date>
+      </revision>
+      <revision>
+        <revnumber>1.2.0</revnumber>
+        <date>2006-07-11</date>
+      </revision>
+      <revision>
+        <revnumber>1.2.1</revnumber>
+        <date>2006-09-02</date>
+      </revision>
+    </revhistory>
+  </articleinfo>
+
+  <sect1 id="intro">
+    <title>Introduction</title>
+    <para><application>Dasher</application> is an information-efficient text-entry interface, driven
+      by natural continuous pointing gestures. Dasher is a competitive text-entry system wherever a
+      full-size keyboard cannot be used - for example on a palmtop or wearable computer, or when
+      operating a computer one-handed (by joystick, touchscreen or mouse) or zero-handed (i.e. by
+      head-mouse or eyetracker). This document describes version 4.2.0 of
+      <application>Dasher</application>.</para>
+    <para><application>Dasher</application> can be started by selecting
+      <guimenuitem>Dasher</guimenuitem> from the <guisubmenu>Accessibility </guisubmenu> submenu of
+      the <guimenu>Main Menu</guimenu>, or by running the command <command>dasher</command> on the
+      command line.</para>
+  </sect1>
+  <sect1 id="whatsnew">
+    <title>What's New</title>
+
+    <sect2>
+      <title>New features In version 4.2</title>
+
+
+      <para> There is an automatic speed control, which will speed up Dasher when it senses you are
+        able to go faster. </para>
+
+      <para> There is a new socket interface allowing Dasher to listen to head-trackers or
+        gaze-trackers or EEG-interfaces without going through the mouse.</para>
+
+      <para> There are several `button modes' for people who want to drive Dasher using one, two,
+        three, or four switches.</para>
+
+      <para> There is a `click mode', for people who like to point where they want to go, and click
+        to take a single step in that direction. This is aimed at beginners, in particular</para>
+
+
+    </sect2>
+    <sect2>
+      <title>What's coming in version 4.4</title>
+      <para> We will implement a game-mode for Dasher: this will help novices learn to write. A
+        teaching hand will guide the novice when he goes astray, and novices who write fast without
+        needing much guidance will win lots of points. </para>
+
+      <para> New language models will be added, which will make predictions at the word level as
+        well as the letter level.</para>
+
+      <para>Japanese and Chinese will be fully supported. </para>
+
+      <para>The Dasher team also hopes to create a free web-cam-based head tracker and gaze tracker,
+        `FreeVIM', by December 2006. </para>
+    </sect2>
+  </sect1>
+  <sect1 id="basics">
+    <title>Dasher Basics</title>
+    <para>Dasher is an information-efficient text-entry interface, driven by natural continuous
+      pointing gestures. Dasher is a competitive text-entry system wherever a full-size keyboard
+      cannot be used - for example, <itemizedlist>
+        <listitem>
+          <para>On a palmtop computer;</para>
+        </listitem>
+        <listitem>
+          <para>on a wearable computer;</para>
+        </listitem>
+        <listitem>
+          <para>when operating a computer one-handed, by joystick, touchscreen, trackball, or
+          mouse;</para>
+        </listitem>
+        <listitem>
+          <para>when operating a computer with zero hands (i.e., by head-mouse or by
+          eyetracker).</para>
+        </listitem>
+      </itemizedlist> The eyetracking version of Dasher allows an experienced user to write text as
+      fast as normal handwriting - 29 words per minute; using a mouse, experienced users can write
+      at 39 words per minute.</para>
+
+    <para> Dasher can be used to write efficiently in any language. </para>
+
+    <para>Dasher is fast and fun to learn.
+      <!--TODO - write this section (See what
+ users round the world say, in section \ref{sec.users}.)-->
+    </para>
+
+    <para>Dasher is <emphasis>free software</emphasis>. It's distributed under the same license as
+      GNU/Linux, the GPL. </para>
+
+    <sect2>
+      <title>How does Dasher work?</title>
+
+      <blockquote>
+        <attribution>Financial Times, 5th February 2002</attribution>
+        <para>Dasher is like an arcade game: `Attack of the killer alphabets', perhaps.</para>
+      </blockquote>
+
+      <para>Dasher is a zooming interface. You point where you want to go, and the display zooms in
+        wherever you point. The world into which you are zooming is painted with letters, so that
+        any point you zoom in on corresponds to a piece of text. The more you zoom in, the longer
+        the piece of text you have written. You choose what you write by choosing where to zoom.</para>
+
+      <para>To make the interface efficient, we use the predictions of a language model to determine
+        how much of the world is devoted to each piece of text. Probable pieces of text are given
+        more space, so they are quick and easy to select. Improbable pieces of text (for example,
+        text with spelling mistakes) are given less space, so they are harder to write. The language
+        model learns all the time: if you use a novel word once, it is easier to write next time.</para>
+
+
+
+      <para>A big advantage of Dasher over other predictive text-entry interfaces that offer
+        word-completions to the user is that it is <emphasis>mode-free</emphasis>: the user does not
+        need to switch from a writing mode to an <quote>accept-model-predictions</quote> mode.</para>
+
+      <para>Another advantage is that it is easy to train the model on any writing style: simply
+        load up an example file, then write away!</para>
+
+      <para> It's quite hard to convey in words what Dasher looks like, so please visit <ulink
+          url="@PACKAGE_URL@" type="http">@PACKAGE_URL@</ulink> to see movies.</para>
+
+    </sect2>
+    <sect2>
+      <title>Dasher explained -- the library analogy</title>
+      <para> Imagine <emphasis>a library containing all possible books</emphasis>, ordered
+        alphabetically on a single shelf. Books in which the first letter is <quote>a</quote>; are
+        at the left hand side. Books in which the first letter is <quote>z</quote>; are at the
+        right. In picture (i) below, the shelf is shown vertically with <quote>left</quote>; (a) at
+        the top and ,<quote>right</quote>; (z) at the bottom. The first book in the
+        <quote>a</quote>; section reads
+        <quote><computeroutput>aaaaaaaaaaaa</computeroutput>...</quote>; somewhere to its right are
+        books that start <quote><computeroutput>all good things must come to an
+          end</computeroutput>...</quote>; a tiny bit further to the right are books that start
+            <quote><computeroutput>all good things must come to an
+        enema</computeroutput>...</quote>.</para>
+
+
+      <para> When someone writes a piece of text, their choice of the text string can be viewed as a
+        choice of a book from this library of all books - the book that contains exactly the chosen
+        text. How do they choose that book? Let's imagine they want to write
+            <quote><computeroutput>all good things</computeroutput>...</quote>;</para>
+      <figure>
+        <title>The library of all books.</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/a-z.gif"/>
+          </imageobject>
+          <imageobject>
+            <imagedata fileref="figures/aa-az.gif"/>
+          </imageobject>
+          <imageobject>
+            <imagedata fileref="figures/ala-alz.gif"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+      <para>First, they walk into the <quote>
+          <computeroutput>a</computeroutput>
+        </quote>; section of the library. There, they are confronted by books starting <quote>
+          <computeroutput>aa</computeroutput>
+        </quote>;, <quote>
+          <computeroutput>ab</computeroutput>
+        </quote>, <quote><computeroutput>ac</computeroutput>...</quote>; <quote>
+          <computeroutput>az</computeroutput>
+        </quote>; [Picture (ii)]. Looking more closely at the <quote>
+          <computeroutput>al</computeroutput>
+        </quote>; section, they can find books starting <quote>
+          <computeroutput>ala</computeroutput>
+        </quote>;, <quote>;<computeroutput>alb</computeroutput></quote>;,...; <quote>
+          <computeroutput>alz</computeroutput>
+        </quote>; [Picture (iii)].</para>
+
+      <para> By looking ever more closely at the shelf, the writer can find the book containing the
+        text he wishes to write. Thus writing can be described as <emphasis>zooming in on an
+          alphabetical library, steering as you go</emphasis>.</para>
+
+      <para> This is exactly how Dasher works, except for one crucial point: <emphasis>we alter the
+          SIZE of the shelf space devoted to each book in proportion to the probability of the
+          corresponding text.</emphasis> For example, not very many books start with an <quote>
+          <computeroutput>x</computeroutput>
+        </quote>;, so we devote less space to <quote><computeroutput>x</computeroutput>...;</quote>;
+        books, and more to the more plausible books, thus making it easier to find books that
+        contain probable text.</para>
+
+      <para> Here is the corresponding sequence of pictures of the library in Dasher. (The character
+          <quote>_</quote>; denotes the space character.)</para>
+      <figure>
+        <title>The library of all books.</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/a-z.gif"/>
+          </imageobject>
+          <imageobject>
+            <imagedata fileref="figures/aa-az.gif"/>
+          </imageobject>
+          <imageobject>
+            <imagedata fileref="figures/ala-alz.gif"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+      <!--
+\begin{center}
+\begin{tabular}{ccc}
+\mbox{\psfig{figure=images/a-z.m.gif.50.ps}}&
+\mbox{\psfig{figure=images/aa-az.m.gif.50.ps}}&
+\mbox{\psfig{figure=images/ala-alz.m.gif.50.ps}}\\
+(i)&(ii)&(iii)\\
+\end{tabular}
+\end{center}
+							      -->
+
+      <para> Dasher can be trained on examples of any writing style, and it learns all the time,
+        picking up your personal turns of phrase.</para>
+
+      <para>The image below shows the state of the Dasher interface while the user is writing the
+        word `objection'; alternative words that could easily be written at this point include
+        `objective', `objects_', and `object_oriented'.</para>
+      <figure>
+        <title>Writing `objection' in Dasher.</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/object.gif"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para> If you find Dasher hard to imagine based on these static pictures, please take a look
+        at the movies on <ulink url="@PACKAGE_URL@" type="http">@PACKAGE_URL@</ulink>.</para>
+
+
+      <!--% When  you try Dasher for the first time,  please read the tips for novices.-->
+    </sect2>
+    <sect2>
+      <title>Tips for novices</title>
+      <para>Don't give up if it takes you a minute or two to get started - within ten minutes,
+        you'll be blazing along. It's a lot like driving a car. You should <emphasis>start by
+          driving cautiously</emphasis>. If you can't tell where you are going, <emphasis>stop
+        going</emphasis>. Indeed, you will probably learn Dasher fastest if you come to it with
+        car-driving analogies in mind, rather than standard computer analogies. For example, the way
+        navigation works is not by DRAGGING but by STEERING: if cars worked like windows computers,
+        you would have to <quote>grab</quote> the piece of road you want, then ,<quote>drag</quote>;
+        it towards you; but in a car, when you wish to drive right, you POINT RIGHT with your
+        steering wheel. Dasher does not work by dragging either. <emphasis>Do not try to grab things
+          and drag them. Just decide where you want to go, and point there.</emphasis></para>
+
+      <para>
+        <emphasis>The single most important concept</emphasis> that a novice user needs to
+        understand is that one should always continue <emphasis>inside</emphasis> the text written
+        so far: to select the book that contains <quote>all</quote>; as its first word, one does
+          <emphasis>not</emphasis> enter the <quote>a</quote>; section of the library, then exit the
+          <quote>;a</quote>; section, and enter the ,<quote>l</quote>; section. One enters the
+          <quote>a</quote>; section, then finds the <quote>al</quote>; section that is
+          <emphasis>within</emphasis> the <quote>a</quote>; section, then enters the
+        <quote>all</quote>; section <emphasis>within</emphasis> the <quote>al</quote>; section.</para>
+
+      <para> It's just like finding a name in a phonebook. To find <quote>
+          <computeroutput>Alison</computeroutput>
+        </quote>;, you don't go to the <quote>
+          <computeroutput>A</computeroutput>
+        </quote>; section of the phonebook, then the
+        <quote>;<computeroutput>L</computeroutput></quote>; section: you go into the <quote>
+          <computeroutput>A</computeroutput>
+        </quote>; section, then find <emphasis>within it</emphasis> the <quote>
+          <computeroutput>Al</computeroutput>
+        </quote>; section, and so forth. Once you are in the <quote>
+          <computeroutput>Al</computeroutput>
+        </quote>; section, you never leave it.</para>
+
+      <para><emphasis>The second most important idea</emphasis> is that what you have written
+        depends <emphasis>only</emphasis> on where you finally end up in the library, not on how you
+        got there; so there is no need to steer accurately on your way to your destination.
+          <emphasis>You are allowed to cut corners.</emphasis> (For example, in the previous image,
+        if you wanted to write `objects_are', it would be fine to move the mouse straight towards
+        the letters `are', even if this takes the mouse across the unwanted grey `i' square.)</para>
+
+
+
+
+      <para><emphasis>Common errors.</emphasis> Often, a beginner who is trying to find a particular
+        letter will drive the display forwards fast while hunting for the letter. The rule of the
+        road for Dasher users is just like that for car-drivers: don't drive forwards until you have
+        identified where you want to go! So, after you have found the first letter of your sentence,
+        and zoomed towards it, please <emphasis>SLOW DOWN and don't proceed any further into this
+          first letter's square until you have figured out where you should be steering
+        towards</emphasis>. Your next letter <emphasis>is</emphasis> there, immediately inside the
+        first square you have entered. The letters are ordered alphabetically. If you can't see your
+        letter, figure out where it must be on the basis of the letters you <emphasis>can</emphasis>
+        see. Then point to the right place and enter the second letter's square.</para>
+    </sect2>
+    <sect2>
+      <title>Example</title>
+      <figure id="figHad1">
+        <title>Writing <quote>
+            <computeroutput>I once had a whim</computeroutput>
+          </quote>;. Where should the user steer now?</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/exampleHad2.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+      <para> Imagine you want to write `<computeroutput>I once had a whim</computeroutput>'. You
+        write `<computeroutput>I once ha...</computeroutput>' and the Dasher display looks like
+          <xref linkend="figHad1"/>. You want to write `<computeroutput>had</computeroutput>'. What
+        should you do? There are lots of letter <computeroutput>d</computeroutput>s on the screen,
+        and all of them are rather small. The five arrows in <xref linkend="figHad1"/> show some of
+        these <computeroutput>d</computeroutput>s. The purple arrow points to a
+        <computeroutput>d</computeroutput> that we can't see yet, but we know it must be there
+        because we can see `<computeroutput>a</computeroutput>',
+        `<computeroutput>b</computeroutput>', and `<computeroutput>c</computeroutput>' above it.</para>
+      <figure id="figHad2">
+        <title>Some alternative letter <computeroutput>d</computeroutput>s, with a beginner's error
+          highlighted</title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/exampleHad2a.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+      <para> A common beginner's mistake is to keep rushing forward and spot
+        <emphasis>any</emphasis> of these letter <computeroutput>d</computeroutput>s, and zoom into
+        it. For example, <xref linkend="figHad3"/> shows what happens if the user zooms towards the
+          <computeroutput>d</computeroutput> highlighted in <xref linkend="figHad2"/>.</para>
+      <figure id="figHad3">
+        <title>What happens when you select the wrong <computeroutput>d</computeroutput></title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/exampleHad3a.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+
+      <para>If you go in this <computeroutput>d</computeroutput>, you are writing `<computeroutput>I
+          once </computeroutput><emphasis>head</emphasis><computeroutput>...</computeroutput>'. The
+        other two <computeroutput>d</computeroutput>s labelled by red arrows (in <xref
+          linkend="figHad1"/>) correspond to writing `<computeroutput>I once
+          </computeroutput><emphasis>heard</emphasis><computeroutput>...</computeroutput>' and
+          `<computeroutput>I once
+        </computeroutput><emphasis>hedge</emphasis><computeroutput>...</computeroutput>'.</para>
+
+
+      <para> It is crucial to understand that there is only one correct
+        <computeroutput>d</computeroutput>, namely the <computeroutput>d</computeroutput> that is
+        immediately inside the blue box corresponding to letter `<computeroutput>a</computeroutput>'
+        in the sequence `<computeroutput>I once ha</computeroutput>'. That blue box is highlighted
+        in <xref linkend="figHad4"/>.</para>
+      <figure id="figHad4">
+        <title>The correct letter <computeroutput>d</computeroutput> is the one marked by the green
+          arrow. This example illustrates the rule <quote>always keep going
+            <emphasis>inside</emphasis> the box that you want</quote>; in this case, the blue box
+          associated with the letter <computeroutput>a</computeroutput> of the word <quote>
+            <computeroutput>had</computeroutput>
+          </quote>; </title>
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="figures/exampleHad4.png"/>
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para>If you ever leave that blue box (as we did in <xref linkend="figHad3"/>) then we lose
+        the letter `<computeroutput>a</computeroutput>'.</para>
+    </sect2>
+
+    <sect2>
+      <title>Summary</title>
+      <para>
+        <emphasis>Don't click. Don't drag. And don't speed.</emphasis>
+      </para>
+    </sect2>
+
+    <sect2>
+      <title>What do the colours mean?</title>
+      <para> In the English-language desktop version 3 of Dasher, <itemizedlist>
+          <listitem>
+            <para><emphasis>white</emphasis> squares contain the space characters (always placed at
+              the bottom of the alphabet);</para>
+          </listitem>
+
+          <listitem>
+            <para>a special <emphasis>yellow</emphasis> box contains the upper case characters
+              [A-Z];</para>
+          </listitem>
+
+          <listitem>
+            <para>a <emphasis>red</emphasis> box contains numerals [0-9] (if the full alphabet is
+              enabled);</para>
+          </listitem>
+
+          <listitem>
+            <para>a <emphasis>green</emphasis> box contains punctuation characters (with the
+              characters most similar to the space character [.,;:-] placed at the bottom, next to
+              the <emphasis>white</emphasis> space character. Within the punctuation section,
+              letters with similar roles are coloured similarly: punctuation characters similar to
+              the period [.,;:-] are coloured slate-blue;</para>
+          </listitem>
+          <listitem>
+            <para>the other colours are included simply to discriminate the squares from each
+            other.</para>
+          </listitem>
+          <listitem>
+            <para>In languages with accents (grave, acute, circumflex, etc), the accents are
+              displayed in an <emphasis>orange</emphasis> box.</para>
+          </listitem>
+          <listitem>
+            <para> In the Japanese version of Dasher, colours are used to distinguish the different
+              hiragana groups (eg ka,ki,ku,ke,ko are orange).</para>
+          </listitem>
+          <listitem>
+            <para> In the Korean version of Dasher, three different colours are used to distinguish
+              initial consonants, vowels, and terminal consonants.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <para> You can alter the colour scheme by editing the <computeroutput>colour</computeroutput>
+        and <computeroutput>alphabet</computeroutput> xml files, as described in <xref
+          linkend="personalising"/>.</para>
+    </sect2>
+    <sect2>
+      <title>How to start dasher (version 4)</title>
+      <para> Set the dasher application running; when the dasher window comes up, either click the
+        left mouse button or press the space bar to set it going. [One of these two will work.]
+        Repeat this action (click or space), when you are finished, to stop dasher from dashing.
+        Your computer's mouse controls Dasher.</para>
+
+      <para> Adjust the speed slider to fix the maximum speed Dasher will zoom at. A speed of 1 is
+        good for a beginner, increasing to 2 after 5 minutes' practice, and to 4 when you are
+        expert.</para>
+    </sect2>
+    <sect2>
+      <title>How to start dasher (version 2) on pocket PC</title>
+      <para> Install, run (wait a few seconds for it to load up the training file), then touch the
+        screen with the stylus to make dasher move.</para>
+
+      <para>There are three special strongly-coloured squares in this version of Dasher, coloured
+        yellow, red (in some releases only), and green; all three squares do not produce any
+        character; these squares indicate sub-groupings of the alphabet. (Uppercase Alphabet,
+        Numerals (in some releases only), and Punctuation.)</para>
+    </sect2>
+  </sect1>
+  <!--<sect1 id="usage">
+    <title>Using Dasher</title>
+    <sect2 id="menubar">
+      <title>Menus</title>
+      <para> The menu bar, located at the top of the <interface>Main Window</interface>, provides
+        the following commands: </para>
+      <variablelist>
+        <varlistentry>
+          <term>
+            <guimenu>File</guimenu>
+          </term>
+          <listitem>
+            <para>This menu contains the following commands: <itemizedlist>
+                <listitem>
+                  <para>
+                    <guimenuitem>New</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Open</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Save</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Save As</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Append to file</guimenuitem> this command can be used to append
+                    the current Dasher buffer to an existing text file.</para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Import training text</guimenuitem> this command can be used to
+                    add the contents of an existing text file to Dasher's language model.</para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Quit</guimenuitem>
+                  </para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>
+            <guimenu>Edit</guimenu>
+          </term>
+          <listitem>
+            <para> This menu contains the following commands: <itemizedlist>
+                <listitem>
+                  <para>
+                    <guimenuitem>Cut</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Copy</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Paste</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Copy All</guimenuitem>
+                  </para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>
+            <guimenu>Options</guimenu>
+          </term>
+          <listitem>
+            <para> This menu contains the following commands: <itemizedlist>
+                <listitem>
+                  <para><guimenuitem>Preferences</guimenuitem>, which launches the <link
+                      linkend="prefs">
+                      <interface>Preferences Dialog</interface>
+                    </link></para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Edit font</guimenuitem> alters the font used in the edit
+                  box.</para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Dasher font</guimenuitem> alters the size of the moving
+                    characters.</para>
+                </listitem>
+                <listitem>
+                  <para>
+                    <guimenuitem>Dasher font size</guimenuitem>
+                  </para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Enter text into other windows</guimenuitem> this causes Dasher
+                    to enter text into whichever window is selected.</para>
+                </listitem>
+                <listitem>
+                  <para><guimenuitem>Control mode</guimenuitem> this causes an extra node to appear
+                    at the bottom of the alphabet. Here, you can edit text directly from within
+                    Dasher, cause Dasher to speak text that you have entered and stop or pause
+                    Dasher.</para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>
+            <guimenu>Help</guimenu>
+          </term>
+          <listitem>
+            <para>This menu contains the following commands: <itemizedlist>
+                <listitem>
+                  <para><guimenuitem>About</guimenuitem> shows basic information about
+                      <application>Dasher</application>, such as author's name and version number.
+                  </para>
+                </listitem>
+              </itemizedlist>
+            </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </sect2>
+
+    <sect2 id="prefs">
+      <title>Customization</title>
+      <para> To change default settings, select <guimenuitem>Preferences</guimenuitem> command in
+          <guimenu>Settings</guimenu> menu. This launches the <interface>Preferences
+        dialog</interface>, shown in <xref linkend="prefs1"/>, <xref linkend="prefs2"/>, <xref
+          linkend="prefs3"/>, <xref linkend="prefs4"/> and <xref linkend="prefs5"/>. </para>
+      <figure id="prefs1">
+        <title>&quot;Alphabet&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs1.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para> Dasher has support for many languages, and the choice of which language to write in is
+        made with this dialog. Note that some languages (for example, Hiragana, Korean and the
+        International Phonetic Alphabet) may require fonts that you do not have installed. For
+        information on creating your own alphabet files, see the <ulink
+          url="@PACKAGE_URL@" type="http">Dasher website</ulink>. </para>
+      <figure id="prefs2">
+        <title>&quot;Colour&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs2.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para> Dasher has support for different colour schemes. The 'Default' colour scheme is a
+        simple rotation of colours that should work with any language. Enhanced colour schemes may
+        be used for languages with logical groupings (such as Hiragana or Korean) or to increase
+        contrast. </para>
+      <figure id="prefs3">
+        <title>&quot;Control&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs3.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para>
+        <itemizedlist>
+          <listitem>
+            <para><guimenuitem>One dimensional mode</guimenuitem> maps the Y coordinate of the mouse
+              position to an X/Y coordinate, for use with one-dimensional input methods.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Eyetracker mode</guimenuitem> optimisations for eyetrackers
+              specifically, makes Dasher behave as in one-dimensional mode near the right hand edge
+              of the screen.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Start on left mouse button</guimenuitem> the left mouse button starts
+              and stops Dasher.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Start on space bar</guimenuitem> the space bar starts and stops
+              Dasher.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Start with mouse position</guimenuitem> when Dasher is paused, a red
+              box appears. Hold the cursor inside the red box until a yellow box appears. Hold the
+              cursor inside the yellow box. Dasher will then start..</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Copy all on stop</guimenuitem> when stopped, Dasher will copy all
+              text to the clipboard automatically.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Speak on stop</guimenuitem> when stopped, Dasher will speak newly
+              entered text automatically.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Pause outside window</guimenuitem> Dasher will pause if the mouse
+              pointer moves outside its window.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <figure id="prefs4">
+        <title>&quot;View&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs4.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para>
+        <itemizedlist>
+          <listitem>
+            <para><guimenuitem>Orientation</guimenuitem> alters the direction that the text moves
+              in. If set to &quot;Alphabet default&quot;, the alphabet file will choose the
+              appropriate direction for the alphabet.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Show toolbar</guimenuitem> you can hide Dasher's toolbar if you wish.
+              Calling dasher with the '-o' switch will open a reduced-options version of dasher,
+              designed for entry into other applications.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Show speed slider</guimenuitem> enable/disable the speed
+            slider.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Show mouse position</guimenuitem> in some situations (such as
+              one-dimensional or eyetracker mode), the absolute position of the mouse will differ
+              from Dasher's perception of the mouse position. This option shows you where Dasher's
+              mouse is.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Draw line between crosshairs and mouse</guimenuitem> helpful for
+              users who have trouble keeping track of the pointer.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Draw box outlines</guimenuitem> increases the contrast around the
+              edges of boxes, to help distinguish between them.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Change colour scheme automatically</guimenuitem> languages such as
+              Hiragana are aware of which colour scheme they should be using. This option allows an
+              alphabet to select its colour scheme automatically.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <figure id="prefs5">
+        <title>&quot;Advanced&quot; dialog</title>
+        <screenshot>
+          <screeninfo>Preferences dialog</screeninfo>
+          <graphic fileref="figures/prefs5.png" format="PNG" srccredit="ME"/>
+        </screenshot>
+      </figure>
+      <para>
+        <itemizedlist>
+          <listitem>
+            <para><guimenuitem>Smoothing</guimenuitem> adds a &quot;uniform&quot; element to
+              the language model's predictions. A smoothing value of 100 will result in an entirely
+              uniform distribution being used  each box will have the same size.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Timestamp new files</guimenuitem> each file created by Dasher will
+              automatically have the current time in its filename.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Distance from centreline for start on mouse position</guimenuitem>
+              controls the range for the 'Start on mouse position' option.</para>
+          </listitem>
+          <listitem>
+            <para><guimenuitem>Number of pixels that should cover the entire Y range</guimenuitem>
+              some input devices do not have enough gain to cover an entire Dasher window; this
+              option increases the gain of displacement on the Y axis.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+    </sect2>
+  </sect1>-->
+  <sect1 id="reallife">
+    <title>How to use Dasher in real life</title>
+
+    <para> Dasher can be used to communicate through your computer, and (to some degree) to control
+      your computer. Obviously, the simplest way to communicate with Dasher is to have the person
+      you're talking to watch the screen as you write. But there are lots of other ways to
+      communicate through Dasher.</para>
+
+    <sect2>
+      <title>Copy to clipboard</title>
+
+      <para> If you have the `copy on stop' feature switched on, then, every time you stop Dasher,
+        the contents of Dasher's text box get copied directly to your computer's clipboard. You can
+        then use the `Paste' function of another application to transfer what you've written.</para>
+    </sect2>
+
+    <sect2>
+      <title>Speaking</title>
+
+      <para>Dasher connects to your computer's built-in text-to-speech system. There are several
+        ways to use Dasher for speaking.</para>
+
+      <para> You can choose to have Dasher `speak each word': every time you pass through the end of
+        a word (by entering a space character for example), that word gets spoken immediately.</para>
+
+      <para> You can also choose to have Dasher `speak on stop': every time you stop Dasher moving,
+        everything that is in the text box gets spoken.</para>
+
+      <para> Finally, you can speak exactly when you want to by switching on <emphasis>Control
+        Mode</emphasis> (which is under the Options Menu in Dasher version 3). This mode brings up
+        an extra box in the Dasher alphabet, coloured grey, which works a bit like an escape key on
+        a keyboard. If you go inside the Control box, you will find several control-related options:
+        Stop (red); pause (yellow); Move; Delete; and Speak. Inside the Speak box are the options to
+        `speak everything', `speak new' (just the new words that you wrote since the last
+        utterance), and `speak again' (which re-speaks whatever was last spoken).</para>
+    </sect2>
+
+    <sect2>
+      <title>Save to file</title>
+
+      <para> You can save whatever is in the text box of Dasher as a plain text file by clicking the
+        `Save file' icon in the icon bar, or using the menus at the top of the Dasher window
+        (selecting File then Save).</para>
+    </sect2>
+
+    <sect2>
+      <title>Send text to other window</title>
+
+      <para> You can also have whatever is written in Dasher be directly beamed to another window.
+        Enable the `send text to other window' option under the options menu. Then the window that
+        you select will get Dasher's output.</para>
+    </sect2>
+
+
+
+
+    <sect2>
+      <title>Font sizes</title>
+
+      <para> Dasher has a text box (where the text appears) and a Dasher canvas (where all the fun
+        zooming action happens). You can change the font sizes of both these regions using the
+        Dasher menus at the top of the Dasher window. The two fonts are called the `Edit font' (for
+        the text box's font), and the `Dasher font', I think. (I forget the exact menu names in
+        Dasher version 3, sorry.) To change the edit font size bring up the usual dialog box and
+        change size. To change the Dasher canvas size, find the Dasher-size option, which offers
+        three to choose from, named something like: small, medium, and large.</para>
+    </sect2>
+  </sect1>
+
+  <sect1 id="personalising">
+    <title>Personalizing Dasher</title>
+    <para> There are three classes of files you can tweak in order to make Dasher work better for
+      you: <computeroutput>alphabet</computeroutput> files, <computeroutput>colour</computeroutput>
+      files, and <computeroutput>training</computeroutput> files.</para>
+
+    <sect2>
+      <title>Personalizing the language model</title>
+      <para>Dasher's predictions (in version 3 of Dasher) are based not on a dictionary but on a
+        training text of ordinary text. For example, when you download Dasher version 3, it comes
+        with a file called <filename>training_english_GB.txt</filename>. This is 300 kbytes of
+        ordinary English harvested from various documents on the internet. </para>
+
+      <para> When you use Dasher, it stores everything you write in another personal file with the
+        same name as the training file. Next time you use Dasher, it reads in the original training
+        file and everything you wrote last time, to help it predict better. Dasher learns all the
+        time. To get the best results from Dasher: <itemizedlist>
+          <listitem>
+            <para>If possible, provide Dasher with a training text in your own style -- a plain text
+              file made from documents you have written before, and containing your own pet phrases,
+              friends' names, and so forth. Either append this file to the training file, or replace
+              the original training file.</para>
+          </listitem>
+          <listitem>
+            <para> If you think your personal training file may have become corrupted with rubbish
+              text, edit it using any plain text editor. (Or ask a friend to do this for
+            you.)</para>
+          </listitem>
+          <listitem>
+            <para> If you use Dasher for many months, the personal training file may become so large
+              that Dasher becomes slow to start up; if so, edit the training file using a plain text
+              editor. </para>
+          </listitem>
+        </itemizedlist></para>
+    </sect2>
+    <sect2>
+      <title>Personalizing the alphabet</title>
+      <para> Which characters are available to you, and their order, is determined by the alphabet
+        file. For example, you might use <filename>alphabet.english.xml</filename>. Dasher comes
+        with many alternative alphabets. You can edit alphabet files to change which characters are
+        in the alphabet, or their order. When you edit this xml file, it might be a good idea to
+        save the new file with a new name and change the name of the alphabets in the new file, to
+        avoid confusion. Each field in the xml file specifies a symbol by three items: the character
+        that should be <emphasis>displayed</emphasis> (<computeroutput>d=</computeroutput>...); the
+        character that goes into the <emphasis>text</emphasis> when this symbol is selected
+          (<computeroutput>t=</computeroutput>...); and the background colour number of the box for
+        this symbol (<computeroutput>b=</computeroutput>...), of which more below.</para>
+    </sect2>
+    <sect2>
+      <title>Personalizing the colour scheme</title>
+      <para>You can change the colours of the Dasher world in two ways. The colour file (for example
+          <filename>colour.xml</filename> or <filename>colour.euroasian.xml</filename>) specifies
+        the 200 colours in the palette that Dasher uses. Each line specifies red, green, blue
+        values.</para>
+
+      <para> These colours are used to colour multiple objects in dasher. If for example you want to
+        change the colour of the <quote>red line</quote>;, change the second colour line of the
+        colour file, which reads <computeroutput>&lt;colour r=&quot;255&quot;
+          g=&quot;0&quot; b=&quot;0&quot;/&gt;</computeroutput>. </para>
+
+
+      <para> You can change which of these colours is used for each symbol's box by changing the
+          <quote>b</quote>; field for that symbol in the alphabet file.</para>
+    </sect2>
+
+
+
+
+  </sect1>
+  <sect1 id="languages">
+    <title>Languages</title>
+
+    <para> Dasher works in hundreds of languages.</para>
+
+    <para> For each language there is an alphabet file (or possibly more than one alphabet file). On
+      the Dasher website we aim to supply at least one training text for each language. If we don't
+      have a good training text for your language, please help us by making one and sending it to
+      us.</para>
+
+    <para> See the Dasher website for the list of languages supported by Dasher. As of October 2005,
+      all the major languages of the world are well supported, with the exception of Japanese and
+      Chinese, for which Dasher version 3 offers only phonetic support (hiragana and pin-yin). In
+      Dasher version 4, we will provide full support for Japanese and Chinese. </para>
+
+    <!--    %% Dasher works beautifully in Korean-->
+
+
+  </sect1>
+
+
+
+  <sect1 id="specialneeds">
+    <title>Dasher Special Needs Guide</title>
+
+    <para> Dasher is designed on the principle of getting <emphasis>as much information as
+      possible</emphasis> from the gestures you can make.</para>
+
+    <para> We can get information from whichever of the following is easiest for you: <orderedlist>
+        <listitem>
+          <para>
+            <emphasis>Continuous</emphasis> gestures (conveyed via a joystick, trackpad, head mouse,
+            or gaze tracker, for example) often achieve the highest rates of writing.</para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis>Discrete</emphasis> gestures (switches, button presses) may be able to convey
+            information in three different ways:</para>
+          <orderedlist>
+            <listitem>
+              <para> The <emphasis>time</emphasis> at which you press a button can convey
+                information. (This idea is used in grid systems controlled by a single
+              button.)</para>
+            </listitem>
+            <listitem>
+              <para>
+                <emphasis>How long</emphasis> you press a button for can convey information. (This
+                idea is used in Morse code, where two durations are distinguished.) </para>
+            </listitem>
+            <listitem>
+              <para> The <emphasis>choice</emphasis> of <emphasis>which</emphasis> button you press
+                can convey information. (This idea is used in ordinary keyboards.)</para>
+            </listitem>
+          </orderedlist>
+        </listitem>
+      </orderedlist></para>
+
+    <sect2 id="manual7">
+      <title>Continuous gestures</title>
+      <para> Dasher's normal mode (<emphasis>mouse mode</emphasis>) is driven by a two-dimensional
+        continuous steering gesture. Dasher also has a <emphasis>one-dimensional mode</emphasis>,
+        for users who can control only one dimension.</para>
+
+      <para> Can you make one or two continuous gestures? If you can operate a joystick, mouse,
+        trackpad, or rollerball, then you have a two-dimensional control. If you can point on a
+        touch-screen then that's perfect too. Can you move your nose around? If you can shake your
+        head, that's a one-dimensional control; if you can nod, that's two. A head-mouse can be
+        quite cheap, and it is a convenient way to drive Dasher. (We recommend the
+          <emphasis>SmartNav3</emphasis> from NaturalPoint, which costs about $200, and works under
+        microsoft windows only; this device used to be called the NavPoint TrackIR until 2002, when
+        that brand name was transferred to a different device. We also recommend the Origin
+        instruments <emphasis>Headmouse Extreme</emphasis>, which costs about $1000; it works as a
+        USB mouse on any computer.) Can you waggle one finger or one foot? These head-mice can be
+        used to track fingers and feet as well as heads. For a detailed comparison of SmartNav3 with
+        Headmouse Extreme, please see <ulink
+          url="@PACKAGE_URL@Headmouse.html" type="http">@PACKAGE_URL@Headmouse.html</ulink>.</para>
+
+      <para>If you are severely paralysed, the best option may be a gaze tracker. Do you have
+        control of where your eyes are looking? With a gaze tracker we can write at 25 words per
+        minute. Gaze trackers are quite expensive: we paid $2000 for the QuickGlance from EyeTech
+        Digital Systems, and the Tobii eyetracker costs about $20,000. [We recommend both of these
+        systems. You attach QuickGlance to an existing computer; Quickglance II costs about $4000.
+        Tobii is a complete computer with built-in eyetracking cameras.] Dasher also works with the
+        Eye response <emphasis>Erica</emphasis>, with LC's <emphasis>Eyegaze</emphasis>, and with
+        Metrovision's gaze-tracker. All three of these systems are complete computers with
+        eye-tracking cameras attached.</para>
+
+      <para> If joysticks, mice, rollerballs, and gaze trackers don't work, there may be a few other
+        ways to convey a continuous one-dimensional signal. Lips and eyebrows should both work,
+        though we don't know of any manufacturer selling appropriate devices. Breath is a
+        one-dimensional signal too. If you can control your breath, it should be possible to make a
+        breath mouse for you. We made our $22 breath mouse using a USB optical mouse, a belt, and
+        some elastic, and our most experienced user can write at 15 words per minute by breath
+        alone.</para>
+      <sect3>
+        <title>Starting and stopping</title>
+        <para>There are several ways of starting and stopping Dasher. Pressing a button (for
+          example, the left mouse button or the space bar) is one option. But if you can not press
+          any buttons, it's possible to start and stop using only continuous gestures: in the
+          options menu, select <quote>start on position</quote>; and switch on <quote>control
+          mode</quote>;. When control mode is switched on, the Dasher alphabet includes a special
+          Control node (a bit like an <computeroutput>Esc</computeroutput> key on a keyboard),
+          within which various control functions are available. When you are inside the control
+          node, Dasher moves more slowly than normal, for safety. The control node options include
+          `pause' and `stop'. Use `pause' if you are half-way through writing something, and want to
+          pause for a moment. Use `stop' when you have finished. <command>Pause</command> and
+            <command>stop</command> produce the same behaviour, except <command>stop</command> may
+          cause other automatic actions, such as `speak on stop', or `copy the text
+          <!--% to clipboard --> on stop'.</para>
+
+        <para>When Dasher is paused or stopped, it can be restarted using any of the starting
+          methods that are enabled. If `start on position' is enabled, then whenever Dasher is
+          stopped a sequence of large targets will be displayed; you restart Dasher by pointing at
+          (or looking at) the first (red) target, then the second (yellow) target. (We use two
+          targets in sequence to make it difficult to start Dasher by accident.)</para>
+      </sect3>
+      <sect3>
+        <title>Recommendations for head-tracking</title>
+        <para> Many trackers have `smoothing' options, which determine the frequency with which the
+          mouse position is updated; these options are normally used to smooth and damp down the
+          mouse motion. For Dasher, we don't want such smoothing. We like instant, live, raw and
+          jerky mouse coordinates. If there is a `smoothing' control, turn it right down.</para>
+
+        <para>The `gain' (sometimes called the `speed') of the head-tracker is also an important
+          setting to adjust. Some trackers' gains can be adjusted in software. You can also adjust
+          the gain by changing the geometry of your tracker: if you move the tracked dot from your
+          forehead to the brim of a baseball cap, for example, then you roughly double the gain.
+          Sitting closer to the tracker may also increase the gain. Find a gain setting that is
+          comfortable. I like high gain because it allows me to steer with very small head
+        motions.</para>
+      </sect3>
+      <sect3>
+        <title>Recommendations for gaze-tracking</title>
+        <para>For good results with gaze trackers, we strongly recommend that the gaze-tracker be
+          made to be as responsive as possible. Many trackers have `smoothing' options, which
+          determine the frequency with which the mouse position is updated and the number of
+          successive gaze images used to estimate the mouse position. These options are normally
+          used to smooth and damp down the mouse motion. For Dasher, we don't want such smoothing.
+          We like instant, live, raw and jerky mouse coordinates. When you are navigating, your eye
+          moves very quickly to the target you are interested in, and we want Dasher to respond
+          instantly. The ideal settings for Dasher may be very different from the ideal settings for
+          other software. Ask your eyetracker manufacturer to make it easy to change the settings
+          when switching application. </para>
+
+        <para> Dasher has several options designed for use with gaze-trackers. We recommend using
+            <emphasis>eyetracker mode</emphasis> (under Options/Preferences/Control). In this mode,
+          the dynamics of Dasher are slightly different from standard dynamics, making
+          error-correction easier by gaze.</para>
+
+        <para>If your gaze-tracker's calibration drifts with time, for example when your head moves,
+          then you should select the <emphasis>Autocalibrate eyetracker</emphasis> feature. When
+          this feature is switched on, Dasher keeps track of your steering and infers the vertical
+          calibration error, and corrects for it. You can see this correction taking effect by
+          noticing the vertical offset between the mouse position as displayed by Dasher (by the tip
+          of the red line) and the gaze-tracker's mouse position (shown by the system's mouse
+          cursor).</para>
+
+        <para>To avoid difficulties with the mouse being bounded by the top and bottom of the
+          screen, we recommend choosing a window size for Dasher that is <emphasis>not</emphasis>
+          full-screen in size. Place the Dasher window so that there is a margin above and below the
+          Dasher canvas.</para>
+
+        <para><emphasis>Technical note:</emphasis> As well as through mouse emulation, Dasher is
+          able to receive tracking information from gaze trackers, head trackers, or similar systems
+          directly by means of a system socket. This option can be configured in the 'Input Device'
+          section of the 'preferences' dialogue.</para>
+      </sect3>
+    </sect2>
+    <sect2 id="manual8">
+      <title>Discrete Gestures</title>
+      <para>We have several versions of <emphasis>button Dasher</emphasis>, available in Dasher
+        Version 4.</para>
+
+      <sect3>
+        <title>Are time-critical gestures not an option?</title>
+        <para>Some ways of conveying information make use of the <emphasis>timing</emphasis> of
+          gestures. However, some people can't make gestures at a required instant. For example,
+          spastics find it very difficult to do an action `exactly now!'</para>
+
+        <para>If time-critical gestures are not an option, go to <xref linkend="no_time_critical"/>.</para>
+
+        <para>If you <emphasis>can</emphasis> convey information by <emphasis>precisely
+          timed</emphasis> gestures, go to section <xref linkend="timed"/>.</para>
+      </sect3>
+    </sect2>
+    <sect2 id="no_time_critical">
+      <title>`Timeless' choices of Dasher</title>
+      <para> So, you want to steer Dasher at your own pace. Can you make fairly-accurate continuous
+        gestures, given time? For example, can you position a pointer accurately on a screen, then
+        press a button to indicate that you are ready? Or can you touch a touch-screen fairly
+        accurately? <itemizedlist>
+          <listitem>
+            <para>If so, try <emphasis>click mode</emphasis>. Go to <xref
+                linkend="time_critical_button"/>.</para>
+          </listitem>
+          <listitem>
+            <para> Otherwise try <emphasis>direct button mode</emphasis> or <emphasis>menu button
+                mode</emphasis>. Go to <xref linkend="no_time_critical_button"/>.</para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <sect3 id="time_critical_button">
+        <title>`Timeless' continuous Dasher: click mode</title>
+
+        <para> In <emphasis>click mode</emphasis>, you position the mouse pointer where you want to
+          go, then press a button when you are ready. Dasher then zooms in on the position you
+          chose.</para>
+
+        <para> Alternatively, if you have a touch screen, a single touch on the screen initiates a
+          zoom to that position.</para>
+      </sect3>
+      <sect3 id="no_time_critical_button">
+        <title>`Timeless' choices of Button Dasher</title>
+        <para> How many different switches, keys, or buttons can you easily operate? </para>
+        <variablelist>
+          <varlistentry>
+            <term>1</term>
+            <listitem>
+              <para>With just one button, the only timeless way to convey information is by the
+                  <emphasis>duration</emphasis> of your button-presses. Can you make a distinction
+                between short presses and long presses? If so, you can use <emphasis>menu
+                  button-Dasher</emphasis>. Connect up your short press to the `menu' action, and
+                your long press to the `select' action. </para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>2</term>
+            <listitem>
+              <para>You can use <emphasis>menu button-Dasher</emphasis>. Connect one button to the
+                `menu' action, and the other to the `select' action. If one button is easier to
+                press, make that button the `menu' button. </para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>2.5</term>
+            <listitem>
+              <para>If you can easily press two buttons, and, for special occasions, you are able to
+                press a third button, you can use <emphasis>menu button-Dasher</emphasis> or
+                  <emphasis>direct button-Dasher</emphasis>. </para>
+              <orderedlist>
+                <listitem>
+                  <para> Set up <emphasis>menu button-Dasher</emphasis> as described above, and use
+                    the third button as your escape key -- to make Dasher go away, for example.
+                    [This feature is not currently provided within Dasher.]</para>
+                </listitem>
+                <listitem>
+                  <para> In <emphasis>direct button-Dasher</emphasis>, each button produces a
+                    particular navigation action such as `up', `down', or `back'. If you have 2.5
+                    buttons, map the convenient two to `up' and `down', and the inconvenient button
+                    to `back'.</para>
+                </listitem>
+              </orderedlist>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>3</term>
+            <listitem>
+              <para>You can use <emphasis>direct button-Dasher</emphasis> or <emphasis>menu
+                  button-Dasher</emphasis> as described above.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>4, 5, 6, or 7</term>
+            <listitem>
+              <para>With more than three buttons, you have the option to use <emphasis>direct
+                  button-Dasher</emphasis> with three, four, five, or six `forward' directions.
+                Please try <emphasis>menu button-Dasher</emphasis> too, even though it uses only two
+                buttons.</para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>8 or more</term>
+            <listitem>
+              <para>Try <emphasis>direct button-Dasher</emphasis> and <emphasis>menu
+                button-Dasher</emphasis>. With this many buttons, you also have the option of using
+                a system like T9 -- the predictive-text system found on many mobile phones. You may
+                wish to investigate <emphasis>Tapir</emphasis>, a disambiguating on-screen keyboard
+                from the developers of Dasher.</para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+      </sect3>
+    </sect2>
+
+    <sect2 id="timed">
+      <title>Button Dashers that exploit timing</title>
+      <para>There are two Dasher modes which make use of precise timing information, and generally
+        require fewer button presses than the nn-time-critical modes:</para>
+      <sect3 id="onebutton">
+        <title>(One button) dynamic mode</title>
+        <para>When started, Dasher will zoom towards a point towards the top or bottom of the
+          display. A short button press will switch the point of zoom to the opposite side. Text can
+          be entered by pressing the button when the desired phrase reaches the edge of the
+        display.</para>
+      </sect3>
+      <sect3 id="twobutton">
+        <title>Two button dynamic mode</title>
+        <para>Dasher zooms continuously towards the centre of the screen, with the two buttons being
+          used to shift the display up and down. The buttons should be pressed whenever the desired
+          text is aligned with the two markers.</para>
+      </sect3>
+      <sect3>
+        <title>Correcting errors</title>
+        <para>In either dynamic mode, there are three options for error correction: using an
+          additional button, long presses or multiple presses. In all cases these actions will
+          switch to a mode where Dasher unzooms at a fixed rate. In this mode, one more press will
+          stop Dasher and a second press will return Dasher to forward zooming.</para>
+      </sect3>
+    </sect2>
+  </sect1>
+
+  <sect1 id="modesummary">
+    <title>Summary of Dasher Modes</title>
+    <para> The various modes of <application>Dasher</application> are listed below. The mode may be
+      changed via the <emphasis>
+        <quote>edit</quote>
+      </emphasis> menu. Select <emphasis>
+        <quote>Preferences</quote>
+      </emphasis> and then <emphasis>
+        <quote>Control</quote>
+      </emphasis>. Each mode has a number of variable parameters associated with it which can be
+      adjusted using the <emphasis>options</emphasis> button located below the mode menu. </para>
+
+    <sect2 id="normal">
+      <title>Normal</title>
+      <para> The original <application>Dasher</application> mode. Functions using a two dimensional
+        steering gesture, from a mouse, say. A one-dimensional mode is also available, for those who
+        may not be able to control two-dimensions, and a special eyetracker mode is available for
+        those using Dasher with a gaze or head tracker. Dasher can be started using mouse position
+        alone if clicking is not possible - select 'Start on Mouse Position' and 'Circle Start' to
+        allow starting and stopping by dwelling in the circle in the centre of the display. The 'Two
+        Box' start mode starts Dasher by dwelling in the two boxes in sequence. In the latter case
+        stopping must be done through control mode.</para>
+    </sect2>
+
+    <sect2 id="click">
+      <title>Click Mode</title>
+      <para> In <emphasis>click mode</emphasis> you position the mouse pointer where you want to go,
+        then press the button when you are ready. <application>Dasher</application> then zooms into
+        the place where you clicked. </para>
+    </sect2>
+
+    <sect2 id="menu">
+      <title>Menu Mode</title>
+      <para> One button is used to select a location, and once a second button is pressed
+          <application>Dasher</application> zooms to that location. The large box occurring last in
+        the cycle is used to zoom out.</para>
+    </sect2>
+
+    <sect2 id="direct">
+      <title>Direct Mode</title>
+      <para>Direct mode is similar to menu mode, except boxes are assigned directly to each button
+        rather than being selected in sequence.</para>
+    </sect2>
+
+    <sect2 id="compass">
+      <title>Compass Mode</title>
+      <para>Compass mode makes use of four buttons. Two buttons are used to control vertical
+        position. When the required vertical position has been reached a third button is pressed to
+        zoom in. After zooming in on the location, the user once more selects vertical position. A
+        forth button zooms out if an error is made.</para>
+    </sect2>
+
+    <sect2 id="dynamic">
+      <title>(One Button) Dynamic Mode</title>
+      <para>
+        <application>Dasher</application> continually zooms in and a single button may be used to
+        move <quote>up</quote> and <quote>down</quote>. There is also a <emphasis>Two Button Dynamic
+          Mode</emphasis> where two buttons are used to control motions <quote>up</quote> and
+          <quote>down</quote>. A third button, long presses or multiple presses can be used to
+        unzoom and correct errors. </para>
+    </sect2>
+
+    <sect2 id="buttondynamic">
+      <title>Two Button Dynamic Mode</title>
+      <para>
+        <application>Dasher</application> continually zooms in, whilst two buttons are used to
+        control vertical motion. Correction is performed in the same way as One button dynamic
+      mode.</para>
+    </sect2>
+  </sect1>
+
+
+
+
+
+  <sect1 id="authors">
+    <title>Authors</title>
+    <para>
+      <application>Dasher</application> was written by the members of The Dasher Project
+        (<email>dasher@inf.phy.cam.ac.uk</email>). To find more information about it, please visit
+        <application>Dasher's</application>
+      <ulink url="@PACKAGE_URL@" type="http"> Web page</ulink>. Please
+      send all comments, suggestions, and bug reports to the <ulink url="@PACKAGE_BUGREPORT@"
+        type="http">GNOME bug tracking database</ulink>. Instructions for submitting bug reports can
+      be found on-line at <ulink url="http://bugs.gnome.org/Reporting.html" type="http">
+        http://bugs.gnome.org/Reporting.html</ulink>. If you are using GNOME 1.1 or later, you can
+      also use command <command>bug-buddy</command> for submitting bug reports. </para>
+    <para> This manual was written by The Dasher Project (<email>dasher@inf.phy.cam.ac.uk</email>).
+      Please send all comments and suggestions regarding the manual to the GNOME Documentation
+      Project at <email>docs@gnome.org</email>. You can also add your comments online by using
+        <ulink type="http" url="http://www.gnome.org/gdp/doctable/">GNOME Documentation Status
+      Table</ulink>. </para>
+  </sect1>
+</article>
