| ~~~~~~~~~~~~~~~ |
| BRLTTY with X11 |
| ~~~~~~~~~~~~~~~ |
| |
| .. include:: prologue.rst |
| .. _Orca: https://help.gnome.org/users/orca/stable/ |
| |
| BRLTTY provides some support for the X11 graphical environment. |
| |
| Braille Input |
| ============= |
| |
| From the Braille Device |
| ----------------------- |
| |
| Some braille devices have an integrated braille keyboard. BRLTTY alone can't |
| properly simulate keypresses for the X11 server because it doesn't know which |
| keyboard layout the latter is using. In order to achieve proper keyboard |
| simulation, ``xbrlapi`` should be started in the background during ``X`` |
| session startup. |
| |
| By default, ``xbrlapi`` also writes the title of the current window to the |
| braille device. To avoid this (since it could interfere with output from screen |
| readers like `Orca`_), give the ``-q`` (quiet) option to ``xbrlapi``. |
| |
| From the PC Keyboard |
| -------------------- |
| |
| The PC keyboard can be used, when in X11, as a braille keyboard. This |
| capability can be enabled by using the ``brai`` layout. For example:: |
| |
| setxkbmap -layout "us,brai" -option "grp:shift_caps_toggle,grp_led:scroll" |
| |
| enables both the ``US`` and the ``braille`` keyboard layouts in two different |
| XKB groups), and Shift+CapsLock will switch between them. The scroll LED will |
| be lit while in ``braille`` mode so that sighted users will be alerted as to |
| why they may be getting unexpected output if they switch groups by accident. |
| Other shortcuts and LEDs can also be used (see the XKB documentation). |
| |
| The default keyboard mapping for braille dots is:: |
| |
| f j |
| d k |
| s l |
| a ; |
| |
| but other layouts are also available (see the variants in XKB). |
| |
| Applications then need to be "told" to use the standard X11 Input Module. This |
| can be done by setting:: |
| |
| export GTK_IM_MODULE=xim |
| export QT_IM_MODULE=xim |
| export XMODIFIERS=@im=xim |
| |
| This is, however, not enough for recent gnome desktops, which also need to |
| run:: |
| |
| gsettings set org.gnome.settings-daemon.plugins.keyboard active false |
| |
| The ``setxkbmap`` command (above) only enables the ``braille`` layout for the |
| current session. For persistent configuration, the two groups must be |
| configured properly in the system. On Debian, for example, this can be achieved |
| by setting the following in ``/etc/default/keyboard``:: |
| |
| XKBLAYOUT="us,brai" |
| XKBOPTIONS="grp:shift_caps_toggle,grp_led:scroll" |
| |
| By default, the result is Unicode braille patterns because X11 doesn't know |
| which braille table it should be using. To tell X11 the conversion that should |
| be performed, use the ``brltty-ttb`` tool to convert your BRLTTY text table |
| into an XCompose table. For example:: |
| |
| brltty-ttb -i ttb -o XCompose en_US /tmp/my.XCompose |
| |
| The ``XCompose`` table can then be enabled by:: |
| |
| cat /tmp/my.XCompose >> ~/.XCompose |
| |
| Reading the Screen |
| ================== |
| |
| BRLTTY isn't meant to be able to read a whole graphical environment as it |
| doesn't have the notion of menus, buttons, etc. The `Orca`_ screen reader |
| should be used instead. BRLTTY, however, has a driver that can at least review |
| the textual elements (edit boxes, terminals). This is particularly useful for |
| reading terminals since that's what BRLTTY is good at. This can be achieved by |
| running a second BRLTTY during X11 session startup:: |
| |
| brltty -b ba -x as |
| |
| This second BRLTTY connects to the first one via BrlAPI (thanks to the ``ba`` |
| braille driver), and reads the screen via AtSpi (thanks to the ``as`` screen |
| driver). An ``a2`` screen driver is also provided for AtSpi2 support. |