2017-08-23 15:32:48 -04:00
|
|
|
.\"t
|
|
|
|
.\" Automatically generated by Pandoc 1.19.2.1
|
|
|
|
.\"
|
|
|
|
.TH "" "" "" "" ""
|
|
|
|
.hy
|
|
|
|
.SH Fenrir User Manual
|
|
|
|
.PP
|
|
|
|
Fenrir is a modern command line screen reader written in Python3.
|
|
|
|
.PP
|
|
|
|
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)).
|
|
|
|
.PP
|
|
|
|
Please see the following pages for the current (fenrir_current_version)
|
|
|
|
and Git (fenrir_git_version) version of Fenrir.
|
|
|
|
.SH Support and Requirements
|
|
|
|
.PP
|
|
|
|
Fenrir requires several drivers to interact with the operating system.
|
|
|
|
.SS Speech Drivers
|
|
|
|
.PP
|
|
|
|
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 \[aq]\[aq]settings.conf\[aq]\[aq] for
|
|
|
|
more information.
|
|
|
|
.SS SpeechDispatcher
|
|
|
|
.PP
|
|
|
|
This driver is used by default.
|
|
|
|
It uses Speech\-dispatcher as its backend.
|
|
|
|
.PP
|
|
|
|
Dependencies:
|
|
|
|
.IP \[bu] 2
|
|
|
|
Speech\-dispatcher (installed and configured,
|
|
|
|
Documentation (https///devel.freebsoft.org/speechd#sec2))
|
|
|
|
.IP \[bu] 2
|
|
|
|
Python\-speechd
|
|
|
|
.SS Espeak
|
|
|
|
.PP
|
|
|
|
Uses Espeak via Python bindings.
|
|
|
|
.PP
|
|
|
|
Dependencies:
|
|
|
|
.IP \[bu] 2
|
|
|
|
Espeak or Espeak\-ng
|
|
|
|
.IP \[bu] 2
|
|
|
|
python\-espeak (https///launchpad.net/python-espeak)
|
|
|
|
.SS Generic
|
|
|
|
.PP
|
|
|
|
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.
|
|
|
|
.PP
|
|
|
|
Dependencies:
|
|
|
|
.IP \[bu] 2
|
|
|
|
Espeak or Espeak\-ng
|
|
|
|
.PP
|
|
|
|
The Requirements are flexible, they depend on the configuration in
|
|
|
|
settings.conf.
|
|
|
|
.SS Dummy
|
|
|
|
.PP
|
|
|
|
this is just for debugging, logs are output to the screen and logged as
|
|
|
|
well.
|
|
|
|
.SS Sound Drivers
|
|
|
|
.PP
|
|
|
|
To play sound icons and similar.\\ See section Sound (#Sound) in
|
|
|
|
\[aq]\[aq]settings.conf\[aq]\[aq] for more information.
|
|
|
|
.SS Generic
|
|
|
|
.PP
|
|
|
|
This driver is used by default.
|
|
|
|
.PP
|
|
|
|
Dependencies:
|
|
|
|
.IP \[bu] 2
|
|
|
|
Sox (http://sox.sourceforge.net/) with opus support The Requirements are
|
|
|
|
flexible, they depend on the configuration in settings.conf.
|
|
|
|
.SS Gstreamer
|
|
|
|
.PP
|
|
|
|
if you prefer to use Gstreamer for sound output.
|
|
|
|
.PP
|
|
|
|
Dependencies:
|
|
|
|
.IP \[bu] 2
|
|
|
|
Gstreamer >= 1.x
|
|
|
|
.IP \[bu] 2
|
|
|
|
Glibc
|
|
|
|
.SS Dummy
|
|
|
|
.PP
|
|
|
|
this is just for debugging, logs are output to the screen and logged as
|
|
|
|
well.
|
|
|
|
.SS Input Drivers
|
|
|
|
.PP
|
|
|
|
Input drivers are to capture keyboard shortcuts issued to the screen
|
|
|
|
reader
|
|
|
|
.PD 0
|
|
|
|
.P
|
|
|
|
.PD
|
|
|
|
See section Keyboard (#Keyboard) in \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
for more information.
|
|
|
|
.SS Evdev
|
|
|
|
.PP
|
|
|
|
This driver is used by default.
|
|
|
|
.PP
|
|
|
|
Evdev is the low level input device framework for Linux.
|
|
|
|
.PP
|
|
|
|
Dependencies:
|
|
|
|
.IP \[bu] 2
|
|
|
|
python\-evdev >=0.6.3
|
|
|
|
.IP \[bu] 2
|
|
|
|
pyudev
|
|
|
|
.IP \[bu] 2
|
|
|
|
loaded uinput kernel module
|
|
|
|
.IP \[bu] 2
|
|
|
|
exclusive access to the input devices Read permission to the following
|
|
|
|
files and services:
|
|
|
|
.IP \[bu] 2
|
|
|
|
/dev/input
|
|
|
|
.IP \[bu] 2
|
|
|
|
/dev/uinput
|
|
|
|
.SS Screen Drivers
|
|
|
|
.PP
|
|
|
|
The job of a screen driver is to get the information of current screen
|
|
|
|
content.\\ See section Screen (#Screen) in
|
|
|
|
\[aq]\[aq]settings.conf\[aq]\[aq] for more information.
|
|
|
|
.SS VCSA
|
|
|
|
.PP
|
|
|
|
This driver is used by default.
|
|
|
|
For Linux VCSA devices.
|
|
|
|
These exist on any current standard installation of Linux.
|
|
|
|
.PP
|
|
|
|
Dependencie s:
|
|
|
|
.IP \[bu] 2
|
|
|
|
python\-dbus Read permission to the following files and services (or run
|
|
|
|
as root):
|
|
|
|
.IP \[bu] 2
|
|
|
|
/sys/devices/virtual/tty/tty0/active
|
|
|
|
.IP \[bu] 2
|
|
|
|
/dev/tty[1 \- 64]
|
|
|
|
.IP \[bu] 2
|
|
|
|
/dev/vcsa[1 \- 64] (VCSA manpage (https///linux.die.net/man/4/vcsa))
|
|
|
|
.IP \[bu] 2
|
|
|
|
read Logind DBUS
|
|
|
|
.SS Braille Drivers
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
\[aq]\[aq]settings.conf\[aq]\[aq] for more information.
|
|
|
|
.SS BRLTTY
|
|
|
|
.PP
|
|
|
|
This driver is used by default.
|
|
|
|
It uses BrlTTY (brltty) to communicate with with a Braille device.
|
|
|
|
.PP
|
|
|
|
Dependencies:
|
|
|
|
.IP \[bu] 2
|
|
|
|
BrlTTY (configured and running,
|
|
|
|
Documentation (http://mielke.cc/brltty/doc/Manual-BRLTTY/English/BRLTTY.html))
|
|
|
|
.IP \[bu] 2
|
|
|
|
python\-brlapi (configured,
|
|
|
|
Documentation (http://mielke.cc/brltty/doc/Manual-BrlAPI/English/BrlAPI.html))
|
|
|
|
## Currently supported platforms
|
|
|
|
.PP
|
|
|
|
Currently Fenrir completely supports the following Platforms:
|
|
|
|
.IP \[bu] 2
|
|
|
|
Linux TTY Support for further Systems are planned.
|
|
|
|
.SH Installation
|
|
|
|
.PP
|
|
|
|
Fenrir can run without installation.
|
|
|
|
It just requires the dependencies are installed first.
|
|
|
|
.PP
|
|
|
|
We recommend to try it out before installation to be sure everything
|
|
|
|
works and prevent yourself from experiencing a non\-talking environment.
|
|
|
|
.SS Try Out
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
\[aq]\[aq]src/fenrir/fenrir\[aq]\[aq] (in foreground) or
|
|
|
|
\[aq]\[aq]src/fenrir/fenrir\-daemon\[aq]\[aq] (in background, used by
|
|
|
|
systemd for autostart)
|
|
|
|
.SS Install it
|
|
|
|
.SS Documented operating systems
|
|
|
|
.SS Arch Linux
|
|
|
|
.PP
|
|
|
|
For Arch there are PKGBUILDs in the AUR:
|
|
|
|
.IP \[bu] 2
|
|
|
|
fenrir (https///aur.archlinux.org/packages/fenrir/)
|
|
|
|
.IP \[bu] 2
|
|
|
|
fenrir\-git (https///aur.archlinux.org/packages/fenrir-git/)
|
|
|
|
.SS Manual
|
|
|
|
.IP "1." 3
|
|
|
|
Download the latest stable version from the
|
|
|
|
Fenrir\-Project (https///linux-a11y.org/index.php?page=fenrir-screenreader)
|
|
|
|
site.
|
|
|
|
.IP "2." 3
|
|
|
|
Unpack the archive
|
|
|
|
.IP "3." 3
|
|
|
|
Check the needed Dependencys by running
|
|
|
|
check\-dependencys.py (https///github.com/chrys87/fenrir/blob/master/check-dependencies.py)
|
|
|
|
script
|
|
|
|
.IP "4." 3
|
|
|
|
install the missing dependencies an standard installation requires the
|
|
|
|
following:
|
|
|
|
.RS 4
|
|
|
|
.IP \[bu] 2
|
|
|
|
python3 >= 3.3 (and all the following is needed for python3 )
|
|
|
|
.IP \[bu] 2
|
|
|
|
python3\-speechd (screen)
|
|
|
|
.IP \[bu] 2
|
|
|
|
python3\-dbus (screen)
|
|
|
|
.IP \[bu] 2
|
|
|
|
python3\-evdev >= 0.6.4(input)
|
|
|
|
.IP \[bu] 2
|
|
|
|
python3\-daemonize (background service)
|
|
|
|
.IP \[bu] 2
|
|
|
|
python3\-brlapi (braille)
|
|
|
|
.IP \[bu] 2
|
|
|
|
python3\-pyenchant (spellchecker)
|
|
|
|
.IP \[bu] 2
|
|
|
|
your language for aspell (aspell\-\f[C]<lang>\f[]) (spellchecker)
|
|
|
|
.IP \[bu] 2
|
|
|
|
sox (sound)
|
|
|
|
.IP \[bu] 2
|
|
|
|
For an individual installation see Support and
|
|
|
|
Requirements (#Support%20and%20Requirements) or consult the
|
|
|
|
Readme (https///github.com/chrys87/fenrir/blob/master/README.md))
|
|
|
|
.RE
|
|
|
|
.IP "5." 3
|
|
|
|
run "install.sh" as root
|
|
|
|
.PP
|
|
|
|
this installs Fenrir as the following
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
*\ Application:\[aq]\[aq]/opt/fenrir\[aq]\[aq]
|
|
|
|
*\ Settings:\[aq]\[aq]/etc/fenrir\[aq]\[aq]
|
2018-06-17 18:22:16 -04:00
|
|
|
*\ Sound\ Icons:\[aq]\[aq]/usr/share/fenrirscreenreader/\[aq]\[aq]
|
2017-08-23 15:32:48 -04:00
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.PP
|
|
|
|
to remove Fenrir just run uninstall.sh as root
|
|
|
|
.SS Git
|
|
|
|
.PP
|
|
|
|
if you want to get the latest code you can use git to get a development
|
|
|
|
snapshot:
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
git\ clone\ https://github.com/chrys87/fenrir.git
|
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.SS Auto Start
|
|
|
|
.PP
|
|
|
|
To start Fenrir once: systemctl start fenrir
|
|
|
|
.PP
|
|
|
|
To enable auto start on system boot: systemctl enable fenrir
|
|
|
|
.SH First Steps
|
|
|
|
.PP
|
|
|
|
If you are using Fenrir for the first time you may want to take a look
|
|
|
|
at these resources:
|
|
|
|
.IP \[bu] 2
|
|
|
|
Keybindings (#Keybindings)
|
|
|
|
.IP \[bu] 2
|
|
|
|
Tutorial Mode (#Tutorial%20Mode)
|
|
|
|
.SH Features
|
|
|
|
.SS Commands
|
|
|
|
.SS Keybindings
|
|
|
|
.PP
|
|
|
|
Normal commands can be invoked in two ways: 1.
|
|
|
|
Using a Metakey (FenrirKey (#Fenrir%20Key)) 2.
|
|
|
|
Shortcuts with a single key
|
|
|
|
.PP
|
|
|
|
See section Keyboard (#Keyboard) in \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
for more information.
|
|
|
|
#### Fenrir Key
|
|
|
|
.PP
|
|
|
|
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)
|
|
|
|
.SS Script Key
|
|
|
|
.PP
|
|
|
|
To invoke "Scripts" the Script Key is mandatory.
|
|
|
|
The shortcut is encoded in the filename of the script.
|
|
|
|
See Scripting (#Scripting) #### Desktop Layout
|
|
|
|
.PP
|
|
|
|
.TS
|
|
|
|
tab(@);
|
|
|
|
l l.
|
|
|
|
T{
|
|
|
|
Shortcut
|
|
|
|
T}@T{
|
|
|
|
Command
|
|
|
|
T}
|
|
|
|
_
|
|
|
|
T{
|
|
|
|
FenrirKey + H
|
|
|
|
T}@T{
|
|
|
|
toggle tutorial mode (#Tutorial%20Mode)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
CTRL
|
|
|
|
T}@T{
|
|
|
|
shut up (interrupts speech) (#shut%20up)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 9
|
|
|
|
T}@T{
|
|
|
|
reviews bottom (#review%20bottom)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 7
|
|
|
|
T}@T{
|
|
|
|
reviews top (#review%20top)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 8
|
|
|
|
T}@T{
|
|
|
|
reviews current line (#review%20current%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 7
|
|
|
|
T}@T{
|
|
|
|
reviews previous line (#review%20previous%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 9
|
|
|
|
T}@T{
|
|
|
|
reviews next line (#review%20next%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 4
|
|
|
|
T}@T{
|
|
|
|
reviews line beginning (#review%20line%20beginning)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 6
|
|
|
|
T}@T{
|
|
|
|
reviews line ending (#review%20line%20ending)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 1
|
|
|
|
T}@T{
|
|
|
|
reviews line first character (#review%20line%20first%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 3
|
|
|
|
T}@T{
|
|
|
|
reviews line last character (#review%20line%20last%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + 1
|
|
|
|
T}@T{
|
|
|
|
presents first line (#present%20first%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + 2
|
|
|
|
T}@T{
|
|
|
|
presents last line (#present%20last%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 5
|
|
|
|
T}@T{
|
|
|
|
reviews current word (#review%20current%20word)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 4
|
|
|
|
T}@T{
|
|
|
|
reviews previous word (#review%20previous%20word)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 6
|
|
|
|
T}@T{
|
|
|
|
reviews next word (#review%20next%20word)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + KeyPad 5
|
|
|
|
T}@T{
|
|
|
|
reviews current word phonetic (#review%20current%20word%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + KeyPad 4
|
|
|
|
T}@T{
|
|
|
|
reviews previous word phonetic (#review%20previous%20word%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + KeyPad 6
|
|
|
|
T}@T{
|
|
|
|
reviews next word phonetic (#review%20next%20word%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 2
|
|
|
|
T}@T{
|
|
|
|
reviews current char (#review%20current%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 1
|
|
|
|
T}@T{
|
|
|
|
reviews previous char (#review%20previous%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad 3
|
|
|
|
T}@T{
|
|
|
|
reviews next char (#review%20next%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + KeyPad 2
|
|
|
|
T}@T{
|
|
|
|
reviews current character
|
|
|
|
phonetic (#review%20current%20character%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + KeyPad 1
|
|
|
|
T}@T{
|
|
|
|
reviews previous character
|
|
|
|
phonetic (#review%20previous%20character%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + KeyPad 3
|
|
|
|
T}@T{
|
|
|
|
reviews next character phonetic (#review%20next%20character%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + KeyPad 8
|
|
|
|
T}@T{
|
|
|
|
reviews up (#review%20up)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + KeyPad 2
|
|
|
|
T}@T{
|
|
|
|
reviews down (#review%20down)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad dot
|
|
|
|
T}@T{
|
|
|
|
exit review (#exit%20review)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad dot
|
|
|
|
T}@T{
|
|
|
|
cursor position (#cursor%20position)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + I
|
|
|
|
T}@T{
|
|
|
|
indent curr line (#indent%20current%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 5
|
|
|
|
T}@T{
|
|
|
|
current screen (#current%20screen)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 8
|
|
|
|
T}@T{
|
|
|
|
current screen before cursor (#current%20screen%20before%20cursor)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad 2
|
|
|
|
T}@T{
|
|
|
|
current screen after cursor (#current%20screen%20after%20cursor)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
cursor read to end of line (#cursor%20read%20to%20end%20of%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
cursor column (#cursor%20column)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
cursor line number (#cursor%20line%20number)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
Braille flush (#braille%20flush)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
Braille pan left (#braille%20pan%20left)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
Braille pan right (#braille%20pan%20right)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
Braille return to cursor (#braille%20return%20to%20cursor)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 1
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 1 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 1
|
|
|
|
T}@T{
|
|
|
|
set bookmark 1 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 1
|
|
|
|
T}@T{
|
|
|
|
bookmark 1 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 2
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 2 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 2
|
|
|
|
T}@T{
|
|
|
|
set bookmark 2 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 2
|
|
|
|
T}@T{
|
|
|
|
bookmark 2 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 3
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 3 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 3
|
|
|
|
T}@T{
|
|
|
|
set bookmark 3 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 3
|
|
|
|
T}@T{
|
|
|
|
bookmark 3 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 4
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 4 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 4
|
|
|
|
T}@T{
|
|
|
|
set bookmark 4 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 4
|
|
|
|
T}@T{
|
|
|
|
bookmark 4 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 5
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 5 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 5
|
|
|
|
T}@T{
|
|
|
|
set bookmark 5 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 5
|
|
|
|
T}@T{
|
|
|
|
bookmark 5 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 6
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 6 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 6
|
|
|
|
T}@T{
|
|
|
|
set bookmark 6 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 6
|
|
|
|
T}@T{
|
|
|
|
bookmark 6 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 7
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 7 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 7
|
|
|
|
T}@T{
|
|
|
|
set bookmark 7 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 7
|
|
|
|
T}@T{
|
|
|
|
bookmark 7 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 8
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 8 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 8
|
|
|
|
T}@T{
|
|
|
|
set bookmark 8 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 8
|
|
|
|
T}@T{
|
|
|
|
bookmark 8 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 9
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 9 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 9
|
|
|
|
T}@T{
|
|
|
|
set bookmark 9 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 9
|
|
|
|
T}@T{
|
|
|
|
bookmark 9 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 0
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 10 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 0
|
|
|
|
T}@T{
|
|
|
|
set bookmark 10 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 0
|
|
|
|
T}@T{
|
|
|
|
bookmark 10 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad Slash
|
|
|
|
T}@T{
|
|
|
|
set window application (#Create%20Window)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
2 * FenrirKey + KeyPad Slash
|
|
|
|
T}@T{
|
|
|
|
clear window application (#Remove%20Window)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad Plus
|
|
|
|
T}@T{
|
|
|
|
read last incoming (#last%20incoming)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + F2
|
|
|
|
T}@T{
|
|
|
|
toggles braille (#toggle%20braille)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + F3
|
|
|
|
T}@T{
|
|
|
|
toggles sound (#toggle%20sound)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + F4
|
|
|
|
T}@T{
|
|
|
|
toggles speech (#toggle%20speech)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
KeyPad Enter
|
|
|
|
T}@T{
|
|
|
|
temporarily disables speech (#disable%20speech%20temporarily)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + P
|
|
|
|
T}@T{
|
|
|
|
toggles punctuation level (#toggle%20punctuation%20level)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + RightBrace
|
|
|
|
T}@T{
|
|
|
|
toggle auto spell check (#toggle%20auto%20spell%20check)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Backslash
|
|
|
|
T}@T{
|
|
|
|
toggles output (#toggle%20output)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + E
|
|
|
|
T}@T{
|
|
|
|
toggles emoticons (#toggle%20emoticons)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad Enter
|
|
|
|
T}@T{
|
|
|
|
toggles auto read (#toggle%20auto%20read)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + T
|
|
|
|
T}@T{
|
|
|
|
toggles auto time (#toggle%20auto%20time)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + KeyPad ASTERISK
|
|
|
|
T}@T{
|
|
|
|
toggles highlight tracking (#toggle%20highlight%20tracking)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Q
|
|
|
|
T}@T{
|
|
|
|
quits fenrir (#quit%20Fenrir)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + T
|
|
|
|
T}@T{
|
|
|
|
Announce time (#Time)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
2 * FenrirKey + T
|
|
|
|
T}@T{
|
|
|
|
Announce date (#Date)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + S
|
|
|
|
T}@T{
|
|
|
|
spell check (#spell%20check)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
2 * FenrirKey + S
|
|
|
|
T}@T{
|
|
|
|
add word to spell check (#add%20word%20to%20spell%20check)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + S
|
|
|
|
T}@T{
|
|
|
|
removes word from spell check (#removes%20word%20from%20spell%20check)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Backspace
|
|
|
|
T}@T{
|
|
|
|
forward keypress (#forward%20keypress)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Up
|
|
|
|
T}@T{
|
|
|
|
increase speech volume (#increase%20speech%20volume)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Down
|
|
|
|
T}@T{
|
|
|
|
decrease speech volume (#decrease%20speech%20volume)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Right
|
|
|
|
T}@T{
|
|
|
|
increase speech rate (#increase%20speech%20rate)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Left
|
|
|
|
T}@T{
|
|
|
|
decrease speech rate (#decrease%20speech%20rate)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Right
|
|
|
|
T}@T{
|
|
|
|
increase speech pitch (#increase%20speech%20pitch)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Left
|
|
|
|
T}@T{
|
|
|
|
decrease speech pitch (#decrease%20speech%20pitch)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Up
|
|
|
|
T}@T{
|
|
|
|
increase sound volume (#increase%20sound%20volume)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Down
|
|
|
|
T}@T{
|
|
|
|
decrease sound volume (#decrease%20sound%20volume)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + Shift + C
|
|
|
|
T}@T{
|
|
|
|
clears clipboard (#clear%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Home
|
|
|
|
T}@T{
|
|
|
|
first clipboard (#first%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + End
|
|
|
|
T}@T{
|
|
|
|
last clipboard (#last%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + PageUp
|
|
|
|
T}@T{
|
|
|
|
previous clipboard (#previous%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + PageDown
|
|
|
|
T}@T{
|
|
|
|
next clipboard (#next%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + C
|
|
|
|
T}@T{
|
|
|
|
current clipboard (#read%20current%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + C
|
|
|
|
T}@T{
|
|
|
|
copy marked text to clipboard (#copy%20marked%20to%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + V
|
|
|
|
T}@T{
|
|
|
|
paste clipboard contents (#paste%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + P
|
|
|
|
T}@T{
|
|
|
|
import clipboard from file (#import%20clipboard%20from%20file)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Shift +C
|
|
|
|
T}@T{
|
|
|
|
export clipboard to file (#export%20clipboard%20to%20file)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + Shift + X
|
|
|
|
T}@T{
|
|
|
|
remove marks (#Remove%20Marks)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + X
|
|
|
|
T}@T{
|
|
|
|
set mark (#Set%20mark)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + X
|
|
|
|
T}@T{
|
|
|
|
announce marked text (#Get%20text%20between%20marks)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
Linux specific
|
|
|
|
T}@T{
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
export clipboard to X
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + Up
|
|
|
|
T}@T{
|
|
|
|
include Alsa volume
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + Down
|
|
|
|
T}@T{
|
|
|
|
decrease Alsa volume
|
|
|
|
T}
|
|
|
|
.TE
|
|
|
|
.SS Laptop Layout
|
|
|
|
.PP
|
|
|
|
.TS
|
|
|
|
tab(@);
|
|
|
|
l l.
|
|
|
|
T{
|
|
|
|
Shortcut
|
|
|
|
T}@T{
|
|
|
|
Command
|
|
|
|
T}
|
|
|
|
_
|
|
|
|
T{
|
|
|
|
FenrirKey + H
|
|
|
|
T}@T{
|
|
|
|
toggle tutorial mode (#Tutorial%20Mode)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
CTRL
|
|
|
|
T}@T{
|
|
|
|
shut up (interrupts speech) (#shut%20up)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + O
|
|
|
|
T}@T{
|
|
|
|
reviews bottom (#review%20bottom)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + U
|
|
|
|
T}@T{
|
|
|
|
reviews top (#review%20top)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + I
|
|
|
|
T}@T{
|
|
|
|
reviews current line (#review%20current%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + U
|
|
|
|
T}@T{
|
|
|
|
reviews previous line (#review%20previous%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + O
|
|
|
|
T}@T{
|
|
|
|
reviews next line (#review%20next%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + J
|
|
|
|
T}@T{
|
|
|
|
reviews line beginning (#review%20line%20beginning)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + L
|
|
|
|
T}@T{
|
|
|
|
reviews line ending (#review%20line%20ending)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + J
|
|
|
|
T}@T{
|
|
|
|
reviews line first character (#review%20line%20first%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + L
|
|
|
|
T}@T{
|
|
|
|
reviews line last character (#review%20line%20last%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + 1
|
|
|
|
T}@T{
|
|
|
|
presents first line (#present%20first%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + 2
|
|
|
|
T}@T{
|
|
|
|
presents last line (#present%20last%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + K
|
|
|
|
T}@T{
|
|
|
|
reviews current word (#review%20current%20word)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + J
|
|
|
|
T}@T{
|
|
|
|
reviews previous word (#review%20previous%20word)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + L
|
|
|
|
T}@T{
|
|
|
|
reviews next word (#review%20next%20word)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + ALT + K
|
|
|
|
T}@T{
|
|
|
|
reviews current word phonetic (#review%20current%20word%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + ALT + J
|
|
|
|
T}@T{
|
|
|
|
reviews previous word phonetic (#review%20previous%20word%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + ALT + L
|
|
|
|
T}@T{
|
|
|
|
reviews next word phonetic (#review%20next%20word%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + comma
|
|
|
|
T}@T{
|
|
|
|
reviews current character (#review%20current%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + M
|
|
|
|
T}@T{
|
|
|
|
reviews previous character (#review%20previous%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + dot
|
|
|
|
T}@T{
|
|
|
|
reviews next character (#review%20next%20character)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + ALT + comma
|
|
|
|
T}@T{
|
|
|
|
reviews current character
|
|
|
|
phonetic (#review%20current%20character%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + ALT + M
|
|
|
|
T}@T{
|
|
|
|
reviews previous character
|
|
|
|
phonetic (#review%20previous%20character%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + ALT + dot
|
|
|
|
T}@T{
|
|
|
|
reviews next character phonetic (#review%20next%20character%20phonetic)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + I
|
|
|
|
T}@T{
|
|
|
|
reviews up (#review%20up)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + comma
|
|
|
|
T}@T{
|
|
|
|
reviews down (#review%20down)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Slash
|
|
|
|
T}@T{
|
|
|
|
exit review (#exit%20review)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + dot
|
|
|
|
T}@T{
|
|
|
|
cursor position (#cursor%20position)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
2 * FenrirKey + I
|
|
|
|
T}@T{
|
|
|
|
indent curr line (#indent%20current%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + K
|
|
|
|
T}@T{
|
|
|
|
current screen (#current%20screen)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + I
|
|
|
|
T}@T{
|
|
|
|
current screen before cursor (#current%20screen%20before%20cursor)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + comma
|
|
|
|
T}@T{
|
|
|
|
current screen after cursor (#current%20screen%20after%20cursor)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
cursor read to end of line (#cursor%20read%20to%20end%20of%20line)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
cursor column (#cursor%20column)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
cursor line number (#cursor%20line%20number)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
Braille flush (#braille%20flush)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
Braille pan left (#braille%20pan%20left)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
Braille pan right (#braille%20pan%20right)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
Braille return to cursor (#braille%20return%20to%20cursor)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 1
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 1 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 1
|
|
|
|
T}@T{
|
|
|
|
set bookmark 1 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 1
|
|
|
|
T}@T{
|
|
|
|
bookmark 1 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 2
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 2 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 2
|
|
|
|
T}@T{
|
|
|
|
set bookmark 2 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 2
|
|
|
|
T}@T{
|
|
|
|
bookmark 2 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 3
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 3 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 3
|
|
|
|
T}@T{
|
|
|
|
set bookmark 3 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 3
|
|
|
|
T}@T{
|
|
|
|
bookmark 3 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 4
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 4 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 4
|
|
|
|
T}@T{
|
|
|
|
set bookmark 4 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 4
|
|
|
|
T}@T{
|
|
|
|
bookmark 4 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 5
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 5 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 5
|
|
|
|
T}@T{
|
|
|
|
set bookmark 5 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 5
|
|
|
|
T}@T{
|
|
|
|
bookmark 5 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 6
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 6 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 6
|
|
|
|
T}@T{
|
|
|
|
set bookmark 6 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 6
|
|
|
|
T}@T{
|
|
|
|
bookmark 6 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 7
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 7 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 7
|
|
|
|
T}@T{
|
|
|
|
set bookmark 7 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 7
|
|
|
|
T}@T{
|
|
|
|
bookmark 7 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 8
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 8 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 8
|
|
|
|
T}@T{
|
|
|
|
set bookmark 8 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 8
|
|
|
|
T}@T{
|
|
|
|
bookmark 8 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 9
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 9 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 9
|
|
|
|
T}@T{
|
|
|
|
set bookmark 9 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 9
|
|
|
|
T}@T{
|
|
|
|
bookmark 9 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 0
|
|
|
|
T}@T{
|
|
|
|
clear bookmark 10 (#clear%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + 0
|
|
|
|
T}@T{
|
|
|
|
set bookmark 10 (#set%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + 0
|
|
|
|
T}@T{
|
|
|
|
bookmark 10 (#read%20Bookmark%20X)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + 8
|
|
|
|
T}@T{
|
|
|
|
set window application (#Create%20Window)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
2 * FenrirKey + CTRL + 8
|
|
|
|
T}@T{
|
|
|
|
clear window application (#Remove%20Window)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Semicolon
|
|
|
|
T}@T{
|
|
|
|
read last incoming (#last%20incoming)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + F2
|
|
|
|
T}@T{
|
|
|
|
toggles braille (#toggle%20braille)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + F3
|
|
|
|
T}@T{
|
|
|
|
toggles sound (#toggle%20sound)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + F4
|
|
|
|
T}@T{
|
|
|
|
toggles speech (#toggle%20speech)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Enter
|
|
|
|
T}@T{
|
|
|
|
temporarily disables speech (#disable%20speech%20temporarily)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + CTRL + P
|
|
|
|
T}@T{
|
|
|
|
toggles punctuation level (#toggle%20punctuation%20level)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + RightBrace
|
|
|
|
T}@T{
|
|
|
|
toggle auto spell check (#toggle%20auto%20spell%20check)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + Enter
|
|
|
|
T}@T{
|
|
|
|
toggles output (#toggle%20output)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + E
|
|
|
|
T}@T{
|
|
|
|
toggles emoticons (#toggle%20emoticons)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Enter
|
|
|
|
T}@T{
|
|
|
|
toggles auto read (#toggle%20auto%20read)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + T
|
|
|
|
T}@T{
|
|
|
|
toggles auto time (#toggle%20auto%20time)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Y
|
|
|
|
T}@T{
|
|
|
|
toggles highlight tracking (#toggle%20highlight%20tracking)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Q
|
|
|
|
T}@T{
|
|
|
|
quits fenrir (#quit%20Fenrir)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + T
|
|
|
|
T}@T{
|
|
|
|
Announce time (#Time)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
2 * FenrirKey + T
|
|
|
|
T}@T{
|
|
|
|
Announce date (#Date)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + S
|
|
|
|
T}@T{
|
|
|
|
spell check (#spell%20check)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
2 * FenrirKey + S
|
|
|
|
T}@T{
|
|
|
|
add word to spell check (#add%20word%20to%20spell%20check)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + S
|
|
|
|
T}@T{
|
|
|
|
removes word from spell check (#removes%20word%20from%20spell%20check)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Backspace
|
|
|
|
T}@T{
|
|
|
|
forward keypress (#forward%20keypress)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Up
|
|
|
|
T}@T{
|
|
|
|
increase speech volume (#increase%20speech%20volume)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Down
|
|
|
|
T}@T{
|
|
|
|
decrease speech volume (#decrease%20speech%20volume)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Right
|
|
|
|
T}@T{
|
|
|
|
increase speech rate (#increase%20speech%20rate)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Left
|
|
|
|
T}@T{
|
|
|
|
decrease speech rate (#decrease%20speech%20rate)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Right
|
|
|
|
T}@T{
|
|
|
|
increase speech pitch (#increase%20speech%20pitch)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Left
|
|
|
|
T}@T{
|
|
|
|
decrease speech pitch (#decrease%20speech%20pitch)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Up
|
|
|
|
T}@T{
|
|
|
|
increase sound volume (#increase%20sound%20volume)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Down
|
|
|
|
T}@T{
|
|
|
|
decrease sound volume (#decrease%20sound%20volume)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + Shift + C
|
|
|
|
T}@T{
|
|
|
|
clears clipboard (#clear%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Home
|
|
|
|
T}@T{
|
|
|
|
first clipboard (#first%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + End
|
|
|
|
T}@T{
|
|
|
|
last clipboard (#last%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + PageUp
|
|
|
|
T}@T{
|
|
|
|
previous clipboard (#previous%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + PageDown
|
|
|
|
T}@T{
|
|
|
|
next clipboard (#next%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + C
|
|
|
|
T}@T{
|
|
|
|
current clipboard (#read%20current%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + C
|
|
|
|
T}@T{
|
|
|
|
copy marked text to clipboard (#copy%20marked%20to%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + V
|
|
|
|
T}@T{
|
|
|
|
paste clipboard contents (#paste%20clipboard)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + F5
|
|
|
|
T}@T{
|
|
|
|
import clipboard from file (#import%20clipboard%20from%20file)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Alt + Shift +C
|
|
|
|
T}@T{
|
|
|
|
export clipboard to file (#export%20clipboard%20to%20file)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + Shift + X
|
|
|
|
T}@T{
|
|
|
|
remove marks (#Remove%20Marks)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + X
|
|
|
|
T}@T{
|
|
|
|
set mark (#Set%20mark)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + Shift + X
|
|
|
|
T}@T{
|
|
|
|
announce marked text (#Get%20text%20between%20marks)
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
Linux specific
|
|
|
|
T}@T{
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
\f[C]<Unbound>\f[]
|
|
|
|
T}@T{
|
|
|
|
export clipboard to X
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + Up
|
|
|
|
T}@T{
|
|
|
|
increases Alsa volume
|
|
|
|
T}
|
|
|
|
T{
|
|
|
|
FenrirKey + CTRL + Down
|
|
|
|
T}@T{
|
|
|
|
decreases Alsa volume
|
|
|
|
T}
|
|
|
|
.TE
|
|
|
|
.SS General
|
|
|
|
.SS quit Fenrir
|
|
|
|
.PP
|
|
|
|
Just stops fenrir.
|
|
|
|
#### shut up
|
|
|
|
.PP
|
|
|
|
Interrupt the current spoken.
|
|
|
|
### Review Modes
|
|
|
|
.PP
|
|
|
|
Fenrir provides a virtual cursor, with it you can navigate all over the
|
|
|
|
screen without changing the text cursor.
|
|
|
|
.PP
|
|
|
|
Using the review feature will open the review mode automatically.
|
|
|
|
.PP
|
|
|
|
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 \[aq]\[aq]exit review\[aq]\[aq] shortcut.
|
|
|
|
.PP
|
|
|
|
Think when using clipboard operations and similar.
|
|
|
|
The review cursor is always prefered over the text cursor.
|
|
|
|
.PP
|
|
|
|
Fenrir sounds a bell sound if the used review command jumps to another
|
|
|
|
line or end of screen.
|
|
|
|
#### exit review
|
|
|
|
.PP
|
|
|
|
You can leave the review mode by pressing the \[aq]\[aq]exit
|
|
|
|
review\[aq]\[aq] shortcut.
|
|
|
|
#### review bottom
|
|
|
|
.PP
|
|
|
|
Set the review cursor to first column in the last line.
|
|
|
|
#### review top
|
|
|
|
.PP
|
|
|
|
Set the review cursor to the first column in the first line #### review
|
|
|
|
current line
|
|
|
|
.PP
|
|
|
|
Set the review cursor to the beginn of the the current line and review
|
|
|
|
it.
|
|
|
|
#### review previous line
|
|
|
|
.PP
|
|
|
|
Set the review cursor to the previous line and review it.
|
|
|
|
#### review next line
|
|
|
|
.PP
|
|
|
|
Set the review cursor to the next line and review it.
|
|
|
|
#### review line beginning
|
|
|
|
.PP
|
|
|
|
Set the review cursor to the begin of the current line #### review line
|
|
|
|
ending
|
|
|
|
.PP
|
|
|
|
Set the review cursor to the end of the current line #### review line
|
|
|
|
first character
|
|
|
|
.PP
|
|
|
|
Set the review cursor the first char (that is not space) in the current
|
|
|
|
line and review it.
|
|
|
|
#### review line last character
|
|
|
|
.PP
|
|
|
|
Set the review cursor the last char (that is not space) in the current
|
|
|
|
line and review it.
|
|
|
|
#### review current word
|
|
|
|
.PP
|
|
|
|
Sets the review cursor to the beginning of the current word and review
|
|
|
|
it.
|
|
|
|
#### review previous word
|
|
|
|
.PP
|
|
|
|
Sets the review cursor to the beginning of the previous word and review
|
|
|
|
it.
|
|
|
|
#### review next word
|
|
|
|
.PP
|
|
|
|
Sets the review cursor to the beginning of the next word and review it.
|
|
|
|
#### review current word phonetic
|
|
|
|
.PP
|
|
|
|
Sets the review cursor to the beginning of the current word and spell it
|
|
|
|
phonetic.
|
|
|
|
#### review previous word phonetic
|
|
|
|
.PP
|
|
|
|
Sets the review cursor to the beginning of the previous word and spell
|
|
|
|
it phonetic.
|
|
|
|
#### review next word phonetic
|
|
|
|
.PP
|
|
|
|
Sets the review cursor to the beginning of the next word and spell it
|
|
|
|
phonetic.
|
|
|
|
#### review current character
|
|
|
|
.PP
|
|
|
|
Does not change the review cursor.
|
|
|
|
Just announce the current char.
|
|
|
|
#### review previous character
|
|
|
|
.PP
|
|
|
|
Sets review cursor to the previous column and review it #### review next
|
|
|
|
character
|
|
|
|
.PP
|
|
|
|
Sets review cursor to the next column and review it #### review current
|
|
|
|
character phonetic
|
|
|
|
.PP
|
|
|
|
Does not change the review cursor.
|
|
|
|
Just announce the current char phonetic.
|
|
|
|
#### review previous character phonetic
|
|
|
|
.PP
|
|
|
|
Sets review cursor to the previous column and announce the char
|
|
|
|
phonetic.
|
|
|
|
#### review next character phonetic
|
|
|
|
.PP
|
|
|
|
Sets review cursor to the next column and announce the char phonetic.
|
|
|
|
#### review up
|
|
|
|
.PP
|
|
|
|
Set the review cursor in the same column one line above the current one
|
|
|
|
and review it.
|
|
|
|
#### review down
|
|
|
|
.PP
|
|
|
|
Set the review cursor in the same column one line below the current one
|
|
|
|
and review it.
|
|
|
|
### Handling marking
|
|
|
|
.PP
|
|
|
|
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:
|
|
|
|
.IP \[bu] 2
|
|
|
|
copy to clipboard
|
|
|
|
.IP \[bu] 2
|
|
|
|
set window application
|
|
|
|
.IP \[bu] 2
|
|
|
|
set bookmark 1 \- X #### Set mark
|
|
|
|
.PP
|
|
|
|
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 \[aq]\[aq]set mark\[aq]\[aq] 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
|
|
|
|
.PP
|
|
|
|
To get the text that is currently between your marks press shortcut for
|
|
|
|
\[aq]\[aq]marked text\[aq]\[aq].\\ #### Remove Marks
|
|
|
|
.PP
|
|
|
|
You can remove all current marks by pressing the shortcut for
|
|
|
|
\[aq]\[aq]remove marks\[aq]\[aq].
|
|
|
|
Changing the screen also removes the marks.
|
|
|
|
### Screen Interaction
|
|
|
|
.PP
|
|
|
|
Fenrir provides several methods to interact with the current screen.
|
|
|
|
#### forward keypress
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
You can remove all items from the current clipboard by \[aq]\[aq]clear
|
|
|
|
clipboard\[aq]\[aq] functionality.
|
|
|
|
##### first clipboard
|
|
|
|
.PP
|
|
|
|
This moves quick to the first item of the clipboard.
|
|
|
|
##### last clipboard
|
|
|
|
.PP
|
|
|
|
This moves quick to the last item of the clipboard.
|
|
|
|
##### previous clipboard
|
|
|
|
.PP
|
|
|
|
Go to previous item in the clipboard.
|
|
|
|
##### next clipboard
|
|
|
|
.PP
|
|
|
|
Go to next item on the clipboard.
|
|
|
|
##### read current clipboard
|
|
|
|
.PP
|
|
|
|
Read the content of the current item of the clipboard.
|
|
|
|
##### paste clipboard
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
Import a clipboard from a configurable file.
|
|
|
|
This is useful to share the clipboard with a graphical desktop.
|
|
|
|
### Quick Settings
|
|
|
|
.PP
|
|
|
|
Fenrir provides shortcuts to change settings temporarily and on the fly
|
|
|
|
without the need to permanently change the
|
|
|
|
\[aq]\[aq]settings.conf\[aq]\[aq] file.
|
|
|
|
#### toggle braille
|
|
|
|
.PP
|
|
|
|
Enables and disables Braille.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### toggle sound
|
|
|
|
.PP
|
|
|
|
Enables and disables sound.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### toggle speech
|
|
|
|
.PP
|
|
|
|
Enables and disables speech.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### disable speech temporarily
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
Cycle between all available punctuation levels.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### toggle auto spell check
|
|
|
|
.PP
|
|
|
|
Enables and disables automatic spellchecker (when typing).
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### toggle emoticons
|
|
|
|
.PP
|
|
|
|
Enables and disables emoticons.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
#### toggle output
|
|
|
|
.PP
|
|
|
|
Enables and disables all output at once (sound, Braille, speech).
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### toggle auto read
|
|
|
|
.PP
|
|
|
|
Enables and disables what is automatically spoken.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### toggle auto time
|
|
|
|
.PP
|
|
|
|
Enables and disables auto time functionality.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### toggle highlight tracking
|
|
|
|
.PP
|
|
|
|
Enables and disables highlight tracking.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during run time.
|
|
|
|
#### increase speech volume
|
|
|
|
.PP
|
|
|
|
Increase the volume of the speech.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
#### decrease speech volume
|
|
|
|
.PP
|
|
|
|
Decrease the volume of the speech.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
#### increase speech rate
|
|
|
|
.PP
|
|
|
|
Increase the rate of the speech.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
#### decrease speech rate
|
|
|
|
.PP
|
|
|
|
Decrease the rate of the speech.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
#### increase speech pitch
|
|
|
|
.PP
|
|
|
|
Increase the pitch of the speech.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
#### decrease speech pitch
|
|
|
|
.PP
|
|
|
|
Decrease the pitch of the speech.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
#### increase sound volume
|
|
|
|
.PP
|
|
|
|
Increase the volume of the sound.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
#### decrease sound volume
|
|
|
|
.PP
|
|
|
|
Decrease the volume of the sound.
|
|
|
|
This is not persistent stored in your \[aq]\[aq]settings.conf\[aq]\[aq]
|
|
|
|
but during runtime.
|
|
|
|
### Window Mode
|
|
|
|
.PP
|
|
|
|
Fenrir supports window mode, a window is a partial area of the screen.
|
|
|
|
#### Create Window
|
|
|
|
.PP
|
|
|
|
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 \[aq]\[aq]set window application\[aq]\[aq] shortcut.
|
|
|
|
Now Fenrir ignores anything outside of the window.\\ #### Remove Window
|
|
|
|
.PP
|
|
|
|
You can remove the window by pressing \[aq]\[aq]the clear window
|
|
|
|
application\[aq]\[aq] shortcut.
|
|
|
|
Now Fenrir will read everything on the screen again.
|
|
|
|
### Tracking Modes
|
|
|
|
.PP
|
|
|
|
Different types of tracking are currently supported See section
|
|
|
|
Focus (#Focus) in \[aq]\[aq]settings.conf\[aq]\[aq] for more
|
|
|
|
information.
|
|
|
|
#### Cursor Tracking
|
|
|
|
.PP
|
|
|
|
This follows the text cursor.
|
|
|
|
This is the typical way an application works.
|
|
|
|
This is used by:
|
|
|
|
.IP \[bu] 2
|
|
|
|
almost any shell such as (Bash, Zsh, sh)
|
|
|
|
.IP \[bu] 2
|
|
|
|
vim
|
|
|
|
.IP \[bu] 2
|
|
|
|
nano
|
|
|
|
.IP \[bu] 2
|
|
|
|
emacs
|
|
|
|
.IP \[bu] 2
|
|
|
|
mutt
|
|
|
|
.IP \[bu] 2
|
|
|
|
tintin++ #### Highlight Tracking
|
|
|
|
.PP
|
|
|
|
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:
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
*\ wifi\-menu
|
|
|
|
*\ dialog
|
|
|
|
*\ alpine
|
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.SS Tutorial Mode
|
|
|
|
.PP
|
|
|
|
Fenrir provides a Tutorial mode.
|
|
|
|
When you enter tutorial mode, screen reader commands are intercepted and
|
|
|
|
explained instead of executing them.
|
|
|
|
\[aq]\[aq]Arrow up\[aq]\[aq] and \[aq]\[aq]Arrow Down\[aq]\[aq] let you
|
|
|
|
navigate through a list of all available commands with shortcuts and
|
|
|
|
description.
|
|
|
|
Pressing escape leaves the tutorial mode.
|
|
|
|
.SS Information
|
|
|
|
.SS Time
|
|
|
|
.PP
|
|
|
|
Announces the current Time.
|
|
|
|
#### Date
|
|
|
|
.PP
|
|
|
|
Announces the current Date.
|
|
|
|
#### Bookmarks
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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 \[aq]\[aq]set bookmark X\[aq]\[aq].
|
|
|
|
X represents the number 1 \- 10.
|
|
|
|
##### read Bookmark X
|
|
|
|
.PP
|
|
|
|
If a bookmark is set you can access the area just by pressing the
|
|
|
|
\[aq]\[aq]bookmark X\[aq]\[aq] shortcut.
|
|
|
|
X represents the number 1 \- 10.
|
|
|
|
Bookmarks are dynamic.
|
|
|
|
That means the content changes with the screen.
|
|
|
|
##### clear Bookmark X
|
|
|
|
.PP
|
|
|
|
to remove a bookmark just press the \[aq]\[aq]clear bookmark X\[aq]\[aq]
|
|
|
|
shortcut.
|
|
|
|
X represents the number 1 \- 10.
|
|
|
|
Afterward the bookmark is no longer available.
|
|
|
|
#### cursor position
|
|
|
|
.PP
|
|
|
|
You can get information about the current cursor and its position by
|
|
|
|
using the "cursor position" functionality.
|
|
|
|
#### indent current line
|
|
|
|
.PP
|
|
|
|
Announce the current indent level of the current line.
|
|
|
|
It represents the number of trailing spaces of the line.
|
|
|
|
#### current screen
|
|
|
|
.PP
|
|
|
|
Reads all the current screen from the beginning to the end.
|
|
|
|
#### current screen before cursor
|
|
|
|
.PP
|
|
|
|
Reads current screen from the beginning of the screen to the current
|
|
|
|
cursor position.
|
|
|
|
#### current screen after cursor
|
|
|
|
.PP
|
|
|
|
Read anything after current cursor position to the end.
|
|
|
|
#### cursor read to end of line
|
|
|
|
.PP
|
|
|
|
Read from the current cursor position to the end of the current line.
|
|
|
|
#### cursor column
|
|
|
|
.PP
|
|
|
|
Read the current X position of a cursor (column of the current line).
|
|
|
|
#### cursor line number
|
|
|
|
.PP
|
|
|
|
Read the current Y position of a cursor (line number).
|
|
|
|
#### present first line
|
|
|
|
.PP
|
|
|
|
Reads just the first line.
|
|
|
|
this is maybe useful for status information.
|
|
|
|
#### present last line
|
|
|
|
.PP
|
|
|
|
Presets the last line.
|
|
|
|
This is maybe useful for status information.
|
|
|
|
#### last incoming
|
|
|
|
.PP
|
|
|
|
Repeat the last automatically incoming text.
|
|
|
|
## Input
|
|
|
|
.SS Echo
|
|
|
|
.PP
|
|
|
|
Fenrir provides different methods of echoing content:
|
|
|
|
.IP \[bu] 2
|
|
|
|
Word: Will speak each word after you push space
|
|
|
|
.IP \[bu] 2
|
|
|
|
Character: speak any letter you type on the screen
|
|
|
|
.IP \[bu] 2
|
|
|
|
Delete Character: speaks the character prior to the cursor when you push
|
|
|
|
backspace ### Silence on Key press
|
|
|
|
.SS Spellchecker
|
|
|
|
.PP
|
|
|
|
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\-\f[C]<language>\f[].
|
|
|
|
See section General (#General) in \[aq]\[aq]settings.conf\[aq]\[aq] for
|
|
|
|
more information.
|
|
|
|
#### spell check
|
|
|
|
.PP
|
|
|
|
Invokes the spellcheck on the word that contains the Review or text
|
|
|
|
cursor.
|
|
|
|
#### add word to spell check
|
|
|
|
.PP
|
|
|
|
Adds the word under the Review or Text cursor to the dictionary.
|
|
|
|
#### removes word from spell check
|
|
|
|
.PP
|
|
|
|
Removes the word under the Review or Text cursor from the dictionary.
|
|
|
|
## Announcements
|
|
|
|
.SS Emoticons
|
|
|
|
.PP
|
|
|
|
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 \[aq]\[aq]settings.conf\[aq]\[aq] to
|
|
|
|
see how to enable or disable this feature.
|
|
|
|
.SS Time
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
Example periodic, every 20 minutes "delaySec=20":
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
[time]
|
|
|
|
enabled=True
|
|
|
|
presentTime=True
|
|
|
|
presentDate=True
|
|
|
|
delaySec=20
|
|
|
|
onMinutes=
|
|
|
|
announce=True
|
|
|
|
interrupt=False\ \ \ \
|
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.PP
|
|
|
|
Example on fix minutes in an hour.
|
|
|
|
example every quarter "delaySec=0" and "onMinutes=00,15,30,45":
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
[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\ \ \ \ \ \
|
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.SS Promoted List
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PD 0
|
|
|
|
.P
|
|
|
|
.PD
|
|
|
|
inactiveTimeoutSec=120 list=Chrys See section Promote (#Promote) in
|
|
|
|
\[aq]\[aq]settings.conf\[aq]\[aq] for more information.
|
|
|
|
### Punctuation
|
|
|
|
.PP
|
|
|
|
Fenrir handles punctuation levels and names for you with several
|
|
|
|
provided dictionaries.
|
|
|
|
.PP
|
|
|
|
See levelDict See punctuationDict ## Braille
|
|
|
|
.PP
|
|
|
|
Fenrir provides Braille support in Version >= 2.0.
|
|
|
|
See section Braille (#Braille) in \[aq]\[aq]settings.conf\[aq]\[aq] for
|
|
|
|
more information.
|
|
|
|
### braille flush
|
|
|
|
.PP
|
|
|
|
If a message appears on the Braille device you can flush it to get back
|
|
|
|
to the review\- or system cursor ### Braille pan left
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
You can make use of different kinds of built\-in dictionary\[aq]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
|
|
|
|
.SS Level
|
|
|
|
.PP
|
|
|
|
The punctuation level dict contains lists with "what punctuation is
|
|
|
|
spoken in what level".
|
|
|
|
the default one looks like this: [levelDict] none:===:
|
|
|
|
some:===:.\-$~+*\-/\\\@ most:===:.,:\-$~+*\-/\@!#%^&\f[I]()[]}{\f[C]<>\f[];
|
|
|
|
all:===:!"#$%& \[aq]()\f[]+,\-./:;\f[C]<=>\f[]?\@[\\]^_`{|}~ 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
|
|
|
|
.PP
|
|
|
|
The punctuation dictionary "[punctDict]" contains how the punctuation is
|
|
|
|
spoken.
|
|
|
|
Example: [punctDict] \f[I]:===:line
|
|
|
|
.PD 0
|
|
|
|
.P
|
|
|
|
.PD
|
|
|
|
speaks an \f[] as "line".
|
|
|
|
.PD 0
|
|
|
|
.P
|
|
|
|
.PD
|
|
|
|
[punctDict] \f[I]:===:underscore speaks an \f[] as underscore.
|
|
|
|
for question mark an ?
|
|
|
|
is appended to the word that the TTS system can announce the question
|
|
|
|
correctly.
|
|
|
|
.PD 0
|
|
|
|
.P
|
|
|
|
.PD
|
|
|
|
### Custom
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
You can configure Fenrir in the following places (ordered by priority):
|
|
|
|
1.
|
|
|
|
Commandline Parameters \[aq]\[aq]\-o\[aq]\[aq] see Set settings
|
|
|
|
coption (#Set%20settings%20coption) 2.
|
|
|
|
/etc/fenrir/settings/settings.conf see Settigns (#Settings) 3.
|
|
|
|
\f[C]<sourceTree>\f[]/config/settings/settings.conf see
|
|
|
|
Settigns (#Settings) 4.
|
|
|
|
hard coded defaults ## Commandline Arguments
|
|
|
|
.SS Set settings option
|
|
|
|
.PP
|
|
|
|
You can specify options that overwrite the setting.conf.
|
|
|
|
This is done with \[aq]\[aq]\-o \f[C]<list\ of\ options>\f[] parameter.
|
|
|
|
The list of options have the following syntax fenrir \-o
|
|
|
|
"section#setting=value;section#setting=value"
|
|
|
|
.PP
|
|
|
|
For example changing the sound driver to gstreamer and disabling Braille
|
|
|
|
.PD 0
|
|
|
|
.P
|
|
|
|
.PD
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.SS Settings
|
|
|
|
.SS Sound
|
|
|
|
.PP
|
|
|
|
The sound is configured in section \[aq]\[aq]sound (#sound)\[aq]\[aq].
|
|
|
|
.PP
|
|
|
|
Turn sound on or off: enabled=True Values: on=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Select the driver used to play sounds.
|
|
|
|
The genericDriver using Sox is the default.
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
driver=genericDriver
|
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.PP
|
|
|
|
Available Drivers:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]genericDriver\[aq]\[aq] using the generic driver, for Fenrir
|
|
|
|
<1.5 just use \[aq]\[aq]generic\[aq]\[aq]
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]gstreamerDriver\[aq]\[aq] using the gstreamer, for Fenrir <1.5
|
|
|
|
just use \[aq]\[aq]gstreamer\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
These are the pack of sounds used for sound icons.
|
|
|
|
theme=default By default we ship two sound packs.
|
|
|
|
1.
|
|
|
|
\[aq]\[aq]default\[aq]\[aq] opus encoded, for newer Sox versions 2.
|
|
|
|
\[aq]\[aq]default\-wav\[aq]\[aq] wav encoded, just for compatibility
|
2018-06-17 18:22:16 -04:00
|
|
|
Sound packs are located at /usr/share/sounds/fenrirscreenreader/
|
2017-08-23 15:32:48 -04:00
|
|
|
.PP
|
|
|
|
Sound volume controls how loud the sounds for your selected sound pack
|
|
|
|
are.
|
|
|
|
volume=1.0 Values: \[aq]\[aq]0.0\[aq]\[aq] is quietest,
|
|
|
|
\[aq]\[aq]1.0\[aq]\[aq] is loudest.
|
|
|
|
.SS Generic Driver
|
|
|
|
.PP
|
|
|
|
The generic sound driver uses shell commands for play sound and
|
|
|
|
frequencies.
|
|
|
|
.PP
|
|
|
|
\[aq]\[aq]genericPlayFileCommand\[aq]\[aq] defines the command that is
|
|
|
|
used to play a sound file.
|
|
|
|
genericPlayFileCommand=\f[C]<your\ command\ for\ playing\ a\ file>\f[]
|
|
|
|
\[aq]\[aq]genericFrequencyCommand\[aq]\[aq] defines the command that is
|
|
|
|
used playing frequencies.
|
|
|
|
genericFrequencyCommand=\f[C]<your\ command\ for\ playing\ a\ frequence>\f[]
|
|
|
|
.PP
|
|
|
|
The following variables are substituted in
|
|
|
|
\[aq]\[aq]genericPlayFileCommand\[aq]\[aq] and
|
|
|
|
\[aq]\[aq]genericFrequencyCommand\[aq]\[aq]:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirVolume\[aq]\[aq] = the current volume setting
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirSoundFile\[aq]\[aq] = the sound file for an sound icon
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirFrequence\[aq]\[aq] = the frequency to play
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirDuration\[aq]\[aq] = the duration of the frequency
|
|
|
|
.PP
|
|
|
|
Example genericPlayFileCommand (default) genericPlayFileCommand=play \-q
|
|
|
|
\-v fenrirVolume fenrirSoundFile Example genericFrequencyCommand
|
|
|
|
(default) genericFrequencyCommand=play \-q \-v fenrirVolume \-n \-c1
|
|
|
|
synth fenrirDuration sine fenrirFrequence ### Speech
|
|
|
|
.PP
|
|
|
|
Speech is configured in section \[aq]\[aq][speech]\[aq]\[aq].
|
|
|
|
Turn speech on or off: enabled=True Values: on=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.SH Select speech driver, options are speechdDriver (default),
|
|
|
|
genericDriver or espeakDriver:
|
|
|
|
.PP
|
|
|
|
driver=speechdDriver #driver=espeakDriver
|
|
|
|
.SH driver=genericDriver
|
|
|
|
.PP
|
|
|
|
Select the driver used to generate speech output.
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
driver=speechdDriver
|
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.PP
|
|
|
|
Available Drivers:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]genericDriver\[aq]\[aq] using the generic driver, for Fenrir
|
|
|
|
<1.5 this is not available
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]speechdDriver\[aq]\[aq] using speech\-dispatcher, for Fenrir
|
|
|
|
<1.5 just use \[aq]\[aq]speechd\[aq]\[aq]
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]espeakDriver\[aq]\[aq] using the espeak directly, for Fenrir
|
|
|
|
<1.5 just use \[aq]\[aq]espeak\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
The rate selects how fast Fenrir will speak.
|
|
|
|
rate=0.65 Values: Range Minimum:\[aq]\[aq]0.0\[aq]\[aq] is slowest,
|
|
|
|
Maximum:\[aq]\[aq]1.0\[aq]\[aq] is fastest.
|
|
|
|
.PP
|
|
|
|
Pitch controls the pitch of the voice.
|
|
|
|
pitch=0.5 Values: Range Minimum:\[aq]\[aq]0.0\[aq]\[aq] is lowest,
|
|
|
|
Maximum:\[aq]\[aq]1.0\[aq]\[aq] is highest.
|
|
|
|
.PP
|
|
|
|
A Pitch for capital letters can be set.
|
|
|
|
capitalPitch=0.9 Values: Range Minimum:\[aq]\[aq]0.0\[aq]\[aq] is
|
|
|
|
lowest, Maximum:\[aq]\[aq]1.0\[aq]\[aq] is highest.
|
|
|
|
.PP
|
|
|
|
The Volume controls the loudness of the voice.
|
|
|
|
volume=1.0 Values: Range Minimum:\[aq]\[aq]0.0\[aq]\[aq] is quietest,
|
|
|
|
Maximum:\[aq]\[aq]1.0\[aq]\[aq] is loudest.
|
|
|
|
.PP
|
|
|
|
Some speech drivers like speechdDriver can support various modules.
|
|
|
|
these can be set here.
|
|
|
|
module=espeak Values: Text, Consult speech\-dispatcher\[aq]s
|
|
|
|
configuration to see what modules are available.
|
|
|
|
.PP
|
|
|
|
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.
|
|
|
|
.PP
|
|
|
|
Select the language you want Fenrir to use.
|
|
|
|
language=english\-us Values: Text, see your TTS synths documentation
|
|
|
|
what is available.
|
|
|
|
.PP
|
|
|
|
Read new text as it occurs autoReadIncoming=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.SS Generic Driver
|
|
|
|
.PP
|
|
|
|
The generic speech driver uses shell commands for speech synthisus.
|
|
|
|
.PP
|
|
|
|
\[aq]\[aq]genericSpeechCommand\[aq]\[aq] defines the command that is
|
|
|
|
executed for creating speech The following variables are substituted in
|
|
|
|
\[aq]\[aq]genericSpeechCommand\[aq]\[aq]:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]FenrirText\[aq]\[aq] = is the text that should be spoken
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirModule\[aq]\[aq] = may be the speech module like used in
|
|
|
|
speech\-dispatcher, not every TTY needs this
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirLanguage\[aq]\[aq] = the language to speak in
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirVoice\[aq]\[aq] = is the current voice that should be
|
|
|
|
used
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirVolume\[aq]\[aq] = is replaced with the current volume
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirPitch\[aq]\[aq] = is replaced with the current pitch
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fenrirRate\[aq]\[aq] = is replaced with the current speed
|
|
|
|
(speech rate)
|
|
|
|
.PP
|
|
|
|
Example genericSpeechCommand (default): genericSpeechCommand=espeak \-a
|
|
|
|
fenrirVolume \-s fenrirRate \-p fenrirPitch \-v fenrirVoice "fenrirText"
|
|
|
|
.PP
|
|
|
|
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.
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
FenrirMinVolume=0
|
|
|
|
fenrirMaxVolume=200
|
|
|
|
fenrirMinPitch=0
|
|
|
|
fenrirMaxPitch=99
|
|
|
|
fenrirMinRate=80
|
|
|
|
fenrirMaxRate=450
|
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.PP
|
|
|
|
The current volume, pitch and rate is calculated like this value = min +
|
|
|
|
[volume,pitch,rate] * (min \- max ) ### Braille
|
|
|
|
.PP
|
|
|
|
Braille is a WIP and not ready yet.
|
|
|
|
Braille support can be configured in section
|
|
|
|
\[aq]\[aq][braille]\[aq]\[aq].
|
|
|
|
.PP
|
|
|
|
Turn braille on or off: enabled=False Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Select the driver used for communication with a braille device.
|
|
|
|
driver=brlapiDriver Values: Text, available Driver Available Drivers:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]brlttyDriver\[aq]\[aq] using brltty for braille communication,
|
|
|
|
for Fenrir <1.5 just use \[aq]\[aq]brltty\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
The Braille layout can be configured here layout=en Values: Text, see
|
|
|
|
braille driver for layouts.
|
|
|
|
.PP
|
|
|
|
What should the flush timeout relate to flushMode=word Values: Text, an
|
|
|
|
flushMode Existing flushModes:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]word\[aq]\[aq] = flush after (number of words to display) *
|
|
|
|
seconds
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]char\[aq]\[aq] = flush after (number of chars to display) *
|
|
|
|
seconds
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fix\[aq]\[aq] = flush after X seconds
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]none\[aq]\[aq] = no automatic flush (manual via shortcut)
|
|
|
|
.PP
|
|
|
|
Seconds to flush (see flushMode) flushTimeout=3 Values: Integer, in
|
|
|
|
Seconds or \[aq]\[aq]\-1\[aq]\[aq] = no automatic flush (manual via
|
|
|
|
shortcut) The total flush time calculates in relation to flushMode.
|
|
|
|
.PP
|
|
|
|
How should the Braille cursor focus be tracked?
|
|
|
|
cursorFocusMode=page Values: Text, an existing cursor focus mode
|
|
|
|
Available cursor focus modes:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]page\[aq]\[aq] = if the cursor crosses the border move to next
|
|
|
|
page and start at begin
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]fixCell\[aq]\[aq] = ajust the cursor on a special cell where
|
|
|
|
it is always placed.
|
|
|
|
the display scroll here more smooth.
|
|
|
|
.PP
|
|
|
|
Define the cell on the Braille device where Fenrir should scroll and
|
|
|
|
keep the cursor fixCursorOnCell=\-1 Values: Integer
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]0\[aq]\[aq] = first cell on device,
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]\-1\[aq]\[aq] = last cell on device
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]>0\[aq]\[aq] = fix cell number
|
|
|
|
.PP
|
|
|
|
What cursor should Fenrir show on the Braille device
|
|
|
|
cursorFollowMode=review Values: Text, an exsiting cursor following mode.
|
|
|
|
Existing cursor following mode:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]none\[aq]\[aq] = no automatic toggle command used
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]review\[aq]\[aq] = priority to review
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]last\[aq]\[aq] = follow last used cursor
|
|
|
|
.PP
|
|
|
|
number of cells in panning (horizontal).
|
|
|
|
How many cell should be panned on press the routing key?
|
|
|
|
panSizeHorizontal=0 Values: Integer,
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]0\[aq]\[aq] = display size
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]>0\[aq]\[aq] number of cells ### Screen
|
|
|
|
.PP
|
|
|
|
The settings for screens, (TTY, PTY) are configured in the
|
|
|
|
\[aq]\[aq][screen]\[aq]\[aq] section.
|
|
|
|
.PP
|
|
|
|
The driver to get the information from the screen: driver=vcsaDriver
|
|
|
|
Available Drivers:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]vcsaDriver\[aq]\[aq] using the VCSA driver (for TTYs), for
|
|
|
|
Fenrir <1.5 just use \[aq]\[aq]vcsa\[aq]\[aq] The encoding of the screen
|
|
|
|
encoding=cp850 Values:\[aq]\[aq]cp850\[aq]\[aq] is used for Western
|
|
|
|
languages like USA or Europe.
|
|
|
|
.PP
|
|
|
|
The driver updates Fenrir with changes on the screen.
|
|
|
|
screenUpdateDelay=0.05 Values: in Seconds
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
\[aq]\[aq],\[aq]\[aq] with: suspendingScreen= Values: Depends on driver:
|
|
|
|
.IP \[bu] 2
|
|
|
|
VCSA: the number of the TTY.
|
|
|
|
TTY6 is \[aq]\[aq]6\[aq]\[aq].
|
|
|
|
Example ignore TTY1 and TTY2: suspendingScreen=1,2
|
|
|
|
.PP
|
|
|
|
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=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.SS Keyboard
|
|
|
|
.PP
|
|
|
|
The settings for keyboard and input related configuration is located in
|
|
|
|
the section \[aq]\[aq]keyboard (#keyboard)\[aq]\[aq] of the
|
|
|
|
\[aq]\[aq]settings.conf\[aq]\[aq] file.
|
|
|
|
.PP
|
|
|
|
Select the driver used for grabbing keybord input and for recieving
|
|
|
|
shortcuts.
|
|
|
|
driver=evdevDriver Values: Text, available Driver Available Drivers:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]evdevDriver\[aq]\[aq] uses the evdev input system of linux,
|
|
|
|
for Fenrir <1.5 just use \[aq]\[aq]evdev\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
You can let Fenrir know about what input devices are to be used.
|
|
|
|
device=ALL Values:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]ALL\[aq]\[aq] use all devices with key capabilities.
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]NOMICE\[aq]\[aq] Exclude mices from handling.
|
|
|
|
.IP \[bu] 2
|
|
|
|
\f[C]<Device\ Name>\f[] just use the device with the given name.
|
|
|
|
.PP
|
|
|
|
Gives Fenrir exclusive access to the keyboard and lets it control
|
|
|
|
keystrokes.
|
|
|
|
This is needed to intercept Fenrir related shortcuts.
|
|
|
|
grabDevices=True Values: on=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
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=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
\[aq]\[aq]/etc/fenrir/keyboard\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Announce characters while typing.
|
|
|
|
charEcho=False Values: on=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Announce deleted characters charDeleteEcho=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Announce word after pressing space wordEcho=False Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Interrupt speech on any keypress interruptOnKeyPress=False Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
You can filter the keys that speech should interrupt
|
|
|
|
interruptOnKeyPressFilter= Values: (List) empty = all keys, otherwise
|
|
|
|
interrupt with specified keys
|
|
|
|
.PP
|
|
|
|
The timeout that is used for double tap shortcuts doubleTapTimeout=0.2
|
|
|
|
Values: Seconds ### General
|
|
|
|
.PP
|
|
|
|
Overall settings can be configured from the section
|
|
|
|
\[aq]\[aq]general (#general)\[aq]\[aq].
|
|
|
|
.PP
|
|
|
|
Set the current debug level: debugLevel=1 Values: off=0, error=1,
|
|
|
|
warning=2, info=3
|
|
|
|
.PP
|
|
|
|
the current punctuation and dict file in use: punctuationProfile=default
|
|
|
|
Values: Text, see available profiles in
|
|
|
|
\[aq]\[aq]/etc/fenrir/punctuation\[aq]\[aq] or in
|
|
|
|
\[aq]\[aq]sourceTree/config/punctuation\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
The current punctuation level in use: punctuationLevel=some Values:
|
|
|
|
Text, See available levels in the used punctuation file.
|
|
|
|
.PP
|
|
|
|
Respect pause for punctuations: respectPunctuationPause=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Add a pause on Line break: newLinePause=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Specify the path where the clipboard should be exported to.
|
|
|
|
See export clipboard to file (#export%20clipboard%20to%20file).
|
|
|
|
The variable \[aq]\[aq]$user\[aq]\[aq] is replaced by the current logged
|
|
|
|
username.
|
|
|
|
clipboardExportPath=/tmp/fenrirClipboard Values: Text, Systemfilepath
|
|
|
|
.PP
|
|
|
|
The number of available clipboards: numberOfClipboards=10 Values:
|
|
|
|
Integer, 1 \- 999
|
|
|
|
.PP
|
|
|
|
Replace emoticons like :) or ;) with text insertions: emoticons=True
|
|
|
|
Values: on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Define the current Fenrir keys: fenrirKeys=KEY_KP0,KEY_META,KEY_INSERT
|
|
|
|
Values, Text list, separated by comma.
|
|
|
|
.PP
|
|
|
|
Define the current script keys: scriptKey=KEY_COMPOSE Values, Text list,
|
|
|
|
separated by comma.
|
|
|
|
.PP
|
|
|
|
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)
|
|
|
|
.PP
|
|
|
|
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)
|
|
|
|
.PP
|
|
|
|
Enable or Disable spellcheck whilst typing: autoSpellCheck=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
The use of the dictionary with spellcheck: spellCheckLanguage=en_US
|
|
|
|
Values: Text, see aspell dictionary\[aq]s.
|
|
|
|
.PP
|
|
|
|
Folder Path for your scripts "scriptKey" functionality:
|
2018-06-17 18:22:16 -04:00
|
|
|
scriptPath=/usr/share/fenrirscreenreader/scripts Values: Text, Existing path on file
|
2017-08-23 15:32:48 -04:00
|
|
|
system.
|
|
|
|
.PP
|
|
|
|
Override commands or create new ones without changing the Fenrir
|
2018-06-17 18:22:16 -04:00
|
|
|
defaults: commandPath=/usr/share/fenrirscreenreader/commands Values: Text, Existing
|
2017-08-23 15:32:48 -04:00
|
|
|
path on file system.
|
|
|
|
Subfolders in commandPath are:
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]commands\[aq]\[aq] = to create shortcut commands
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]onInput\[aq]\[aq] = executed while typing
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]onScreenChange\[aq]\[aq] = executed on change the screen
|
|
|
|
(change from TTY4 to TTY6)
|
|
|
|
.IP \[bu] 2
|
|
|
|
\[aq]\[aq]onScreenUpdate\[aq]\[aq] = executed when the screen is
|
|
|
|
captured
|
|
|
|
.SS Focus
|
|
|
|
.PP
|
|
|
|
The configuration for basic focus is in the section
|
|
|
|
\[aq]\[aq]focus (#focus)\[aq]\[aq].
|
|
|
|
Follow the text cursor: cursor=True Values: on=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Follow highlighted text changes (Highlight Tracking): highlight=False
|
|
|
|
Values: on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq] ###
|
|
|
|
Review
|
|
|
|
.PP
|
|
|
|
Configurations for the review mode are in the section
|
|
|
|
\[aq]\[aq][review]\[aq]\[aq].
|
|
|
|
.PP
|
|
|
|
If "next word/ char" or "prev word/char" create a linebreak, announce
|
|
|
|
it: lineBreak=True Values: on=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
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=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Leave the review mode when pressing a key: leaveReviewOnKeypress=False
|
|
|
|
Values: on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Leave the review mode when changing the screen (From TTY3 to TTY4):
|
|
|
|
leaveReviewOnScreenChange=True Values: on=\[aq]\[aq]True\[aq]\[aq],
|
|
|
|
off=\[aq]\[aq]False\[aq]\[aq] ### Promote
|
|
|
|
.PP
|
|
|
|
"Promoted Lists" are configured in the section
|
|
|
|
\[aq]\[aq][promote]\[aq]\[aq].
|
|
|
|
Turn Promoted Lists" on or off: enabled=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
The minimum time interval of inactivity to activate promoting.
|
|
|
|
By default it promotes after 120 Seconds inactivity:
|
|
|
|
inactiveTimeoutSec=120 Values: in Seconds
|
|
|
|
.PP
|
|
|
|
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,$:,#:
|
|
|
|
.SS Time
|
|
|
|
.PP
|
|
|
|
The automated time announcement is configured in the section
|
|
|
|
\[aq]\[aq]time (#time-2)\[aq]\[aq].
|
|
|
|
Time announcement is disabled by default.
|
|
|
|
Turn time announcement on or off: enabled=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Should the time be announced: presentTime=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Should the date be announced (just on date change): presentDate=True
|
|
|
|
Values: on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Announce after a given period of seconds: delaySec=0 Value: in Seconds,
|
|
|
|
0 = Deactivated
|
|
|
|
.PP
|
|
|
|
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
|
|
|
|
.PP
|
|
|
|
Just play a soundicon, (not interrupting): announce=True Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Interrupt current speech for time announcement: interrupt=False Values:
|
|
|
|
on=\[aq]\[aq]True\[aq]\[aq], off=\[aq]\[aq]False\[aq]\[aq] #
|
|
|
|
Customization
|
|
|
|
.SS Scripting
|
|
|
|
.PP
|
|
|
|
Scripts can be in any language, bash, python, sh or others.
|
2018-06-17 18:22:16 -04:00
|
|
|
Place your scripts in the directory /usr/share/fenrirscreenreader/scripts/ (the path
|
2017-08-23 15:32:48 -04:00
|
|
|
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 \f[B]\-\f[].
|
|
|
|
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
|
2018-06-17 18:22:16 -04:00
|
|
|
/usr/share/fenrirscreenreader/scripts/weather__\-__key_w.py Then, to access the
|
2017-08-23 15:32:48 -04:00
|
|
|
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.
|
|
|
|
.SS Parameterlist
|
|
|
|
.PP
|
|
|
|
.TS
|
|
|
|
tab(@);
|
|
|
|
l l.
|
|
|
|
T{
|
|
|
|
Parameter
|
|
|
|
T}@T{
|
|
|
|
Content
|
|
|
|
T}
|
|
|
|
_
|
|
|
|
T{
|
|
|
|
$1
|
|
|
|
T}@T{
|
|
|
|
Username of the current logged in user
|
|
|
|
T}
|
|
|
|
.TE
|
|
|
|
.SS Examples
|
|
|
|
.PP
|
|
|
|
Script that just speaks the current username when pressing ScriptKey +
|
|
|
|
H.\\ File:
|
2018-06-17 18:22:16 -04:00
|
|
|
\[aq]\[aq]/usr/share/fenrirscreenreader/scripts/helloWorld__\-__key_h.sh\[aq]\[aq]:
|
2017-08-23 15:32:48 -04:00
|
|
|
#!/bin/bash echo $1
|
|
|
|
.SS Commands
|
|
|
|
.PP
|
2018-06-17 18:22:16 -04:00
|
|
|
You can place your own commands in "/usr/share/fenrirscreenreader/commands" (path is
|
2017-08-23 15:32:48 -04:00
|
|
|
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:
|
|
|
|
.IP
|
|
|
|
.nf
|
|
|
|
\f[C]
|
|
|
|
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\ _(\[aq]No\ description\ found\[aq])
|
|
|
|
\ \ def\ run(self):
|
|
|
|
\ \ \ \ \ \ pass
|
|
|
|
\ \ def\ setCallback(self,\ callback):
|
|
|
|
\ \ \ \ \ \ pass
|
|
|
|
\f[]
|
|
|
|
.fi
|
|
|
|
.IP \[bu] 2
|
|
|
|
Template lives
|
|
|
|
here (https///github.com/chrys87/fenrir/blob/master/src/fenrir/commands/command_template.py)
|
|
|
|
.IP \[bu] 2
|
|
|
|
The class needs to have the name "command".
|
|
|
|
.IP \[bu] 2
|
|
|
|
"initialize" is running once whilst loading the command.
|
|
|
|
.IP \[bu] 2
|
|
|
|
"shutdown" is running on unload like the command (quit fenrir)
|
|
|
|
.IP \[bu] 2
|
|
|
|
"getDescriptsion" just returns an string.
|
|
|
|
That String is used in Tutorial Mode.
|
|
|
|
.IP \[bu] 2
|
|
|
|
"run" is executed when the command is invoked.
|
|
|
|
(shortcut is pressed, or trigger isn\[aq]t running)
|
|
|
|
.IP \[bu] 2
|
|
|
|
setCAllback is currently not used.
|
|
|
|
and has no functionality yet.
|
|
|
|
.SH Troubleshooting
|
|
|
|
.SS Fenrir does not start
|
|
|
|
.IP " 1." 4
|
|
|
|
Have you installed all the dependencies Support and
|
|
|
|
Requirements (#Support%20and%20Requirements)
|
|
|
|
.IP " 2." 4
|
|
|
|
Try using master, a lot of changes take place there to make Fenrir
|
|
|
|
compatible with more systems ## Fenrir does not utilize the shortcuts
|
|
|
|
.IP " 3." 4
|
|
|
|
Make sure you have python3\-evdev installed
|
|
|
|
.IP " 4." 4
|
|
|
|
Use the latest Fenrir version
|
|
|
|
.IP " 5." 4
|
|
|
|
Make sure that Fenrir has permission to /dev/input/* and /dev/uinput (or
|
|
|
|
run it as root) ## No sound at all
|
|
|
|
.IP " 6." 4
|
|
|
|
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 \[aq]\[aq]tools/configure_pulse.sh\[aq]\[aq]
|
|
|
|
.IP " 7." 4
|
|
|
|
Use ALSA
|
|
|
|
.IP " 8." 4
|
|
|
|
Configure Pulse system
|
|
|
|
wide (https///www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/)
|
|
|
|
(Not recommended)
|
|
|
|
.IP " 9." 4
|
|
|
|
Use gstreamerDriver: change \[aq]\[aq]settings.conf\[aq]\[aq] in the
|
|
|
|
section \[aq]\[aq]sound\[aq]\[aq] the line
|
|
|
|
\[aq]\[aq]driver=genericDriver\[aq]\[aq] to
|
|
|
|
\[aq]\[aq]driver=gstreamerDriver\[aq]\[aq]
|
|
|
|
.IP "10." 4
|
|
|
|
Use wave sound\-icons: change \[aq]\[aq]settings.conf\[aq]\[aq] in the
|
|
|
|
section \[aq]\[aq]sound\[aq]\[aq] the line
|
|
|
|
\[aq]\[aq]theme=default\[aq]\[aq] to
|
|
|
|
\[aq]\[aq]theme=default\-wav\[aq]\[aq]
|
|
|
|
.IP "11." 4
|
|
|
|
Use most current version of sox (http://sox.sourceforge.net/) with opus
|
|
|
|
support
|
|
|
|
.IP "12." 4
|
|
|
|
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
|
|
|
|
.IP "13." 4
|
|
|
|
If you are using speech\-dispatcher run "spd\-conf" once as user and as
|
|
|
|
root.
|
|
|
|
.IP "14." 4
|
|
|
|
You can test if speech\-dispatcher works by invoking it as root\\
|
|
|
|
\[aq]\[aq]sudo spd\-say "hello world"\[aq]\[aq] ## Bugreports and
|
|
|
|
feature requests
|
|
|
|
.PP
|
|
|
|
Please report Bugs and feature requests to:
|
|
|
|
https://github.com/chrys87/fenrir/issues (https///github.com/chrys87/fenrir/issues)
|
|
|
|
.PP
|
|
|
|
for bugs please provide a debug (#Howto%20create%20a%20debug%20file)
|
|
|
|
file that shows the issue.
|
|
|
|
### How\-to create a debug file
|
|
|
|
.IP "1." 3
|
|
|
|
Delete old debug stuff\\ \[aq]\[aq]sudo rm /var/log/fenrir.log\[aq]\[aq]
|
|
|
|
.IP "2." 3
|
|
|
|
Start fenrir in debug mode\\ \[aq]\[aq]sudo fenrir \-d\[aq]\[aq]
|
|
|
|
.IP "3." 3
|
|
|
|
Do your stuff to reproduce the problem
|
|
|
|
.IP "4." 3
|
|
|
|
Stop fenrir (\[aq]\[aq]fenrirKey + q\[aq]\[aq]) the debug file is
|
|
|
|
located in \[aq]\[aq]/var/log/fenrir.log\[aq]\[aq]
|
|
|
|
.PP
|
|
|
|
Please be as precise as possible to make it easy to solve the problem.
|