fenrir

()                                                                          ()



Fenrir User Manual
       Fenrir is a modern command line screen reader written in Python3.

       It has a modular structure, a flexible based driver model, is highly
       configurable and easy to customize and extend (see Developer Manual
       (fenrir_development_manual)).

       Please see the following pages for the current (fenrir_current_version)
       and Git (fenrir_git_version) version of Fenrir.

Support and Requirements
       Fenrir requires several drivers to interact with the operating system.

   Speech Drivers
       A speech driver is for communication with the text to speech system
       like Speech-Dispatcher (#SpeechDispatcher) or Espeak
       (http://espeak.sourceforge.net).  \ See section Speech (#Speech) in
       ''settings.conf'' for more information.

   SpeechDispatcher
       This driver is used by default.  It uses Speech-dispatcher as its
       backend.

       Dependencies:

       · Speech-dispatcher (installed and configured, Documentation
         (https///devel.freebsoft.org/speechd#sec2))

       · Python-speechd

   Espeak
       Uses Espeak via Python bindings.

       Dependencies:

       · Espeak or Espeak-ng

       · python-espeak (https///launchpad.net/python-espeak)

   Generic
       This invokes speech via a sub-process.  This is almost the same as
       using the commandline.  The performance depends on the overhead of the
       speech synthesis application but it is really flexible.

       Dependencies:

       · Espeak or Espeak-ng

       The Requirements are flexible, they depend on the configuration in
       settings.conf.

   Dummy
       this is just for debugging, logs are output to the screen and logged as
       well.

   Sound Drivers
       To play sound icons and similar.\ See section Sound (#Sound) in
       ''settings.conf'' for more information.

   Generic
       This driver is used by default.

       Dependencies:

       · Sox (http://sox.sourceforge.net/) with opus support The Requirements
         are flexible, they depend on the configuration in settings.conf.

   Gstreamer
       if you prefer to use Gstreamer for sound output.

       Dependencies:

       · Gstreamer >= 1.x

       · Glibc

   Dummy
       this is just for debugging, logs are output to the screen and logged as
       well.

   Input Drivers
       Input drivers are to capture keyboard shortcuts issued to the screen
       reader
       See section Keyboard (#Keyboard) in ''settings.conf'' for more
       information.

   Evdev
       This driver is used by default.

       Evdev is the low level input device framework for Linux.

       Dependencies:

       · python-evdev >=0.6.3

       · pyudev

       · loaded uinput kernel module

       · exclusive access to the input devices Read permission to the
         following files and services:

       · /dev/input

       · /dev/uinput

   Screen Drivers
       The job of a screen driver is to get the information of current screen
       content.\ See section Screen (#Screen) in ''settings.conf'' for more
       information.

   VCSA
       This driver is used by default.  For Linux VCSA devices.  These exist
       on any current standard installation of Linux.

       Dependencie s:

       · python-dbus Read permission to the following files and services (or
         run as root):

       · /sys/devices/virtual/tty/tty0/active

       · /dev/tty[1 - 64]

       · /dev/vcsa[1 - 64] (VCSA manpage (https///linux.die.net/man/4/vcsa))

       · read Logind DBUS

   Braille Drivers
       This is for Braille support.  Braille is currently a work in progress
       and is planned for the Fenrir 2.0 release.\ See section Braille
       (#Braille) in ''settings.conf'' for more information.

   BRLTTY
       This driver is used by default.  It uses BrlTTY (brltty) to communicate
       with with a Braille device.

       Dependencies:

       · BrlTTY (configured and running, Documentation
         (http://mielke.cc/brltty/doc/Manual-BRLTTY/English/BRLTTY.html))

       · python-brlapi (configured, Documentation
         (http://mielke.cc/brltty/doc/Manual-BrlAPI/English/BrlAPI.html)) ##
         Currently supported platforms

       Currently Fenrir completely supports the following Platforms:

       · Linux TTY Support for further Systems are planned.

Installation
       Fenrir can run without installation.  It just requires the dependencies
       are installed first.

       We recommend to try it out before installation to be sure everything
       works and prevent yourself from experiencing a non-talking environment.

   Try Out
       Fenrir does not require installation.  You can try it and make sure
       everything works before you decide to install.  In this way you can be
       sure that your system doesnt break or stop talking.  for that you can
       just grab the code and run as root ''src/fenrir/fenrir'' (in
       foreground) or ''src/fenrir/fenrir-daemon'' (in background, used by
       systemd for autostart)

   Install it
   Documented operating systems
   Arch Linux
       For Arch there are PKGBUILDs in the AUR:

       · fenrir (https///aur.archlinux.org/packages/fenrir/)

       · fenrir-git (https///aur.archlinux.org/packages/fenrir-git/)

   Manual
       1. Download the latest stable version from the Fenrir-Project
          (https///linux-a11y.org/index.php?page=fenrir-screenreader) site.

       2. Unpack the archive

       3. Check the needed Dependencys by running check-dependencys.py
          (https///github.com/chrys87/fenrir/blob/master/check-
          dependencies.py) script

       4. install the missing dependencies an standard installation requires
          the following:

           · python3 >= 3.3 (and all the following is needed for python3 )

           · python3-speechd (screen)

           · python3-dbus (screen)

           · python3-evdev >= 0.6.4(input)

           · python3-daemonize (background service)

           · python3-brlapi (braille)

           · python3-pyenchant (spellchecker)

           · your language for aspell (aspell-<lang>) (spellchecker)

           · sox (sound)

           · For an individual installation see Support and Requirements
             (#Support%20and%20Requirements) or consult the Readme
             (https///github.com/chrys87/fenrir/blob/master/README.md))

       5. run "install.sh" as root

       this installs Fenrir as the following

              * Application:''/opt/fenrir''
              * Settings:''/etc/fenrir''
              * Sound Icons:''/usr/share/fenrirscreenreader/''

       to remove Fenrir just run uninstall.sh as root

   Git
       if you want to get the latest code you can use git to get a development
       snapshot:

              git clone https://github.com/chrys87/fenrir.git

   Auto Start
       To start Fenrir once: systemctl start fenrir

       To enable auto start on system boot: systemctl enable fenrir

First Steps
       If you are using Fenrir for the first time you may want to take a look
       at these resources:

       · Keybindings (#Keybindings)

       · Tutorial Mode (#Tutorial%20Mode)

Features
   Commands
   Keybindings
       Normal commands can be invoked in two ways: 1.  Using a Metakey
       (FenrirKey (#Fenrir%20Key)) 2.  Shortcuts with a single key

       See section Keyboard (#Keyboard) in ''settings.conf'' for more
       information.  #### Fenrir Key

       The Fenrir Key is for invoking screen reader commands.  Fenrir can
       utilize more than one FenrirKey at the same time.  By default the
       following keys are used: 1.  Insert 2.  KeyPad Insert 3.  Meta (Super,
       Windows)

   Script Key
       To invoke "Scripts" the Script Key is mandatory.  The shortcut is
       encoded in the filename of the script.  See Scripting (#Scripting) ####
       Desktop Layout

       Shortcut                     Command
       ─────────────────────────────────────────────────────────────────────────
       FenrirKey + H                toggle tutorial mode
                                    (#Tutorial%20Mode)

       CTRL                         shut up (interrupts
                                    speech) (#shut%20up)
       FenrirKey + KeyPad 9         reviews bottom
                                    (#review%20bottom)
       FenrirKey + KeyPad 7         reviews top
                                    (#review%20top)
       KeyPad 8                     reviews current line
                                    (#review%20current%20line)
       KeyPad 7                     reviews previous line
                                    (#review%20previous%20line)
       KeyPad 9                     reviews next line
                                    (#review%20next%20line)
       FenrirKey + KeyPad 4         reviews line beginning
                                    (#review%20line%20beginning)
       FenrirKey + KeyPad 6         reviews line ending
                                    (#review%20line%20ending)
       FenrirKey + KeyPad 1         reviews line first character
                                    (#review%20line%20first%20character)
       FenrirKey + KeyPad 3         reviews line last character
                                    (#review%20line%20last%20character)
       FenrirKey + Alt + 1          presents first line
                                    (#present%20first%20line)
       FenrirKey + Alt + 2          presents last line
                                    (#present%20last%20line)
       KeyPad 5                     reviews current word
                                    (#review%20current%20word)
       KeyPad 4                     reviews previous word
                                    (#review%20previous%20word)
       KeyPad 6                     reviews next word
                                    (#review%20next%20word)
       FenrirKey + Shift + KeyPad   reviews current word phonetic
       5                            (#review%20current%20word%20phonetic)
       FenrirKey + Shift + KeyPad   reviews previous word phonetic
       4                            (#review%20previous%20word%20phonetic)
       FenrirKey + Shift + KeyPad   reviews next word phonetic
       6                            (#review%20next%20word%20phonetic)
       KeyPad 2                     reviews current char
                                    (#review%20current%20character)
       KeyPad 1                     reviews previous char
                                    (#review%20previous%20character)
       KeyPad 3                     reviews next char
                                    (#review%20next%20character)
       FenrirKey + Shift + KeyPad   reviews current character phonetic
       2                            (#review%20current%20character%20phonetic)
       FenrirKey + Shift + KeyPad   reviews previous character phonetic
       1                            (#review%20previous%20character%20phonetic)
       FenrirKey + Shift + KeyPad   reviews next character phonetic
       3                            (#review%20next%20character%20phonetic)
       FenrirKey + CTRL + KeyPad    reviews up (#review%20up)
       8
       FenrirKey + CTRL + KeyPad    reviews down (#review%20down)
       2
       FenrirKey + KeyPad dot       exit review (#exit%20review)
       KeyPad dot                   cursor position (#cursor%20position)
       FenrirKey + I                indent curr line (#indent%20current%20line)
       FenrirKey + KeyPad 5         current screen (#current%20screen)
       FenrirKey + KeyPad 8         current screen before cursor
                                    (#current%20screen%20before%20cursor)
       FenrirKey + KeyPad 2         current screen after cursor
                                    (#current%20screen%20after%20cursor)
       <Unbound>                    cursor read to end of line
                                    (#cursor%20read%20to%20end%20of%20line)
       <Unbound>                    cursor column (#cursor%20column)
       <Unbound>                    cursor line number
                                    (#cursor%20line%20number)
       <Unbound>                    Braille flush (#braille%20flush)

       <Unbound>                    Braille pan left (#braille%20pan%20left)
       <Unbound>                    Braille pan right (#braille%20pan%20right)
       <Unbound>                    Braille return to cursor
                                    (#braille%20return%20to%20cursor)
       FenrirKey + CTRL + 1         clear bookmark 1 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 1        set bookmark 1 (#set%20Bookmark%20X)
       FenrirKey + 1                bookmark 1 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 2         clear bookmark 2 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 2        set bookmark 2 (#set%20Bookmark%20X)
       FenrirKey + 2                bookmark 2 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 3         clear bookmark 3 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 3        set bookmark 3 (#set%20Bookmark%20X)
       FenrirKey + 3                bookmark 3 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 4         clear bookmark 4 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 4        set bookmark 4 (#set%20Bookmark%20X)
       FenrirKey + 4                bookmark 4 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 5         clear bookmark 5 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 5        set bookmark 5 (#set%20Bookmark%20X)
       FenrirKey + 5                bookmark 5 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 6         clear bookmark 6 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 6        set bookmark 6 (#set%20Bookmark%20X)
       FenrirKey + 6                bookmark 6 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 7         clear bookmark 7 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 7        set bookmark 7 (#set%20Bookmark%20X)
       FenrirKey + 7                bookmark 7 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 8         clear bookmark 8 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 8        set bookmark 8 (#set%20Bookmark%20X)
       FenrirKey + 8                bookmark 8 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 9         clear bookmark 9 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 9        set bookmark 9 (#set%20Bookmark%20X)
       FenrirKey + 9                bookmark 9 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 0         clear bookmark 10 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 0        set bookmark 10 (#set%20Bookmark%20X)
       FenrirKey + 0                bookmark 10 (#read%20Bookmark%20X)
       FenrirKey + KeyPad Slash     set window application (#Create%20Window)
       2 * FenrirKey + KeyPad       clear window application (#Remove%20Window)
       Slash
       KeyPad Plus                  read last incoming (#last%20incoming)
       FenrirKey + F2               toggles braille (#toggle%20braille)
       FenrirKey + F3               toggles sound (#toggle%20sound)
       FenrirKey + F4               toggles speech (#toggle%20speech)
       KeyPad Enter                 temporarily disables speech
                                    (#disable%20speech%20temporarily)
       FenrirKey + CTRL + P         toggles punctuation level
                                    (#toggle%20punctuation%20level)
       FenrirKey + RightBrace       toggle auto spell check
                                    (#toggle%20auto%20spell%20check)
       FenrirKey + Backslash        toggles output (#toggle%20output)
       FenrirKey + CTRL + E         toggles emoticons (#toggle%20emoticons)
       FenrirKey + KeyPad Enter     toggles auto read (#toggle%20auto%20read)
       FenrirKey + CTRL + T         toggles auto time (#toggle%20auto%20time)
       FenrirKey + KeyPad           toggles highlight tracking
       ASTERISK                     (#toggle%20highlight%20tracking)
       FenrirKey + Q                quits fenrir (#quit%20Fenrir)
       FenrirKey + T                Announce time (#Time)
       2 * FenrirKey + T            Announce date (#Date)
       FenrirKey + S                spell check (#spell%20check)
       2 * FenrirKey + S            add word to spell check
                                    (#add%20word%20to%20spell%20check)
       FenrirKey + Shift + S        removes word from spell check
                                    (#removes%20word%20from%20spell%20check)
       FenrirKey + Backspace        forward keypress (#forward%20keypress)
       FenrirKey + Up               increase speech volume
                                    (#increase%20speech%20volume)
       FenrirKey + Down             decrease speech volume
                                    (#decrease%20speech%20volume)

       FenrirKey + Right            increase speech rate
                                    (#increase%20speech%20rate)
       FenrirKey + Left             decrease speech rate
                                    (#decrease%20speech%20rate)
       FenrirKey + Alt + Right      increase speech pitch
                                    (#increase%20speech%20pitch)
       FenrirKey + Alt + Left       decrease speech pitch
                                    (#decrease%20speech%20pitch)
       FenrirKey + Alt + Up         increase sound volume
                                    (#increase%20sound%20volume)
       FenrirKey + Alt + Down       decrease sound volume
                                    (#decrease%20sound%20volume)
       FenrirKey + CTRL + Shift +   clears clipboard (#clear%20clipboard)
       C
       FenrirKey + Home             first clipboard (#first%20clipboard)
       FenrirKey + End              last clipboard (#last%20clipboard)
       FenrirKey + PageUp           previous clipboard (#previous%20clipboard)
       FenrirKey + PageDown         next clipboard (#next%20clipboard)
       FenrirKey + Shift + C        current clipboard
                                    (#read%20current%20clipboard)
       FenrirKey + C                copy marked text to clipboard
                                    (#copy%20marked%20to%20clipboard)
       FenrirKey + V                paste clipboard contents
                                    (#paste%20clipboard)
       FenrirKey + P                import clipboard from file
                                    (#import%20clipboard%20from%20file)
       FenrirKey + Alt + Shift +C   export clipboard to file
                                    (#export%20clipboard%20to%20file)
       FenrirKey + CTRL + Shift +   remove marks (#Remove%20Marks)
       X
       FenrirKey + X                set mark (#Set%20mark)
       FenrirKey + Shift + X        announce marked text
                                    (#Get%20text%20between%20marks)
       Linux specific
       <Unbound>                    export clipboard to X
       FenrirKey + CTRL + Up        include Alsa volume
       FenrirKey + CTRL + Down      decrease Alsa volume

   Laptop Layout
       Shortcut                     Command
       ─────────────────────────────────────────────────────────────────────────
       FenrirKey + H                toggle tutorial mode
                                    (#Tutorial%20Mode)
       CTRL                         shut up (interrupts
                                    speech) (#shut%20up)
       FenrirKey + Shift + O        reviews bottom
                                    (#review%20bottom)
       FenrirKey + Shift + U        reviews top
                                    (#review%20top)
       FenrirKey + I                reviews current line
                                    (#review%20current%20line)
       FenrirKey + U                reviews previous line
                                    (#review%20previous%20line)
       FenrirKey + O                reviews next line
                                    (#review%20next%20line)
       FenrirKey + Shift + J        reviews line beginning
                                    (#review%20line%20beginning)
       FenrirKey + Shift + L        reviews line ending
                                    (#review%20line%20ending)
       FenrirKey + CTRL + J         reviews line first character
                                    (#review%20line%20first%20character)
       FenrirKey + CTRL + L         reviews line last character
                                    (#review%20line%20last%20character)
       FenrirKey + Alt + 1          presents first line
                                    (#present%20first%20line)


       FenrirKey + Alt + 2          presents last line
                                    (#present%20last%20line)
       FenrirKey + K                reviews current word
                                    (#review%20current%20word)
       FenrirKey + J                reviews previous word
                                    (#review%20previous%20word)
       FenrirKey + L                reviews next word
                                    (#review%20next%20word)
       FenrirKey + CTRL + ALT + K   reviews current word phonetic
                                    (#review%20current%20word%20phonetic)
       FenrirKey + CTRL + ALT + J   reviews previous word phonetic
                                    (#review%20previous%20word%20phonetic)
       FenrirKey + CTRL + ALT + L   reviews next word phonetic
                                    (#review%20next%20word%20phonetic)
       FenrirKey + comma            reviews current character
                                    (#review%20current%20character)
       FenrirKey + M                reviews previous character
                                    (#review%20previous%20character)
       FenrirKey + dot              reviews next character
                                    (#review%20next%20character)
       FenrirKey + CTRL + ALT +     reviews current character phonetic
       comma                        (#review%20current%20character%20phonetic)
       FenrirKey + CTRL + ALT + M   reviews previous character phonetic
                                    (#review%20previous%20character%20phonetic)
       FenrirKey + CTRL + ALT +     reviews next character phonetic
       dot                          (#review%20next%20character%20phonetic)
       FenrirKey + CTRL + I         reviews up (#review%20up)
       FenrirKey + CTRL + comma     reviews down (#review%20down)
       FenrirKey + Slash            exit review (#exit%20review)
       FenrirKey + Shift + dot      cursor position (#cursor%20position)
       2 * FenrirKey + I            indent curr line (#indent%20current%20line)
       FenrirKey + Shift + K        current screen (#current%20screen)
       FenrirKey + Shift + I        current screen before cursor
                                    (#current%20screen%20before%20cursor)
       FenrirKey + Shift + comma    current screen after cursor
                                    (#current%20screen%20after%20cursor)
       <Unbound>                    cursor read to end of line
                                    (#cursor%20read%20to%20end%20of%20line)
       <Unbound>                    cursor column (#cursor%20column)
       <Unbound>                    cursor line number
                                    (#cursor%20line%20number)
       <Unbound>                    Braille flush (#braille%20flush)
       <Unbound>                    Braille pan left (#braille%20pan%20left)
       <Unbound>                    Braille pan right (#braille%20pan%20right)
       <Unbound>                    Braille return to cursor
                                    (#braille%20return%20to%20cursor)
       FenrirKey + CTRL + 1         clear bookmark 1 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 1        set bookmark 1 (#set%20Bookmark%20X)
       FenrirKey + 1                bookmark 1 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 2         clear bookmark 2 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 2        set bookmark 2 (#set%20Bookmark%20X)
       FenrirKey + 2                bookmark 2 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 3         clear bookmark 3 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 3        set bookmark 3 (#set%20Bookmark%20X)
       FenrirKey + 3                bookmark 3 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 4         clear bookmark 4 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 4        set bookmark 4 (#set%20Bookmark%20X)
       FenrirKey + 4                bookmark 4 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 5         clear bookmark 5 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 5        set bookmark 5 (#set%20Bookmark%20X)
       FenrirKey + 5                bookmark 5 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 6         clear bookmark 6 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 6        set bookmark 6 (#set%20Bookmark%20X)
       FenrirKey + 6                bookmark 6 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 7         clear bookmark 7 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 7        set bookmark 7 (#set%20Bookmark%20X)

       FenrirKey + 7                bookmark 7 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 8         clear bookmark 8 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 8        set bookmark 8 (#set%20Bookmark%20X)
       FenrirKey + 8                bookmark 8 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 9         clear bookmark 9 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 9        set bookmark 9 (#set%20Bookmark%20X)
       FenrirKey + 9                bookmark 9 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 0         clear bookmark 10 (#clear%20Bookmark%20X)
       FenrirKey + Shift + 0        set bookmark 10 (#set%20Bookmark%20X)
       FenrirKey + 0                bookmark 10 (#read%20Bookmark%20X)
       FenrirKey + CTRL + 8         set window application (#Create%20Window)
       2 * FenrirKey + CTRL + 8     clear window application (#Remove%20Window)
       FenrirKey + Semicolon        read last incoming (#last%20incoming)
       FenrirKey + F2               toggles braille (#toggle%20braille)
       FenrirKey + F3               toggles sound (#toggle%20sound)
       FenrirKey + F4               toggles speech (#toggle%20speech)
       FenrirKey + Enter            temporarily disables speech
                                    (#disable%20speech%20temporarily)
       FenrirKey + Shift + CTRL +   toggles punctuation level
       P                            (#toggle%20punctuation%20level)
       FenrirKey + RightBrace       toggle auto spell check
                                    (#toggle%20auto%20spell%20check)
       FenrirKey + Shift + Enter    toggles output (#toggle%20output)
       FenrirKey + Shift + E        toggles emoticons (#toggle%20emoticons)
       FenrirKey + Enter            toggles auto read (#toggle%20auto%20read)
       FenrirKey + CTRL + T         toggles auto time (#toggle%20auto%20time)
       FenrirKey + Y                toggles highlight tracking
                                    (#toggle%20highlight%20tracking)
       FenrirKey + Q                quits fenrir (#quit%20Fenrir)
       FenrirKey + T                Announce time (#Time)
       2 * FenrirKey + T            Announce date (#Date)
       FenrirKey + S                spell check (#spell%20check)
       2 * FenrirKey + S            add word to spell check
                                    (#add%20word%20to%20spell%20check)
       FenrirKey + Shift + S        removes word from spell check
                                    (#removes%20word%20from%20spell%20check)
       FenrirKey + Backspace        forward keypress (#forward%20keypress)
       FenrirKey + Up               increase speech volume
                                    (#increase%20speech%20volume)
       FenrirKey + Down             decrease speech volume
                                    (#decrease%20speech%20volume)
       FenrirKey + Right            increase speech rate
                                    (#increase%20speech%20rate)
       FenrirKey + Left             decrease speech rate
                                    (#decrease%20speech%20rate)
       FenrirKey + Alt + Right      increase speech pitch
                                    (#increase%20speech%20pitch)
       FenrirKey + Alt + Left       decrease speech pitch
                                    (#decrease%20speech%20pitch)
       FenrirKey + Alt + Up         increase sound volume
                                    (#increase%20sound%20volume)
       FenrirKey + Alt + Down       decrease sound volume
                                    (#decrease%20sound%20volume)
       FenrirKey + CTRL + Shift +   clears clipboard (#clear%20clipboard)
       C
       FenrirKey + Home             first clipboard (#first%20clipboard)
       FenrirKey + End              last clipboard (#last%20clipboard)
       FenrirKey + PageUp           previous clipboard (#previous%20clipboard)
       FenrirKey + PageDown         next clipboard (#next%20clipboard)
       FenrirKey + Shift + C        current clipboard
                                    (#read%20current%20clipboard)
       FenrirKey + C                copy marked text to clipboard
                                    (#copy%20marked%20to%20clipboard)
       FenrirKey + V                paste clipboard contents
                                    (#paste%20clipboard)


       FenrirKey + F5               import clipboard from file
                                    (#import%20clipboard%20from%20file)
       FenrirKey + Alt + Shift +C   export clipboard to file
                                    (#export%20clipboard%20to%20file)
       FenrirKey + CTRL + Shift +   remove marks (#Remove%20Marks)
       X
       FenrirKey + X                set mark (#Set%20mark)
       FenrirKey + Shift + X        announce marked text
                                    (#Get%20text%20between%20marks)
       Linux specific
       <Unbound>                    export clipboard to X
       FenrirKey + CTRL + Up        increases Alsa volume
       FenrirKey + CTRL + Down      decreases Alsa volume

   General
   quit Fenrir
       Just stops fenrir.  #### shut up

       Interrupt the current spoken.  ### Review Modes

       Fenrir provides a virtual cursor, with it you can navigate all over the
       screen without changing the text cursor.

       Using the review feature will open the review mode automatically.

       The review cursor always starts from the text cursor.  Attention: after
       using the review mode, the review cursor will stay open until you use
       the ''exit review'' shortcut.

       Think when using clipboard operations and similar.  The review cursor
       is always prefered over the text cursor.

       Fenrir sounds a bell sound if the used review command jumps to another
       line or end of screen.  #### exit review

       You can leave the review mode by pressing the ''exit review'' shortcut.
       #### review bottom

       Set the review cursor to first column in the last line.  #### review
       top

       Set the review cursor to the first column in the first line #### review
       current line

       Set the review cursor to the beginn of the the current line and review
       it.  #### review previous line

       Set the review cursor to the previous line and review it.  #### review
       next line

       Set the review cursor to the next line and review it.  #### review line
       beginning

       Set the review cursor to the begin of the current line #### review line
       ending

       Set the review cursor to the end of the current line #### review line
       first character

       Set the review cursor the first char (that is not space) in the current
       line and review it.  #### review line last character

       Set the review cursor the last char (that is not space) in the current
       line and review it.  #### review current word

       Sets the review cursor to the beginning of the current word and review
       it.  #### review previous word

       Sets the review cursor to the beginning of the previous word and review
       it.  #### review next word

       Sets the review cursor to the beginning of the next word and review it.
       #### review current word phonetic

       Sets the review cursor to the beginning of the current word and spell
       it phonetic.  #### review previous word phonetic

       Sets the review cursor to the beginning of the previous word and spell
       it phonetic.  #### review next word phonetic

       Sets the review cursor to the beginning of the next word and spell it
       phonetic.  #### review current character

       Does not change the review cursor.  Just announce the current char.
       #### review previous character

       Sets review cursor to the previous column and review it #### review
       next character

       Sets review cursor to the next column and review it #### review current
       character phonetic

       Does not change the review cursor.  Just announce the current char
       phonetic.  #### review previous character phonetic

       Sets review cursor to the previous column and announce the char
       phonetic.  #### review next character phonetic

       Sets review cursor to the next column and announce the char phonetic.
       #### review up

       Set the review cursor in the same column one line above the current one
       and review it.  #### review down

       Set the review cursor in the same column one line below the current one
       and review it.  ### Handling marking

       A mark defines a point of origin or end to prepare to copy or paste a
       block of text.  \ Examples where you need marks are:

       · copy to clipboard

       · set window application

       · set bookmark 1 - X #### Set mark

       How to set a mark: 1.  navigate with review or textcursor to the
       position you want to set the mark.  Attention: if a review cursor is
       set, that is the prefered.  If you want to use text cursor, be sure
       that you are not in review mode.  2.  press shortcut for ''set mark''
       you can set two marks (begin and end).  Some commands allow some
       simpler usecases just using the whole line if only one mark is set.
       you may want to try this out.  #### Get text between marks

       To get the text that is currently between your marks press shortcut for
       ''marked text''.\ #### Remove Marks

       You can remove all current marks by pressing the shortcut for ''remove
       marks''.  Changing the screen also removes the marks.  ### Screen
       Interaction

       Fenrir provides several methods to interact with the current screen.
       #### forward keypress

       This just forwards the next shortcut to the screen Fenrir shortcut or
       not.  This is useful if the currently pressed shortcut is also in use
       by Fenrir.  #### Clipboard

       Fenrir provides a clipboard with multible items represented by a list.
       You navigate throught the list and paste the selected clipboard.  #####
       copy marked to clipboard

       To copy something to the clipboard you need to set one or two marks.
       if you set one mark, the text between the mark and your current cursor
       is copied to clipboard.  Setting two marks just copies the text between
       the marks into the clipboard.  If you copy something it is always
       placed as the first item on your clipboard.  ##### clear clipboard

       You can remove all items from the current clipboard by ''clear
       clipboard'' functionality.  ##### first clipboard

       This moves quick to the first item of the clipboard.  ##### last
       clipboard

       This moves quick to the last item of the clipboard.  ##### previous
       clipboard

       Go to previous item in the clipboard.  ##### next clipboard

       Go to next item on the clipboard.  ##### read current clipboard

       Read the content of the current item of the clipboard.  ##### paste
       clipboard

       Pass whatever item is currently selected by first, last, prev or next
       clipboard commands.  if no special clipboard is selected the (last
       copied) is used.  ##### export clipboard to file

       This allows you to export the current clipboard to a configurable
       filepath.  This is useful to share the clipboard with a graphical
       desktop.  ##### import clipboard from file

       Import a clipboard from a configurable file.  This is useful to share
       the clipboard with a graphical desktop.  ### Quick Settings

       Fenrir provides shortcuts to change settings temporarily and on the fly
       without the need to permanently change the ''settings.conf'' file.
       #### toggle braille

       Enables and disables Braille.  This is not persistent stored in your
       ''settings.conf'' but during run time.  #### toggle sound

       Enables and disables sound.  This is not persistent stored in your
       ''settings.conf'' but during run time.  #### toggle speech

       Enables and disables speech.  This is not persistent stored in your
       ''settings.conf'' but during run time.  #### disable speech temporarily

       Disables the speech until next key press.  it might be useful if you
       want to listen to music or similar.  As soon as a key is pressed it is
       going to be enabled again.  #### toggle punctuation level

       Cycle between all available punctuation levels.  This is not persistent
       stored in your ''settings.conf'' but during run time.  #### toggle auto
       spell check

       Enables and disables automatic spellchecker (when typing).  This is not
       persistent stored in your ''settings.conf'' but during run time.  ####
       toggle emoticons

       Enables and disables emoticons.  This is not persistent stored in your
       ''settings.conf'' but during runtime.  #### toggle output

       Enables and disables all output at once (sound, Braille, speech).  This
       is not persistent stored in your ''settings.conf'' but during run time.
       #### toggle auto read

       Enables and disables what is automatically spoken.  This is not
       persistent stored in your ''settings.conf'' but during run time.  ####
       toggle auto time

       Enables and disables auto time functionality.  This is not persistent
       stored in your ''settings.conf'' but during run time.  #### toggle
       highlight tracking

       Enables and disables highlight tracking.  This is not persistent stored
       in your ''settings.conf'' but during run time.  #### increase speech
       volume

       Increase the volume of the speech.  This is not persistent stored in
       your ''settings.conf'' but during runtime.  #### decrease speech volume

       Decrease the volume of the speech.  This is not persistent stored in
       your ''settings.conf'' but during runtime.  #### increase speech rate

       Increase the rate of the speech.  This is not persistent stored in your
       ''settings.conf'' but during runtime.  #### decrease speech rate

       Decrease the rate of the speech.  This is not persistent stored in your
       ''settings.conf'' but during runtime.  #### increase speech pitch

       Increase the pitch of the speech.  This is not persistent stored in
       your ''settings.conf'' but during runtime.  #### decrease speech pitch

       Decrease the pitch of the speech.  This is not persistent stored in
       your ''settings.conf'' but during runtime.  #### increase sound volume

       Increase the volume of the sound.  This is not persistent stored in
       your ''settings.conf'' but during runtime.  #### decrease sound volume

       Decrease the volume of the sound.  This is not persistent stored in
       your ''settings.conf'' but during runtime.  ### Window Mode

       Fenrir supports window mode, a window is a partial area of the screen.
       #### Create Window

       To create a window you need to do the following: 1.  set a beginning
       mark (as the start of the window) 2.  set an end mark (where the window
       should end) 3.  press ''set window application'' shortcut.  Now Fenrir
       ignores anything outside of the window.\ #### Remove Window

       You can remove the window by pressing ''the clear window application''
       shortcut.  Now Fenrir will read everything on the screen again.  ###
       Tracking Modes

       Different types of tracking are currently supported See section Focus
       (#Focus) in ''settings.conf'' for more information.  #### Cursor
       Tracking

       This follows the text cursor.  This is the typical way an application
       works.  This is used by:

       · almost any shell such as (Bash, Zsh, sh)

       · vim

       · nano

       · emacs

       · mutt

       · tintin++ #### Highlight Tracking

       In some applications there are no text cursors.  In those applications
       cursor changes are represented by different colors or attributes
       (underlined or bold).  This mode tracks and announces these changes for
       you.  This is used by:

              * wifi-menu
              * dialog
              * alpine

   Tutorial Mode
       Fenrir provides a Tutorial mode.  When you enter tutorial mode, screen
       reader commands are intercepted and explained instead of executing
       them.  ''Arrow up'' and ''Arrow Down'' let you navigate through a list
       of all available commands with shortcuts and description.  Pressing
       escape leaves the tutorial mode.

   Information
   Time
       Announces the current Time.  #### Date

       Announces the current Date.  #### Bookmarks

       Bookmarks provide quick access to part of the screen without the need
       to navigate to the area.  By default Fenrir provides 10 bookmarks.
       Those can be set and accessed via shortcut.  This is useful for status
       lines or other information where the position does not change.  #####
       set Bookmark X

       You need to set the bookmark first.  For that you have to set one or
       two lines for use.  1.  Set marks (one or two) 2.  press shortcut for
       ''set bookmark X''.  X represents the number 1 - 10.  ##### read
       Bookmark X

       If a bookmark is set you can access the area just by pressing the
       ''bookmark X'' shortcut.  X represents the number 1 - 10.  Bookmarks
       are dynamic.  That means the content changes with the screen.  #####
       clear Bookmark X

       to remove a bookmark just press the ''clear bookmark X'' shortcut.  X
       represents the number 1 - 10.  Afterward the bookmark is no longer
       available.  #### cursor position

       You can get information about the current cursor and its position by
       using the "cursor position" functionality.  #### indent current line

       Announce the current indent level of the current line.  It represents
       the number of trailing spaces of the line.  #### current screen

       Reads all the current screen from the beginning to the end.  ####
       current screen before cursor

       Reads current screen from the beginning of the screen to the current
       cursor position.  #### current screen after cursor

       Read anything after current cursor position to the end.  #### cursor
       read to end of line

       Read from the current cursor position to the end of the current line.
       #### cursor column

       Read the current X position of a cursor (column of the current line).
       #### cursor line number

       Read the current Y position of a cursor (line number).  #### present
       first line

       Reads just the first line.  this is maybe useful for status
       information.  #### present last line

       Presets the last line.  This is maybe useful for status information.
       #### last incoming

       Repeat the last automatically incoming text.  ## Input

   Echo
       Fenrir provides different methods of echoing content:

       · Word: Will speak each word after you push space

       · Character: speak any letter you type on the screen

       · Delete Character: speaks the character prior to the cursor when you
         push backspace ### Silence on Key press

   Spellchecker
       Fenrir has a built-in spellchecker, it can invoke automatically while
       typing or be called by a shortcut.  Commands to add or remove the
       current word to the dictionary are included.  As using the spellchecker
       is enhanced usage.  You will need dictionary aspell-<language>.  See
       section General (#General) in ''settings.conf'' for more information.
       #### spell check

       Invokes the spellcheck on the word that contains the Review or text
       cursor.  #### add word to spell check

       Adds the word under the Review or Text cursor to the dictionary.  ####
       removes word from spell check

       Removes the word under the Review or Text cursor from the dictionary.
       ## Announcements

   Emoticons
       If you want to replace ":)" emoticons with "smile" in speech you can
       use this feature.  It can be toggled on or off.  You can define
       emoticons in a dictionary, please see Emoticon Dictionary.  See section
       General (#General) in ''settings.conf'' to see how to enable or disable
       this feature.

   Time
       Announce the time at periodical increments, To track the time easily.
       You can define 2 different ways of time announcements.  1.  periodic 2.
       on fix minutes

       Example periodic, every 20 minutes "delaySec=20":

              [time]
              enabled=True
              presentTime=True
              presentDate=True
              delaySec=20
              onMinutes=
              announce=True
              interrupt=False

       Example on fix minutes in an hour.  example every quarter "delaySec=0"
       and "onMinutes=00,15,30,45":

              [time]
              enabled=True
              presentTime=True
              presentDate=True
              #delaySec is repected bevore onMinutes so it need to be set to 0
              delaySec=0
              onMinutes=00,15,30,45
              announce=True
              interrupt=False

   Promoted List
       Promoted Lists are a nice feature if you are away from your computer or
       performing more longer tasks.  you can define a list of words which you
       want to hear a sound icon for after a period of inactivity.  Example if
       the word "Chrys" appears after 120 Seconds of inactivity: [promote]
       enabled=True
       inactiveTimeoutSec=120 list=Chrys See section Promote (#Promote) in
       ''settings.conf'' for more information.  ### Punctuation

       Fenrir handles punctuation levels and names for you with several
       provided dictionaries.

       See levelDict See punctuationDict ## Braille

       Fenrir provides Braille support in Version >= 2.0.  See section Braille
       (#Braille) in ''settings.conf'' for more information.  ### braille
       flush

       If a message appears on the Braille device you can flush it to get back
       to the review- or system cursor ### Braille pan left

       If a line is longer than your Braille devices you can move the view
       (called panning) to the left.  So you can read stuff without the need
       to move the review- or system cursor.  ### Braille pan right

       If a line is longer than your Braille devices you can move the view
       (called panning) to the right.  So you can read stuff without the need
       to move the review- or system cursor.  ### braille return to cursor

       When you have finished reading the line on the Braille device using
       panning, the focus can be returned to the current used cursor by using
       "return to cursor" command.  ## Dictionary

       You can make use of different kinds of built-in dictionary's.  A
       dictionary has a name and list of keys and values separated by :===:
       Example: [customDict] Chrys:===:Chrys is cool lollipop:===:lolli that
       means that every instance "chrys" is displayed, speech will say Chrys
       is cool.  "lollipop" is spoken as "lolli".  Before making changes to a
       dictionary we recommend making a backup of your current dictionary in
       case future updates overwrite your local changes.  ### Punctuation

   Level
       The punctuation level dict contains lists with "what punctuation is
       spoken in what level".  the default one looks like this: [levelDict]
       none:===: some:===:.-$~+*-/\@  most:===:.,:-$~+*-/@!#%^&()[]}{<>;
       all:===:!"#$%& '()+,-./:;<=>?@[\]^_`{|}~ the level "none" has no
       values.  so it should not speak any punctuation (sadly this is not
       respected by every TTS system) if "some" is the current level the
       following are spoken: dot dash dollar tilde plus star slash backslash
       at.  same for most and all, you can add new levels.  if you cycle
       punctuation levels they are recognized.  the default punctuation level
       is set in settings.conf.  The default is "some".  #### Punctuation

       The punctuation dictionary "[punctDict]" contains how the punctuation
       is spoken.  Example: [punctDict] :===:line
       speaks an  as "line".
       [punctDict] :===:underscore speaks an  as underscore.  for question
       mark an ?  is appended to the word that the TTS system can announce the
       question correctly.
       ### Custom

       The dict "[customDict]" is just for your own use, it just replace the
       key with the value without any special functionality.  This might be
       used to fix incorrectly spoken words, make words more common, shorter
       or just for fun.  :) ### Emoticons

       The Emoticons dictionary "[emoticonDict]" by default contains some
       emoticons.  it can replace ":)" with "smile" or "XD" with "loool"
       Making chat more colorful.  A nice feature with this dictionary is that
       you can toggle the substitution on or off during run time or in
       settings.conf.  This is useful because while doing programming or other
       serious work you want to hear colons and perryns not smiles.  #
       Configuration

       You can configure Fenrir in the following places (ordered by priority):
       1.  Commandline Parameters ''-o'' see Set settings coption
       (#Set%20settings%20coption) 2.  /etc/fenrir/settings/settings.conf see
       Settigns (#Settings) 3.  <sourceTree>/config/settings/settings.conf see
       Settigns (#Settings) 4.  hard coded defaults ## Commandline Arguments

   Set settings option
       You can specify options that overwrite the setting.conf.  This is done
       with ''-o <list of options> parameter.  The list of options have the
       following syntax fenrir -o
       "section#setting=value;section#setting=value"

       For example changing the sound driver to gstreamer and disabling
       Braille
       fenrir -o "sound#driver=gstreamerDriver;braille#enabled=False=False" or
       change the debug level to verbose fenrir -o "general#debugLevel=3" You
       can find the available sections and variables here <#Settings> See
       Syntax #settings.conf syntax (#settings.conf%20syntax) ###
       settings.conf syntax

       the syntax of the settings.conf (#Settings) is quite simple and similar
       to a "*.ini" file, there are 4 different elements.  1.  Sections 2.
       Settings 3.  Values 4.  Comments

       A comment starts with a # and is ignored by Fenrir.  # this is a
       comment To group settings we have sections.  A section can look like
       this: [Section] A setting looks like this: settingName=Value

       Example: sound (#sound) # Turn sound on or off: enabled=True # Select
       the driver used to play sounds, choices are genericDriver and
       gstreamerDriver.  # Sox is default.  driver=genericDriver

   Settings
   Sound
       The sound is configured in section ''sound (#sound)''.

       Turn sound on or off: enabled=True Values: on=''True'', off=''False''

       Select the driver used to play sounds.  The genericDriver using Sox is
       the default.

              driver=genericDriver

       Available Drivers:

       · ''genericDriver'' using the generic driver, for Fenrir <1.5 just use
         ''generic''

       · ''gstreamerDriver'' using the gstreamer, for Fenrir <1.5 just use
         ''gstreamer''

       These are the pack of sounds used for sound icons.  theme=default By
       default we ship two sound packs.  1.  ''default'' opus encoded, for
       newer Sox versions 2.  ''default-wav'' wav encoded, just for
       compatibility Sound packs are located at
       /usr/share/sounds/fenrirscreenreader/

       Sound volume controls how loud the sounds for your selected sound pack
       are.  volume=1.0 Values: ''0.0'' is quietest, ''1.0'' is loudest.

   Generic Driver
       The generic sound driver uses shell commands for play sound and
       frequencies.

       ''genericPlayFileCommand'' defines the command that is used to play a
       sound file.  genericPlayFileCommand=<your command for playing a file>
       ''genericFrequencyCommand'' defines the command that is used playing
       frequencies.
       genericFrequencyCommand=<your command for playing a frequence>

       The following variables are substituted in ''genericPlayFileCommand''
       and ''genericFrequencyCommand'':

       · ''fenrirVolume'' = the current volume setting

       · ''fenrirSoundFile'' = the sound file for an sound icon

       · ''fenrirFrequence'' = the frequency to play

       · ''fenrirDuration'' = the duration of the frequency

       Example genericPlayFileCommand (default) genericPlayFileCommand=play -q
       -v fenrirVolume fenrirSoundFile Example genericFrequencyCommand
       (default) genericFrequencyCommand=play -q -v fenrirVolume -n -c1 synth
       fenrirDuration sine fenrirFrequence ### Speech

       Speech is configured in section ''[speech]''.  Turn speech on or off:
       enabled=True Values: on=''True'', off=''False''

Select speech driver, options are speechdDriver (default),
       genericDriver or espeakDriver:

       driver=speechdDriver #driver=espeakDriver

driver=genericDriver
       Select the driver used to generate speech output.

              driver=speechdDriver

       Available Drivers:

       · ''genericDriver'' using the generic driver, for Fenrir <1.5 this is
         not available

       · ''speechdDriver'' using speech-dispatcher, for Fenrir <1.5 just use
         ''speechd''

       · ''espeakDriver'' using the espeak directly, for Fenrir <1.5 just use
         ''espeak''

       The rate selects how fast Fenrir will speak.  rate=0.65 Values: Range
       Minimum:''0.0'' is slowest, Maximum:''1.0'' is fastest.

       Pitch controls the pitch of the voice.  pitch=0.5 Values: Range
       Minimum:''0.0'' is lowest, Maximum:''1.0'' is highest.

       A Pitch for capital letters can be set.  capitalPitch=0.9 Values: Range
       Minimum:''0.0'' is lowest, Maximum:''1.0'' is highest.

       The Volume controls the loudness of the voice.  volume=1.0 Values:
       Range Minimum:''0.0'' is quietest, Maximum:''1.0'' is loudest.

       Some speech drivers like speechdDriver can support various modules.
       these can be set here.  module=espeak Values: Text, Consult
       speech-dispatcher's configuration to see what modules are available.

       Voice selects the varient you want to use, for example, f5 will use the
       female voice #5 in Espeak, or if using the Espeak module in
       Speech-dispatcher.  To find out which voices are available, consult the
       documentation provided with your selected synthesizer.  voice= Values:
       Text, see your TTS synths documentation what is available.

       Select the language you want Fenrir to use.  language=english-us
       Values: Text, see your TTS synths documentation what is available.

       Read new text as it occurs autoReadIncoming=True Values: on=''True'',
       off=''False''

   Generic Driver
       The generic speech driver uses shell commands for speech synthisus.

       ''genericSpeechCommand'' defines the command that is executed for
       creating speech The following variables are substituted in
       ''genericSpeechCommand'':

       · ''FenrirText'' = is the text that should be spoken

       · ''fenrirModule'' = may be the speech module like used in
         speech-dispatcher, not every TTY needs this

       · ''fenrirLanguage'' = the language to speak in

       · ''fenrirVoice'' = is the current voice that should be used

       · ''fenrirVolume'' = is replaced with the current volume

       · ''fenrirPitch'' = is replaced with the current pitch

       · ''fenrirRate'' = is replaced with the current speed (speech rate)

       Example genericSpeechCommand (default): genericSpeechCommand=espeak -a
       fenrirVolume -s fenrirRate -p fenrirPitch -v fenrirVoice "fenrirText"

       These are the minimum and maximum values of the TTS system used in
       genericSpeechCommand.  They are needed to calculate the abstract range
       in volume, rate and pitch 0.0 - 1.0.

              FenrirMinVolume=0
              fenrirMaxVolume=200
              fenrirMinPitch=0
              fenrirMaxPitch=99
              fenrirMinRate=80
              fenrirMaxRate=450

       The current volume, pitch and rate is calculated like this value = min
       + [volume,pitch,rate] * (min - max ) ### Braille

       Braille is a WIP and not ready yet.  Braille support can be configured
       in section ''[braille]''.

       Turn braille on or off: enabled=False Values: on=''True'',
       off=''False''

       Select the driver used for communication with a braille device.
       driver=brlapiDriver Values: Text, available Driver Available Drivers:

       · ''brlttyDriver'' using brltty for braille communication, for Fenrir
         <1.5 just use ''brltty''

       The Braille layout can be configured here layout=en Values: Text, see
       braille driver for layouts.

       What should the flush timeout relate to flushMode=word Values: Text, an
       flushMode Existing flushModes:

       · ''word'' = flush after (number of words to display) * seconds

       · ''char'' = flush after (number of chars to display) * seconds

       · ''fix'' = flush after X seconds

       · ''none'' = no automatic flush (manual via shortcut)

       Seconds to flush (see flushMode) flushTimeout=3 Values: Integer, in
       Seconds or ''-1'' = no automatic flush (manual via shortcut) The total
       flush time calculates in relation to flushMode.

       How should the Braille cursor focus be tracked?  cursorFocusMode=page
       Values: Text, an existing cursor focus mode Available cursor focus
       modes:

       · ''page'' = if the cursor crosses the border move to next page and
         start at begin

       · ''fixCell'' = ajust the cursor on a special cell where it is always
         placed.  the display scroll here more smooth.

       Define the cell on the Braille device where Fenrir should scroll and
       keep the cursor fixCursorOnCell=-1 Values: Integer

       · ''0'' = first cell on device,

       · ''-1'' = last cell on device

       · ''>0'' = fix cell number

       What cursor should Fenrir show on the Braille device
       cursorFollowMode=review Values: Text, an exsiting cursor following
       mode.  Existing cursor following mode:

       · ''none'' = no automatic toggle command used

       · ''review'' = priority to review

       · ''last'' = follow last used cursor

       number of cells in panning (horizontal).  How many cell should be
       panned on press the routing key?  panSizeHorizontal=0 Values: Integer,

       · ''0'' = display size

       · ''>0'' number of cells ### Screen

       The settings for screens, (TTY, PTY) are configured in the ''[screen]''
       section.

       The driver to get the information from the screen: driver=vcsaDriver
       Available Drivers:

       · ''vcsaDriver'' using the VCSA driver (for TTYs), for Fenrir <1.5 just
         use ''vcsa'' The encoding of the screen encoding=cp850
         Values:''cp850'' is used for Western languages like USA or Europe.

       The driver updates Fenrir with changes on the screen.
       screenUpdateDelay=0.05 Values: in Seconds

       If you want Fenrir to not be active on any screen for various reasons.
       Maybe an X server or Wayland is running on that screen.  You can make
       Fenrir ignore it or multiple screens seperated by '','' with:
       suspendingScreen= Values: Depends on driver:

       · VCSA: the number of the TTY.  TTY6 is ''6''.  Example ignore TTY1 and
         TTY2: suspendingScreen=1,2

       There is also the ability to let Fenrir auto detect screens that are
       running an X server.  So Screens running an GUI can be ignored.
       autodetectSuspendingScreen=True Values: on=''True'', off=''False''

   Keyboard
       The settings for keyboard and input related configuration is located in
       the section ''keyboard (#keyboard)'' of the ''settings.conf'' file.

       Select the driver used for grabbing keybord input and for recieving
       shortcuts.  driver=evdevDriver Values: Text, available Driver Available
       Drivers:

       · ''evdevDriver'' uses the evdev input system of linux, for Fenrir <1.5
         just use ''evdev''

       You can let Fenrir know about what input devices are to be used.
       device=ALL Values:

       · ''ALL'' use all devices with key capabilities.

       · ''NOMICE'' Exclude mices from handling.

       · <Device Name> just use the device with the given name.

       Gives Fenrir exclusive access to the keyboard and lets it control
       keystrokes.  This is needed to intercept Fenrir related shortcuts.
       grabDevices=True Values: on=''True'', off=''False''

       The following makes sense if you are using a second screenreader and
       want to have some hooked events.  Fenrir ignores all shortcuts then.
       ignoreShortcuts=False Values: on=''True'', off=''False''

       The current keyboard layout used for shortcuts.  keyboardLayout=desktop
       Values: An absolute Path to a Keyboard definition file or a Filename
       without extension located in ''/etc/fenrir/keyboard''

       Announce characters while typing.  charEcho=False Values: on=''True'',
       off=''False''

       Announce deleted characters charDeleteEcho=True Values: on=''True'',
       off=''False''

       Announce word after pressing space wordEcho=False Values: on=''True'',
       off=''False''

       Interrupt speech on any keypress interruptOnKeyPress=False Values:
       on=''True'', off=''False''

       You can filter the keys that speech should interrupt
       interruptOnKeyPressFilter= Values: (List) empty = all keys, otherwise
       interrupt with specified keys

       The timeout that is used for double tap shortcuts doubleTapTimeout=0.2
       Values: Seconds ### General

       Overall settings can be configured from the section ''general
       (#general)''.

       Set the current debug level: debugLevel=1 Values: off=0, error=1,
       warning=2, info=3

       the current punctuation and dict file in use:
       punctuationProfile=default Values: Text, see available profiles in
       ''/etc/fenrir/punctuation'' or in ''sourceTree/config/punctuation''

       The current punctuation level in use: punctuationLevel=some Values:
       Text, See available levels in the used punctuation file.

       Respect pause for punctuations: respectPunctuationPause=True Values:
       on=''True'', off=''False''

       Add a pause on Line break: newLinePause=True Values: on=''True'',
       off=''False''

       Specify the path where the clipboard should be exported to.  See export
       clipboard to file (#export%20clipboard%20to%20file).  The variable
       ''$user'' is replaced by the current logged username.
       clipboardExportPath=/tmp/fenrirClipboard Values: Text, Systemfilepath

       The number of available clipboards: numberOfClipboards=10 Values:
       Integer, 1 - 999

       Replace emoticons like :) or ;) with text insertions: emoticons=True
       Values: on=''True'', off=''False''

       Define the current Fenrir keys: fenrirKeys=KEY_KP0,KEY_META,KEY_INSERT
       Values, Text list, separated by comma.

       Define the current script keys: scriptKey=KEY_COMPOSE Values, Text
       list, separated by comma.

       The time format to be used for (time command) output:
       timeFormat=%H:%M:%P Values: see python specification for
       datetime.strftime
       (https///docs.python.org/3/library/datetime.html#strftime-and-strptime-
       behavior)

       The date format to be used for (date command) output: dateFormat=%A, %B
       %d, %Y Values: see python specification for datetime.strftime
       (https///docs.python.org/3/library/datetime.html#strftime-and-strptime-
       behavior)

       Enable or Disable spellcheck whilst typing: autoSpellCheck=True Values:
       on=''True'', off=''False''

       The use of the dictionary with spellcheck: spellCheckLanguage=en_US
       Values: Text, see aspell dictionary's.

       Folder Path for your scripts "scriptKey" functionality:
       scriptPath=/usr/share/fenrirscreenreader/scripts Values: Text, Existing
       path on file system.

       Override commands or create new ones without changing the Fenrir
       defaults: commandPath=/usr/share/fenrirscreenreader/commands Values:
       Text, Existing path on file system.  Subfolders in commandPath are:

       · ''commands'' = to create shortcut commands

       · ''onInput'' = executed while typing

       · ''onScreenChange'' = executed on change the screen (change from TTY4
         to TTY6)

       · ''onScreenUpdate'' = executed when the screen is captured

   Focus
       The configuration for basic focus is in the section ''focus (#focus)''.
       Follow the text cursor: cursor=True Values: on=''True'', off=''False''

       Follow highlighted text changes (Highlight Tracking): highlight=False
       Values: on=''True'', off=''False'' ### Review

       Configurations for the review mode are in the section ''[review]''.

       If "next word/ char" or "prev word/char" create a linebreak, announce
       it: lineBreak=True Values: on=''True'', off=''False''

       If "next word/ char" or "prev word/char" cannot be performed because
       you reached the end of the screen, announce it: endOfScreen=True
       Values: on=''True'', off=''False''

       Leave the review mode when pressing a key: leaveReviewOnKeypress=False
       Values: on=''True'', off=''False''

       Leave the review mode when changing the screen (From TTY3 to TTY4):
       leaveReviewOnScreenChange=True Values: on=''True'', off=''False'' ###
       Promote

       "Promoted Lists" are configured in the section ''[promote]''.  Turn
       Promoted Lists" on or off: enabled=True Values: on=''True'',
       off=''False''

       The minimum time interval of inactivity to activate promoting.  By
       default it promotes after 120 Seconds inactivity:
       inactiveTimeoutSec=120 Values: in Seconds

       Define a list of promoted words comma seperated: list= Values: text
       (comma seperated) Example to promote the word "nickname" or a bash
       prompt: list=nickname,$:,#:

   Time
       The automated time announcement is configured in the section ''time
       (#time-2)''.  Time announcement is disabled by default.  Turn time
       announcement on or off: enabled=True Values: on=''True'', off=''False''

       Should the time be announced: presentTime=True Values: on=''True'',
       off=''False''

       Should the date be announced (just on date change): presentDate=True
       Values: on=''True'', off=''False''

       Announce after a given period of seconds: delaySec=0 Value: in Seconds,
       0 = Deactivated

       Announce after fixed minutes in an hour.  if delaySec is >0 onMinutes
       is ignored: onMinutes=00,30 Example every 15 minutes:
       onMinutes=00,15,30,45

       Just play a soundicon, (not interrupting): announce=True Values:
       on=''True'', off=''False''

       Interrupt current speech for time announcement: interrupt=False Values:
       on=''True'', off=''False'' # Customization

   Scripting
       Scripts can be in any language, bash, python, sh or others.  Place your
       scripts in the directory /usr/share/fenrirscreenreader/scripts/ (the
       path is configurable in settings.conf).  The script key is the
       applications key.  Usually this key can be found on the keyboard
       located just left of the right most control key.  When you name a
       script, the key name appears in the script seperated by the sequence -.
       So, for example, if you have a python weather script you want assigned
       to the script key plus the letter w you would name the script
       /usr/share/fenrirscreenreader/scripts/weather__-__key_w.py Then, to
       access the script, simply press the script key and the letter w.
       Scripts must be executable.  So, make sure to chmod 755 your script
       when you place it in the scripts directory.  The script gets some
       parameters from fenrir when it is executed.  So that information is
       available in your script then.

   Parameterlist
       Parameter   Content
       ────────────────────────────────────
       $1          Username of the current
                   logged in user

   Examples
       Script that just speaks the current username when pressing ScriptKey +
       H.\ File:
       ''/usr/share/fenrirscreenreader/scripts/helloWorld__-__key_h.sh'':
       #!/bin/bash echo $1

   Commands
       You can place your own commands in
       "/usr/share/fenrirscreenreader/commands" (path is configurable in
       settings.conf).  Commands are python files with a special scheme.  You
       can assign them to a shortcut using the filename without an extension
       or place them in a hook trigger like OnInput or OnScreenChange.  For
       further information see developer guide.  Good Examples: "date.py"
       (https///github.com/chrys87/fenrir/blob/master/src/fenrir/commands/commands/date.py)
       (announce the Date), "shut_up.py"
       (https///github.com/chrys87/fenrir/blob/master/src/fenrir/commands/commands/shut_up.py)
       (interrupt output) the basic scheme for a command is as follows:

              from core import debug

              class command():
                def __init__(self):
                    pass
                def initialize(self, environment):
                    self.env = environment
                def shutdown(self):
                    pass
                def getDescription(self):
                    return _('No description found')
                def run(self):
                    pass
                def setCallback(self, callback):
                    pass

       · Template lives here
         (https///github.com/chrys87/fenrir/blob/master/src/fenrir/commands/command_template.py)

       · The class needs to have the name "command".

       · "initialize" is running once whilst loading the command.

       · "shutdown" is running on unload like the command (quit fenrir)

       · "getDescriptsion" just returns an string.  That String is used in
         Tutorial Mode.

       · "run" is executed when the command is invoked.  (shortcut is pressed,
         or trigger isn't running)

       · setCAllback is currently not used.  and has no functionality yet.

Troubleshooting
   Fenrir does not start
        1. Have you installed all the dependencies Support and Requirements
           (#Support%20and%20Requirements)

        2. Try using master, a lot of changes take place there to make Fenrir
           compatible with more systems ## Fenrir does not utilize the
           shortcuts

        3. Make sure you have python3-evdev installed

        4. Use the latest Fenrir version

        5. Make sure that Fenrir has permission to /dev/input/* and
           /dev/uinput (or run it as root) ## No sound at all

        6. Run the script to configure Pulseaudio once as root and once as
           your user.  This will setup Pulseaudio but require a restart of
           Pulseaudio.  The script is located in ''tools/configure_pulse.sh''

        7. Use ALSA

        8. Configure Pulse system wide
           (https///www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/)
           (Not recommended)

        9. Use gstreamerDriver: change ''settings.conf'' in the section
           ''sound'' the line ''driver=genericDriver'' to
           ''driver=gstreamerDriver''

       10. Use wave sound-icons: change ''settings.conf'' in the section
           ''sound'' the line ''theme=default'' to ''theme=default-wav''

       11. Use most current version of sox (http://sox.sourceforge.net/) with
           opus support

       12. Try apulse (https///github.com/i-rinat/apulse) (not tested by
           myself but might work).  Please give me feedback if you try it out.
           ## You get sound-icons but no speech

       13. If you are using speech-dispatcher run "spd-conf" once as user and
           as root.

       14. You can test if speech-dispatcher works by invoking it as root\
           ''sudo spd-say "hello world"'' ## Bugreports and feature requests

       Please report Bugs and feature requests to:
       https://github.com/chrys87/fenrir/issues
       (https///github.com/chrys87/fenrir/issues)

       for bugs please provide a debug (#Howto%20create%20a%20debug%20file)
       file that shows the issue.  ### How-to create a debug file

       1. Delete old debug stuff\ ''sudo rm /var/log/fenrir.log''

       2. Start fenrir in debug mode\ ''sudo fenrir -d''

       3. Do your stuff to reproduce the problem

       4. Stop fenrir (''fenrirKey + q'') the debug file is located in
          ''/var/log/fenrir.log''

       Please be as precise as possible to make it easy to solve the problem.



                                                                            ()