When moving the braille window around the screen while examining the text, say, in an editor, you often need to bring the cursor to a specific character within the braille window. You'll probably find this to be a rather difficult task for a number of reasons. One is that you may not know where the cursor is, and that you may lose your place while trying to find it. Another is that the cursor may move unpredictably as the arrow keys are pressed (some editors, for example, don't allow the cursor to be more to the right than the end of the line it's on). Cursor routing provides just such a capability by knowing where the cursor is, by simulating the same arrow-key presses which you'd have to enter manually, and by monitoring the progress of the cursor as it moves.
Some braille displays have a button, known as a routing key, above each cell. These keys use the ROUTE command to route the cursor right to the desired location.
Cursor routing, while very convenient and effective,
is, strictly speaking, not completely reliable.
One reason for this is that its current implementation assumes
VT100 cursor key escape sequences.
Another is that some applications do non-standard things
in response to detecting that a cursor key has been pressed.
A minor problem found within some editors (like vi
),
as already mentioned above,
is that they throw in some unpredictable horizontal motion
when vertical motion is requested
because they don't allow the cursor to be to the right of the end of a line.
A major problem found within some web browsers (like lynx
)
is that the up- and down-arrow keys are used to move among the links
(which may skip lines and/or move the cursor horizontally,
but which rarely just moves the cursor one line in the desired direction),
and that the left- and right-arrow keys are used to select links
(which has absolutely nothing to do with any form of cursor motion whatsoever,
and which even totally changes the screen content).
Cursor routing may not work very well on a heavily loaded system, and definitely doesn't work very well when working on a remote system over a slow link. This is so because of all of the checks which must be made along the way in order to deal with unpredictable cursor motion and in order to ensure that any mistake has at least a fighting chance to be undone. Even though BRLTTY tries to be fairly clever, it must still essentially wait to see what happens after each simulated arrow-key press.
Once a cursor routing request has been made, BRLTTY keeps trying to route the cursor to the desired location until a timeout expires before the cursor reaches that location, the cursor seems to be moving in the wrong direction, or you switch to a different virtual terminal. An attempt is first made to use vertical motion to bring the cursor to the right line, and, only if that succeeds, an attempt is then made to use horizontal motion to bring the cursor to the right column. If another request is made while one is still in progress, then the first one is aborted and the second one is initiated.
A safer but less powerful cursor routing command,
CSRJMP_VERT,
uses just vertical motion to bring the cursor
to anywhere on the top line of the braille window.
It's especially useful in conjunction with applications (like lynx
)
wherein horizontal cursor motion must never be attempted.
This feature enables you to grab some text which is already on the screen and re-enter it at the current cursor position. Using it saves time and avoids errors when a long and/or complicated piece of text needs to be copied, and even when the same short and simple piece of text needs to be copied many times. It's particularly useful for things like long file names, complicated command lines, E-mail addresses, and URLs. Cutting and pasting text involves three simple steps:
vi
's command mode),
then you'd better be aware of what the characters in the cut buffer will do.The cut buffer is also used by the PRSEARCH/NXSEARCH commands.
If BRLTTY is configured with the
--enable-gpm build option
on a system where the gpm
application has been installed,
then it'll interact with the pointer (mouse).
Moving the pointer drags the braille window (see the Window Follows Pointer preference). Whenever the pointer is moved beyond the edge of the braille window, the braille window is dragged along (one character at a time). This gives the braille user another two-dimensional way to inspect the screen content or to quickly move the braille window to a desired location. It also gives a sighted observer an easy way to move the braille window to something he'd like the braille user to read.
gpm
uses reverse video to show where the pointer is.
Underlining of highlighted characters
(see the
ATTRVIS command for details)
should be turned on, therefore, when the braille user wishes to use the pointer.
This feature also gives the braille user access to gpm
's cut-and-paste capability.
Although you should read gpm
's own documentation,
here are some notes on how it works.
BRLTTY alerts you to the occurrence of significant events by playing short predefined tunes. This feature can be activated and deactivated with either the TUNES command or the Alert Tunes preference. The tunes are played via the internal beeper by default, but other alternatives can be selected with the Tune Device preference.
Each significant event is associated, from highest to lowest priority, with one or more of the following:
If a tune has been associated with the event, if the Alert Tunes preference (see also the TUNES command) is active, and if the selected tune device (see the Tune Device preference) can be opened, then the tune is played.
If a dot pattern has been associated with the event, and if the Alert Dots preference is active, then the dot pattern is briefly displayed on every braille cell. Some braille displays don't respond quickly enough for this mechanism to work effectively.
If a message has been associated with the event, and if the Alert Messages preference is active, then it is displayed for a few seconds (see the -M command line option).
These events include:
When BRLTTY starts, it loads a file which contains your preferences settings. The file doesn't need to exist, and is created the first time the settings are saved with the PREFSAVE command. The most recently saved settings can be restored at any time with the PREFLOAD command.
The name for this file is /etc/brltty-
driver.prefs
.
where driver is the two-letter
driver identification code.
The preferences settings are saved as binary data which, therefore, can't be edited by hand. BRLTTY, however, has a simple menu from which you can easily change them.
The menu is activated by the PREFMENU command. The braille display briefly (see the -M command line option) shows the menu title, and then presents the current item and its current setting.
See Menu Navigation Commands for the full list of commands which enable you to select items and change settings within the menu. For backward compatibility with old drivers, the window motion commands, which have modified meanings in this context, can also be used.
TOP
/BOT
, TOP_LEFT
/BOT_LEFT
, PAGE_UP
/PAGE_DOWN
Go to the first/last item in the menu (same as MENU_FIRST_ITEM/MENU_LAST_ITEM).
LNUP
/LNDN
, PRDIFLN
/NXDIFLN
, CURSOR_UP
/CURSOR_DOWN
Go to the previous/next item in the menu (same as MENU_PREV_ITEM/MENU_NEXT_ITEM).
WINUP
/WINDN
, CHRLT
/CHRRT
, CURSOR_LEFT
/CURSOR_RIGHT
, BACK
/HOME
Decrement/increment the current menu item's setting (same as MENU_PREV_SETTING/MENU_NEXT_SETTING).
Notes:
PREFLOAD
command to undo all of the changes
which were made since entering the menu.PREFMENU
command (again) to leave the new settings in effect,
exit the menu, and resume normal operation.
If the "Save Settings on Exit" item is set, then, in addition,
the new settings are written to the preferences settings file.
Any command not recognized by the menu system also does these same things.
When exiting the preferences menu:
Don't automatically save the preferences settings.
Automatically save the preferences settings.
No
.
When displaying screen content (see the DISPMD command), show characters:
With all eight dots.
With only dots 1 through 6. If a contraction table has been selected (see the -c command line option and the contraction-table configuration file directive), then it is used.
When moving either up or down exactly one line with the LNUP/LNDN commands, as well as the line wrapping feature of the FWINLT/FWINRT and FWINLTSKIP/FWINRTSKIP commands:
Don't skip past lines which have the same content as the current line.
Skip past lines which have the same content as the current line.
When moving either left or right with the FWINLT/FWINRT commands:
Don't skip past blank windows.
Skip past blank windows.
If blank windows are to be skipped:
Skip all of them.
Only skip those which are at the end (on the right side) of a line.
Only skip those which are at the end (on the right side) of a line when reading forward, and at the beginning (on the left side) of a line when reading backward.
If the cursor is being tracked (see the CSRTRK command), and the cursor moves too close to (or beyond) either end of the braille window:
Horizontally reposition the window such that its left end is a multiple of its width from the left edge of the screen.
Horizontally reposition the window such that the cursor, while remaining on that side of the window, is nearer the centre.
If the braille window is to slide:
Reposition it whenever the cursor moves beyond either end.
Reposition it whenever the cursor moves too close to either end.
No
.
When moving either left or right with
the
FWINLT/FWINRT commands,
this setting specifies how many characters
horizontally adjacent braille windows should overlap each other by.
The initial setting is 0
.
While the key (combination) for a command remains pressed:
Don't automatically repeat the command.
Automatically repeat the command at a regular interval after an initial delay.
Yes
.
When the Autorepeat preference is enabled:
Don't autorepeat braille window panning operations.
Autorepeat braille window panning operations.
No
.
When a character is to be autorepeated,
this setting specifies the amount of time
(see the note on
time settings below)
which must pass before autorepeating begins.
The initial setting is 50
.
When a character is being autorepeated,
this setting specifies the amount of time
(see the note on
time settings below)
between each reexecution.
The initial setting is 10
.
When displaying screen content (see the DISPMD command):
Don't show the cursor.
Show the cursor.
Yes
.
When showing the cursor, represent it:
With dots 7 and 8.
With all eight dots.
When the cursor is to be shown:
Leave it visible all the time.
Make it alternately visible and invisible according to a predefined interval.
When the cursor is to be blinked, this setting specifies the length of time
(see the note on
time settings below)
during each cycle that it is to be visible.
The initial setting is 40
.
When the cursor is to be blinked, this setting specifies the length of time
(see the note on
time settings below)
during each cycle that it is to be invisible.
The initial setting is 40
.
When displaying screen content (see the DISPMD command):
Don't underline highlighted characters.
Underline highlighted characters.
When highlighted characters are to be underlined:
Leave the indicator visible all the time.
Make the indicator alternately visible and invisible according to a predefined interval.
When the highlighted character underline is to be blinked,
this setting specifies the length of time
(see the note on
time settings below)
during each cycle that it is to be visible.
The initial setting is 20
.
When the highlighted character underline is to be blinked,
this setting specifies the length of time
(see the note on
time settings below)
during each cycle that it is to be invisible.
The initial setting is 60
.
When displaying screen content (see the DISPMD command):
Leave capital letters visible all the time.
Make capital letters alternately visible and invisible according to a predefined interval.
When capital letters are to be blinked,
this setting specifies the length of time
(see the note on
time settings below)
during each cycle that they're to be visible.
The initial setting is 60
.
When capital letters are to be blinked,
this setting specifies the length of time
(see the note on
time settings below)
during each cycle that they're to be invisible.
The initial setting is 20
.
Adjust the firmness (or stiffness) of the braille dots. It can be set to:
Medium
.
Adjust the sensitivity of the braille dots to touch. It can be set to:
Medium
.
When moving the pointer device (mouse):
Don't drag the braille window.
Drag the braille window.
When moving the braille window:
Don't highlight the new screen area.
Highlight the new screen area.
Whenever a significant event with an associated tune occurs (see Alert Tunes):
Don't play the tune.
Play the tune.
Yes
.
Play alert tunes via:
The internal beeper (console tone generator). This setting is supported on Linux, on OpenBSD, on FreeBSD, and on NetBSD. It's always safe to use, although it may be somewhat soft. This device isn't available if the --disable-beeper-support build option was specified.
The digital audio interface on the sound card.
This setting is supported
on Linux (via /dev/dsp
),
on Solaris (via /dev/audio
),
on OpenBSD (via /dev/audio0
),
on FreeBSD (via /dev/dsp
),
and on NetBSD (via /dev/audio0
).
It doesn't work when this device is already being used
by another application.
This device isn't available if the
--disable-pcm-support build option was specified.
The Musical Instrument Digital Interface on the sound card
This setting is supported
on Linux (via /dev/sequencer
).
It doesn't work when this device is already being used
by another application.
This device isn't available if the
--disable-midi-support build option was specified.
The FM synthesizer on an AdLib, OPL3, Sound Blaster, or equivalent sound card. This setting is supported on Linux. It works even if the FM synthesizer is already being used by another application. The results are unpredictable, and potentially not very good, if it's used with a sound card which doesn't support this feature. This device isn't available if the --disable-fm-support build option was specified.
Beeper
on those platforms which support it,
and PCM
on those platforms which don't.
If the digital audio interface of the sound card
is being used to play the alert tunes,
this setting specifies the loudness
(as a percentage of the maximum)
at which they are to be played.
The initial setting is 70
.
If the Musical Instrument Digital Interface (MIDI) of the sound card
is being used to play the alert tunes,
this setting specifies the loudness
(as a percentage of the maximum)
at which they are to be played.
The initial setting is 70
.
If the Musical Instrument Digital Interface (MIDI) of the sound card
is being used to play the alert tunes,
this setting specifies which instrument is to be used
(see the
MIDI Instrument Table).
The initial setting is Acoustic Grand Piano
.
If the FM synthesizer of the sound card
is being used to play the alert tunes,
this setting specifies the loudness
(as a percentage of the maximum)
at which they are to be played.
The initial setting is 70
.
Whenever a significant event with an associated dot pattern occurs (see Alert Tunes):
Don't display the dot pattern.
Briefly display the dot pattern.
Whenever a significant event with an associated message occurs (see Alert Tunes):
Don't display the message.
Display the message.
When using the SAY_LINE command:
Discard pending speech.
Don't discard pending speech.
Immediate
.
Only speak when explicitly requested to do so.
Automatically speak:
No
.
Adjust the speech rate
(0
is the slowest, 20
is the fastest).
This preference is only available if a driver which supports it is being used.
This setting can also be changed with
the
SAY_SLOWER/SAY_FASTER commands.
The initial setting is 10
.
Adjust the speech volume
(0
is the softest, 20
is the loudest).
This preference is only available if a driver which supports it is being used.
This setting can also be changed with
the
SAY_SOFTER/SAY_LOUDER commands.
The initial setting is 10
.
Adjust the speech pitch
(0
is the lowest, 20
is the highest).
This preference is only available if a driver which supports it is being used.
The initial setting is 10
.
Adjust the amount of punctuation which is spoken. It can be set to:
Some
.
This setting specifies the way that the status cells are to be used. You shouldn't normally need to play with it. It enables BRLTTY's developers to test status cell configurations for braille displays which they don't actually have.
Don't use the status cells. This setting is always safe, but it's also quite useless.
The status cells contain:
The location of the cursor (see below).
The location of the top-left corner of the braille window (see below).
A letter indicating BRLTTY's state. In order of precedence:
a
(for 1) through y
(for 25).
Dots 7 and 8 (the extra two at the bottom)
represent the horizontal braille window number as follows:
The first (leftmost) window.
The second window.
The third window.
The fourth window.
a
, and the fifth horizontal
braille window is represented by no dots at the bottom.
The status cells contain:
The columns (counting from 1) of the cursor (shown in the top half of the cells) and the top-left corner of the braille window (shown in the bottom half of the cells).
The rows (counting from 1) of the cursor (shown in the top half of the cells) and the top-left corner of the braille window (shown in the bottom half of the cells).
Each dot indicates if a feature is turned on as follows:
The screen image is frozen (see the FREEZE command).
Screen attributes are being displayed (see the DISPMD command).
Alert tunes are being played (see the TUNES command).
The cursor is being shown (see the CSRVIS command).
The cursor is a solid block (see the CSRSIZE command).
The cursor is blinking (see the CSRBLINK command).
The cursor is being tracked (see the CSRTRK command).
The braille window will slide (see the SLIDEWIN command).
The status cells contain:
The row (counting from 1) corresponding to the top of the braille window. The tens digit is shown in the top half of the cell, and the units digit is shown in the bottom half of the cell.
This setting passes a lot of information to the braille driver, and the driver itself decides how to present it.
The status cells contain:
The location of the top-left corner of the braille window. The row (counting from 1) is shown in the top half of the cells, and the column (counting from 1) is shown in the bottom half of the cells.
The status cells contain:
The row (counting from 1) corresponding to the top of the braille window (see below).
The row (counting from 1) whereon the cursor is (see below).
If the screen is frozen
(see the
FREEZE command),
then the letter F
.
If it isn't, then
the column (counting from 1) wherein the cursor is (see below).
Select the text table. See section Text Tables for details. See the -t command line option for the initial setting. This preference isn't saved.
Select the attributes table. See section Attributes Tables for details. See the -a command line option for the initial setting. This preference isn't saved.
Select the contraction table. See section Contraction Tables for details. See the -c command line option for the initial setting. This preference isn't saved.
Select the keyboard table. See section Key Tables for details. See the -k command line option for the initial setting. This preference isn't saved.
Notes:
The status display is a summary of BRLTTY's current state which fits completely within the braille window. Some braille displays have a set of status cells which are used to permanently display some of this information as well (see the documentation for your display's driver). The data presented by this display isn't static, and may change at any time in response to screen updates and/or BRLTTY commands.
Use the INFO command to switch to the status display, and use it again to return to the screen. The layout of the information contained therein is dependent on the size of the braille window.
Short pneumonics have been used, even though they're rather cryptic, in order to show the precise column layout.
wx:wy cx:cy vt tcmfdu
:
wyThe column and row (counting from 1) on the screen corresponding to the top-left corner of the braille window.
:
cyThe column and row (counting from 1) on the screen corresponding to the position of the cursor.
The number (counting from 1) of the current virtual terminal.
The state of the cursor tracking feature (see the CSRTRK command).
Cursor tracking is off.
t
Cursor tracking is on.
The state of the cursor visibility features (see the CSRVIS and CSRBLINK commands).
The cursor isn't visible, and won't blink when made visible.
b
The cursor isn't visible, and will blink when made visible.
v
The cursor is visible, and isn't blinking.
B
The cursor is visible, and is blinking.
The current display mode (see the DISPMD command).
t
Screen content (text) is being displayed.
a
Screen highlighting (attributes) is being displayed.
The state of the frozen screen feature (see the FREEZE command).
The screen isn't frozen.
f
The screen is frozen.
The number of braille dots being used to display each character (see the SIXDOTS command).
8
All eight dots are being used.
6
Only dots 1 through 6 are being used.
The state of the uppercase (capital letter) display features (see the CAPBLINK command).
Uppercase letters don't blink.
B
Uppercase letters blink.
Short pneumonics have been used, even though they're rather cryptic, in order to show the precise column layout.
xxyys vt tcmfdu
The columns (counting from 1) on the screen corresponding to the position of the cursor (shown in the top half of the cells) and to the top-left corner of the braille window (shown in the bottom half of the cells).
The rows (counting from 1) on the screen corresponding to the position of the cursor (shown in the top half of the cells) and to the top-left corner of the braille window (shown in the bottom half of the cells).
The settings of some of BRLTTY's features. A feature is turned on if its corresponding dot is raised.
Frozen screen image (see the FREEZE command).
Display attributes (see the DISPMD command).
Alert tunes (see the TUNES command).
Visible cursor (see the CSRVIS command).
Block cursor (see the CSRSIZE command).
Blinking cursor (see the CSRBLINK command).
Cursor tracking (see the CSRTRK command).
Sliding window (see the SLIDEWIN command).
The number (counting from 1) of the current virtual terminal.
The state of the cursor tracking feature (see the CSRTRK command).
Cursor tracking is off.
t
Cursor tracking is on.
The state of the cursor visibility features (see the CSRVIS and CSRBLINK commands).
The cursor isn't visible, and won't blink when made visible.
b
The cursor isn't visible, and will blink when made visible.
v
The cursor is visible, and isn't blinking.
B
The cursor is visible, and is blinking.
The current display mode (see the DISPMD command).
t
Screen content (text) is being displayed.
a
Screen highlighting (attributes) is being displayed.
The state of the frozen screen feature (see the FREEZE command).
The screen isn't frozen.
f
The screen is frozen.
The number of braille dots being used to display each character (see the SIXDOTS command).
8
All eight dots are being used.
6
Only dots 1 through 6 are being used.
The state of the uppercase (capital letter) display features (see the CAPBLINK command).
Uppercase letters don't blink.
B
Uppercase letters blink.
Command learn mode is an interactive way to learn what the keys on the braille display do. It can be accessed either by the LEARN command or via the brltest utility. This feature isn't available if the --disable-learn-mode build option was specified.
When this mode is entered,
the message command learn mode
is written to the braille display.
Then, as each key (or key combination) on the display is pressed,
a short message describing its BRLTTY function is written.
This mode exits immediately if the key (or key combination)
for the
LEARN command is pressed.
It exits automatically, and the message done
is written,
if ten seconds elapse without any key on the display being pressed.
Note that some displays don't signal the driver
and/or some drivers don't signal BRLTTY
until all the keys are released.
If a message is longer than the braille display is wide, then it's displayed in segments. The length of each segment but the last is one less than the display's width, with the rightmost character on the display being set to a minus sign. Each such segment remains on the display either for a few seconds (see the -M command line option) or until any key on the display is pressed.