Note: this file is in reversed chronological order (bottom to top).


December 22, 2015:
 - BRLTTY 5.3.1 released:
   Linux screen driver fix:
      Some consoles couldn't be accessed due to an I/O error.
   Android fix:
      The preference settings can be saved.
   HIMS braille driver changes:
      Autodetecting the braille device's model has been improved.
      Keys that a model doesn't have are no longer listed within its help text.
      Support for qwerty keyboards has been improved.
      The scroll key bindings have been harmonized across all models.
   Key table changes:
      The -a (--audit) option has been added to brltty-ktb.
      Duplicate key bindings have been removed.
      The "uppercase" command modifier has been renamed to "upper".
      The following directives have been added:
         beginVariables, endVariables, ignore, listVariables

December 15, 2015:
 - BRLTTY 5.3 released:
   General fixes:
      The missing key event (stuck key) problem has been resolved.
      The braille display is now initialized when the -q (--quiet) option is used.
      Playing alert tunes has been moved to a dedicated thread.
      PCM (sound card) tone generation is now way more efficient.
      Program-relative paths are no longer used for relative paths specified via
         command line options or configuration file directives.
      Explicit paths for tables no longer consider the tables directory path.
      The -U (--updatable-directory) option has been added (it used to be
         hard-coded to /var/lib/brltty/).
      Braille driver parameters may be specified via the fourth boot parameter
         (use + to separate them).
      The speech FIFO on Linux has been moved to the writable directory (see -W -
         the default is /var/run/brltty/).
      The Console Bell Alert preference has been added - when enabled, and with
         the tune device set to PCM, the console bell can be heard even if the PC
         speaker either doesn't exist or isn't supported.
   New and changed commands:
      The toLeft modifier can be applied to any vertical motion command.
      The AltGr (Right Alt) and GUI (Windows) keys are supported.
      The PRPGRPH (go to previous paragraph) command navigates to the first line
         of the current paragraph (or, if already on it, to the first line of the
         previous paragraph) rather than to the last line of the previous
         paragraph.
      The space bar is a real space (rather than a braille character with no dots)
         when the keyboard is in Unicode braille input mode.
      Disabling the braille keyboard now disables all braille input commands.
      New commands that always skip forward/backward to a nonblank braille window:
         NXNBWIN, PRNBWIN
      Sticky modifier command improvements:
         Cycle through next,on,off (rather than just on,off) - next means just for
         the next typed character, and times out after five seconds.
      New commands to start/stop the braille,speech,screen drivers:
         BRL_START, BRL_STOP, SPK_START, SPK_STOP, SCR_START, SCR_STOP
      New commands for attaching to a specific (not necessarily current) console:
         SELECT, SELECT_NEXT, SELECT_PREV
   Albatross braille driver changes:
      Detection of no pending input has been improved.
      Recognizing a failed autodetection probe has been improved.
   Alva braille driver changes:
      Establishing a Bluetooth connection is now supported for more models.
   Baum braille driver changes:
      The standard braille keyboard chords are supported.
      The Refreshabraille has an improved key table.
      The Conny has an improved key table.
      The 12-cell Vario/BrailleConnect now uses the Conny key table.
      The protocols= parameter has been renamed to protocol= and accepts a
         specific protocol name (default, escape, hid1, hid2, ht, pb).
      Support for the following models has been added:
         VarioUltra, Pronto!, Brailliant2, SuperVario2, HID Refreshabraille 18
   BrailleMemo braille driver changes:
      Model autodetection has been improved.
   FreedomScientific braille driver changes:
      The key tables for newer models use the newer key names:
         The wheels are called Nav keys.
         The GDF keys are called Selector keys.
   HandyTech braille driver changes:
      Touch-based navigation has been implemented for the following models:
         Modular Evolution, Active Braille, Active Star
   HIMS braille driver changes:
      Function keys can be emulated by pressing space with a routing key.
      The Braille Sense U2 is recognized.
      The Braille Edge scroll keys are now mapped correctly.
   HumanWare braille driver changes:
      Bindings for adding Alt, Control, or both to a function key have been added.
   MDV braille driver changes:
      The bindings are now defined within key tables.
      Support for the following models has been added:
         Lilli Blu, MB248, MB408+
   Papenmeier braille driver changes:
      The status key bindings have been standardized across the various models.
      Minor changes to the front key bindings (for models with 13).
      XT keyboard support has been fixed.
   XWindow braille driver changes:
      Support for the Unicode braille characters has been added.
   AtSpi2 screen driver changes:
      The widget with focus on startup is determined correctly.
      The currently focused widget is cached for efficiency.
      The screen size is implicitly increased based on the cursor's location.
      The release= (yes, no) parameter has been added.
   Linux screen driver changes:
      VGA foreground and background colours are now reported correctly.
      A font change now triggers a braille display update.
      The VT= (number) parameter has been added - 0 means the current console.
      Systemd is no longer blocked from starting a login session on an unused tty.
   Screen screen driver changes:
      ASCII control characters can now be entered.
   BrlAPI changes:
      The version is now 0.6.4 (it was 0.6.3).
      Cursor blinking finally works again.
      The braille display is refreshed whenever it comes back online if the client
         has focus.
   Language profile support fixes:
      The language profile can now be changed when there's no braille device.
      The braille device and keyboard key table help texts are regenerated
         according to the new localization when the language profile is changed.
   Text table changes:
      The en_CA (English Canada) text table has been updated.
      The fr-vs (VisioBraille) text table has been updated.
      The alias directive has been added.
      Support for the variable and conditional directives has been added.
      The -u (--undefined) option has been added to brltty-ttb - it reports
         the characters in the current screen font that aren't yet defined in the
         text table.
      brltty-ttb can write C preprocessor format (cpp) tables.
   Contraction table changes:
      The Unicode braille characters are now handled internally.
      The en-us-g2 (grade 2 US English) contraction table has been updated.
      The zh-tw (Taiwan Chinese) contraction table has been updated.
   Key table changes:
      Major chords key subtable changes:
         Tab is now Space+Dots45 (it was Space+Dots2356).
         Backspace is now just Dot7, and Enter is now just Dot8.
         Add Space to get just dot 7 or just dot 8.
         Unchorded bindings have been added for navigating the preferences menu:
            Dot1: go to the previous item
            Dot4: go to the next item
            Dot2: go to the first item
            Dot5: go to the last item
            Dot3: select the previous setting for the current item
            Dot6: select the next setting for the current item
            Dot7: go back one level
            Dot8: exit the menu
      Minor changes to the keypad keyboard table.
      The assignDefault directive has been added.
      The -r (--reStructuredText) option has been added to brltty-ktb - it causes
         the help text to be formatted as reStructuredText.
      The help text has been improved:
         Related bindings have been organized into functional groups.
         Each of these groups has a descriptive header.
         Variants of the same binding are listed together.
         The bindings for Help and Learn are intentionally listed at the top.
   Java bindings fixes:
      The JDK hierarchy is located even when symbolic links point to it.
      The subdirectory containing machine-dependent JNI definitions is included.
   Android updates:
      F9 goes to the Global Actions (Power Off) dialog (Lollipop and later).
      F10 is the Menu key.
      The braille display stays in the active window (new problem as of Lollipop).
      The order in which screen elements are rendered is more intuitive.
      Czech translations have been added.
      Finnish translations have been added.
   Windows updates:
      Support for the Unicode braille characters has been added.
   brltty-tune (formerly tunetest) changes:
      The tune syntax has been completely changed.
      Tunes can be read from files.
   Build changes:
      The autoconf dependency has been updated to 2.64 (from 2.53).
      The ktbtest command has been renamed to brltty-ktb.
      The tunetest command has been renamed to brltty-tune.
      The brltty-atb, brltty-ktb, and brltty-tune commands are installed.
      Key table help text is rendered in HTML (as well as in plain text).
      Systemd service ready notification (via type=notify) is supported.
      mkwin command updates:
         The -C (Cygwin root directory) option has been added.
         A safe, relative path to the configure script can now be used.

November 6, 2014:
 - BRLTTY 5.2 released:
   General Fixes:
      Unexpected cursor tracking when switching virtual consoles has been resolved.
      The PASSPS2 command has (finally) been implemented.
      An infrastructure for defining custom commands has been added.
      A braille update is now forced when the braille device comes back online.
      All speech-related delays have been removed.
      Language profiles have been implemented (see README.Profiles).
      The following log categories have been added:
         brldrv  Braille Driver Events
         spkdrv  Speech Driver Events
         scrdrv  Screen Driver Events
         all     a pseudo-category that enables all categories
         -name   disable a log category (especially useful after specifying all)
   New Commands:
      BRLKBD                 Set the braille keyboard enabled/disabled.
      PASTE_HISTORY          paste from the clipboard's history
      SET_TEXT_TABLE         directly select a text table
      SET_ATTRIBUTES_TABLE   directly select an attributes table
      SET_CONTRACTION_TABLE  directly select a contraction table
      SET_KEYBOARD_TABLE     directly select a keyboard table
      SET_LANGUAGE_PROFILE   directly select a language profile
      ALERT                  play a specific alert tune (used internally)
   New Braille Drivers:
      The Hedo [hd] driver has been added (MobilLine and ProfilLine models).
   Alva Braille Driver:
      The BC's Windows key has been bound to the Escape key.
      Key Repeat and Secondary Cursor Row Emulation are now automatically disabled.
      The driver has been updated to use newer core facilities.
   BrailleMemo Braille Driver:
      The key bindings have been changed.
      The BM Smart can now connect via USB.
   BrailleNote Braille Driver:
      The APEX is now recognized when connected via USB.
      The APEX routing keys are now handled.
      Text input in Input Mode is now supported.
   EuroBraille Braille Driver:
      The Protocol= parameter now recognizes "esysiris".
      A number of USB connectivity issues have been resolved.
   FreedomScientific Braille Driver:
      A number of USB connectivity issues have been resolved.
   HandyTech Braille Driver:
      The key combination LeftSpace+Dot7 has been bound to the Backspace key.
      Support for the following new models has been added:
         Active Star 40, Modular Connect 88, Connect Braille 40
   Iris Braille Driver:
      A possible crash when woken up in packet forward mode has been resolved.
      Key bindings have been added for the (new) PASTE_HISTORY command.
      The LatchDelay= parameter has been added.
      The driver has been updated to use newer core facilities.
   Metec Braille Driver:
      Support for status cells has been added.
      The driver has been updated to use newer core facilities.
   Papenmeier Braille Driver:
      Support for the Live and Live+ models has been added.
      Support for keyboards in Windows mode has been added.
      The two braille keyboard thumb keys have been remapped:
         LeftThumb now functions as the control key.
         RightThumb now functions as the left alt key.
   TSI Braille Driver:
      Key tables (rather than hard-coded bindings) are now used.
      The repeat delay and rate can now be controlled from the preferences menu.
      The HighBaud=yes/no parameter has been added.
      The SetBaud= parameter has been added.
      The driver has been updated to use newer core facilities.
   BrlAPI Updates:
      Now at release 0.6.3.
      Support for the XDG_VTNR environment variable has been added.
   USB Updates:
      All endpoint I/O is now deferred until after the strings have been read.
      The strings are now encoded in UTF-8 (rather than in Latin1).
      Asynchronous endpoint input errors are now detected.
      Detaching the kernel's driver via libusb is now supported.
      Detaching the kernel's driver via libusb-1.0 is now supported.
      Reading from an endpoint via libusb-1.0 now works again.
      Native Linux support now works on big endian platforms.
      The braille driver is restarted on Linux if the serial adapter is unplugged.
   Preferences Menu Changes:
      The "Save on Exit" selector has been moved back to the top of the root menu.
      The MENU_PREV_LEVEL command when in the root menu now exits the menu.
      File extensions are no longer shown in the table selectors.
      The Keyboard Table selector has been added.
      The Profiles submenu has been added.
      The Build Information advanced submenu has been added.
      The Tools advanced submenu has been added.
   Text Tables:
      no-oub (Norwegian) has been renamed to no-oup.
      no-oup is now the default Norwegian table.
   Contraction Tables:
      Unicode combining characters are now handled.
      Best fit (rather than explicit) character matching is now done.
      The "contraction" opcode no longer applies if even one non-punctuation
         character either precedes or follows the sequence.
      Updated Tables:
         de-kurzschrift (German)
         en-us-g2 (English US Grade 2)
   Key Tables:
      Contexts can now have meaningful names.
      Including a subtable can no longer change the context of the including table.
   Android Changes:
      The version code and version name are now set.
      The occasional crash on service startup has been resolved.
      Bluetooth devices that don't implement service discovery are now supported.
   DOS Changes:
      The configuration file has been renamed to brltty.cfg (from brltty.con).
      The log file is now created in BRLTTY's top-level directory.
      The log file is now written cleanly.
      The "page fault on program termination" problem has been resolved.
      The mkdosarc and mkdostools scripts have been added.
   Windows Changes:
      The mkwin script has been made much more flexible.
      brltty.inf has been renamed to brltty-libusb.inf.
      brltty.nsi has been renamed to libusb.nsi.
   Build Changes:
      The --with-keyboard-package option has been renamed to --with-kbd-package.
      The PKG_CONFIG environment variable (pkg-config command path) is honoured.
      A patch for screen-4.2.1 has been added.
      The tables have been moved into separate subdirectories of /etc/brltty/:
         Attributes/   attributes tables
         Contraction/  contraction tables
         Input/        braille driver tables
         Keyboard/     keyboard tables
         Text/         text tables

March 27, 2014:
 - BRLTTY 5.1 released:
   General Changes:
      An alert (2 beeps every 30 seconds) is now played when the screen is frozen.
      Saving the preferences file now adds comments showing the possible values
      (and the default value) for each property.
      USB device identifiers now support the genericDevices= (yes, no) parameter.
   Command Changes:
      Unicode braille dots input is now supported:
         The BRLUCDOTS toggle command has been added.
         The "Braille Input Mode" preference has been added to "Input Options".
      Skip Blank Windows now works like Skip Identical Lines:
         FWINLT/FWINRT are unchanged:
            If SBW is off then don't skip blank windows.
            If SBW is on then honour Skip Blank Windows Mode.
         FWINLTSKIP/FWINRTSKIP now work as follows:
            If SBW is off then honour Skip Blank Windows Mode.
            If SBW is on then don't skip blank windows.
   The FreedomScientific Braille Driver:
      Various problems with detecting a connection error have been resolved.
      A problem causing a braille display freeze has been resolved.
   The Papenmeier Braille Driver:
      The following bindings have been added for models with 22 status cells:
         Binding        Command
         Status20       BRLUCDOTS
         Dot7+Status20  BRLUCDOTS+off
         Dot8+Status20  BRLUCDOTS+on
   The Application Programming Interface (BrlAPI):
      The version has been increased to 0.6.2 (from 0.6.1).
      The retainDots= parameter has been removed.
      The PASSDOTS command is no longer implicitly accepted by default.
      Explicitly accepting PASSDOTS bypasses the conversion to PASSCHAR.
   Environment Variables:
      BRLTTY_NO_API (yes, no) is now supported.
   The Configuration File (brltty.conf):
      no-api (yes, no) can now be specified.
      The following directives have been added:
         include <file>
         ifSet <property> [<statement>]
         ifNotSet <property> [<statement>]
         assign <variable> <value>
         ifVar <variable> [<statement>]
         ifNotVar <variable> [<statement>]
         else
         endIf
      The special syntax \{variable} is now supported.
   Text Tables:
      The Hebrew text table (he) has been modernized.
   Contraction Tables:
      The US English Grade 2 (en-us-g2) contraction table has been updated.
   Key Tables:
      The following binding changes have been made to the "keypad" key table:
         Binding           Old      New
         KP0+KPMinus       SIXDOTS  SIXDOTS+off
         KP0+KPPlus        -        SIXDOTS+on
         KPPeriod+KPMinus  FREEZE   BRLUCDOTS+off
         KPPeriod+KPPlus   -        BRLUCDOTS+on
         KPMinus+KP3       -        FREEZE
      The <statement> operand of the ifKey directive is now optional.
      The following directives have been added:
         ifNotKey <key> [<statement>]
         ifVar <variable> [<statement>]
         ifNotVar <variable> [<statement>]
         else
         endIf
   Data File Customization:
      The XDG configuration file paradigm is now supported.
      A local version of any data file can be placed in "/etc/xdg/brltty/".
      The XDG_CONFIG_HOME and XDG_CONFIG_DIRS environment variables are supported.
      See "README.Customize" for full details.
   Build Changes:
      The source has been moved from an svn repository to a git repository at:
         "https://github.com/brltty/brltty.git".
      The URL of the web site has been changed to "http://brltty.com".
      Many of the core headers are now installed (in "/usr/include/brltty/").
      The brltty-devel rpm is now created.
      The --with-api-socket-path= configure option has been added.

January 27, 2014:
 - BRLTTY 5.0 released:
   Major Changes:
      Conversion from frequent regular polling to event-based scheduling.
      The speech driver now runs in its own thread.
   General Changes:
      The --message-delay brltty option has been renamed to --message-timeout.
      The -Q [--quiet-if-no-braille] brltty option has been added.
      The -U [--update-interval=] brltty option has been removed.
      The CLIP_SAVE and CLIP_RESTORE commands have been added.
      The PWGEN command has been removed.
      The FREEZE toggle can now be explicitly set to on or off.
      The confirmation tune is played twice if an explicit toggle is already set.
      Braille driver selection using the Bluetooth device name is now supported.
      A Bluetooth device address may now contain dashes (-) instead of colons (:).
      The "bth:" and "bluez:" device qualifier aliases are no longer supported.
      Braille device identifiers may now contain parameters (see README.Devices).
      Lots of improvements to Android support have been made.
   Preferences Menu Changes:
      Input Options Submenu:
         The Autorepeat Delay setting has been renamed to Long Press Time.
         The Braille Orientation setting has been added.
      Internal Parameters Submenu:
         The log categories have been moved down into their own submenu.
   The following braille drivers have been added:
      bg: B2G models (from NBP).
      mm: Braille Memo models (from KGS).
   Significant upgrades have been made to the following braille drivers:
      Alva, Baum,  Cebra, FreedomScientific, HandyTech, HumanWare,
      Papenmeier, Pegasus, Seika.
   Alva Braille Driver Changes:
      Support has been added for the newer Braille Pen models (from Harpo).
      Support has been added for the Easy Link 12 Touch (from Optelec).
   FreedomScientific Braille Driver Changes:
      All of the bumper keys now have bindings.
      The rocker keys of the Focus 80 Blue now have bindings.
      For Focus models:
         The left shift key now functions as a control modifier key.
         The right shift key now functions as a meta (left alt) modifier key.
         The left GDF key plus the left bumper keys goes to the top/bottom line.
         The right GDF key plus the right bumper keys goes to the top/bottom line.
   HandyTech Braille Driver Changes:
      Support has been added for the Basic Braille models.
   HIMS Braille Driver Changes:
      Support has been added for the Braille Sense U2.
      Support has been added for using Braille Edge models via Bluetooth.
      Support for models which have a qwerty keyboard has been improved.
   Papenmeier Braille Driver Changes:
      The status key bindings for models with 22 status keys have been revised.
   Seika Braille Driver Changes:
      The K2, K3, and K4 keys of the braille display models now work.
   Voyager Braille Driver Changes:
      Support has been added for the routing keys on newer Braille Pen models.
   XWindow Braille Driver Changes:
      It is now usable when only the default fonts are available.
   BrlAPI Changes:
      Version updated to 0.6.1.
      API parameter syntax problems are now errors (rather than warnings).
      Autorepeat key events are now being delivered to clients.
      A crash when visual text wasn't being supplied by the core has been fixed.
      Orca braille output is no longer being hidden by xbrlapi output.
      gdm should now automatically start xbrlapi.
   Text Table Changes:
      The Slovenian table (sl) has been added.
      The full-width Latin letters now have braille representations.
      The full-width Latin digits now have braille representations.
      brltty-trtxt now preserves space characters.
   Attributes Table Changes:
      The existing tables have been given more descriptive names:
         attrib -> invleft_right
         attributes -> left_right
      The upper_lower table has been added.
   Contraction Table Changes:
      The US English Grade 2 table has been improved.
      The German table has been improved.
      The -v (--verification-table=) option has been added to brltty-ctb.
   Key Table Changes:
      A binding for TIME (KP0+T) has been added to the desktop key table.
      A table for Sun type 6 keyboards (sun_type6) has been added.
      Support has been added for long key press bindings.
      The value of an assign statement may now contain variable expansions.
   Build Changes:
      The libusb-1.0 package is now preferred over the libusb package.
      The message catalogs are now installed if the needed tools are available.
      pyrexc is no longer an alternate compiler for the Python bindings.
      Paths to Java build commands which contain blanks are now supported.
      Many fixes for building on Mac OS X (Darwin) have been made.
      The following wrapper scripts for a number of platforms have been added:
         cfg-android, cfg-darwin.
      The eutp command (for EuroBraille file transfer) has been added.

April 1, 2013:
 - BRLTTY 4.5 released:
   General Fixes:
      The cursor routing algorithm is now usually almost as fast as it used to be.
      Speech navigation now works when braille is not being used.
      Autospeak is now forced on if speech is being used without braille.
      Autospeak no longer considers a single character to be a completed word.
      The input modifier commands now function as regular toggles.
      Hangs can no longer occur when the system clock is adjusted backward.
      Occasional delayed input with some braille devices has been resolved.
      Poor response when using USB with some braille devices has been resolved.
      Bogus Bluetooth connect errors (resource busy) have been resolved.
   Alva Braille Driver:
      The key bindings for the BC models have been reworked.
      Secondary routing keys are now interpreted as though they were primary keys.
      The SecondaryRoutingKeyEmulation= parameter has been added.
   Baum Braille Driver:
      The RefreshaBraille key bindings have been improved.
   BrailleNote Braille Driver:
      Key bindings are now defined within key tables rather than being hard-coded.
   Cebra Braille Driver:
      Bluetooth support has been added.
      Support for the Novem braille keyboard has been added.
   FreedomScientific Braille Driver:
      Support for the Focus 14 has been added.
      A key binding for CLIP_COPY has been added.
      The definitions for the two Focus 40 rocker keys have been swapped.
   HandyTech Braille Driver:
      Poor performance when using an Active Braille has been resolved.
   HIMS Braille Driver:
      USB support for the Braille Edge has been added.
      Newer Braille Sense models, when connected via USB, are now recognized.
      Many key bindings for the Braille Sense and Braille Edge have been added.
   HumanWare Braille Driver:
      USB autodetection is now supported.
   IrisLinux Braille Driver:
      Removed - superceded by the Iris braille driver.
   NinePoint Braille Driver:
      Cebra devices are now supported by the new Cebra braille driver.
      This driver now supports the NinePoint device.
   Papenmeier Braille Driver:
      Bluetooth is now supported.
      Models EL40c, EL60c, and EL80c are now supported.
   Seika Braille Driver:
      Support for the Seika 80 has been added.
   Voyager Braille Driver:
      The key bindings have been reworked.
   eSpeak Speech Driver:
      Now runs in a separate thread in order to improve core performance.
   BrlAPI Server:
      The RetainDots= parameter has been added.
   BrlAPI Client:
      Version updated to 0.6.0.
      The brlapi_writeWText() function has been added.
      The Python bindings are now compiled by Cython (rather than with Pyrex).
      Python 3 is now supported.
      A file descriptor leak has been resolved.
   Text Tables:
      The fr-vs table has been updated.
   Contraction Tables:
      The en-us-g2 table has been updated.
   Keyboard Key Tables:
      Many bindings have been added to the laptop table.
   Android:
      An initial implementation is now available.
      Runs poorly on 4.0 (ICS) but quite well on 4.1 (JB).
      Screen navigation is supported.
      See Documents/README.Android for details.

June 7, 2012:
 - BRLTTY 4.4 released:
   Changes:
      DOS option syntax (/option[:value]) can only be used on DOS or Windows.
      The clipboard functions have been renamed to accurately reflect what they do:
         CUTBEGIN  -> CLIP_NEW
         CUTAPPEND -> CLIP_ADD
         CUTLINE   -> COPY_LINE
         CUTRECT   -> COPY_RECT
         COPYCHARS -> CLIP_COPY
         APNDCHARS -> CLIP_APPEND
      The Caml bindings for BrlAPI have been renamed to Ocaml.
      The tbltest program has been renamed to brltty-ttb and is installed.
      The ctbtest program has been renamed to brltty-ctb and is installed.
      The --with-compiler-prefix= configure option has been removed.
   Fixes:
      Brltty keyboard key bindings no longer interfere with Orca key bindings.
      The updating of status lines no longer confuses the cursor routing algorithm.
      The same USB device can no longer be used by more than one brltty at a time.
   New Features:
      The help function cycles through all relevant pages.
         For example, help for the current keyboard key table is viewable.
      The info-mode line contains a clock.
      The preferences menu has been divided into a set of category-based submenus.
         Open a submenu with any key that would normally alter a setting.
         Close a submenu either by scrolling to its Close item and activating it
         or via the new MENU_PREV_LEVEL function.
      The -l [--log-level=] option of brltty accepts log category names.
         The names are: ingio, inpkts, outpkts, brlkeys, kbdkeys, csrtrk, csrrtg.
         Specify the log level and/or category names as a comma-delimited list.
      The -C [--cancel-execution] option has been added to brltty.
         The same pid file must be specified by both the cancelling and the
         already-running brltty.
      The pid file may be specified within the configuration file (brltty.conf).
      The brltty-trtxt program has been added and is installed.
   New functions:
      MENU_PREV_LEVEL: Close the current submenu.
      TIME: Display the current time (format configurable via the menu).
      PWGEN: Set the clipboard to a random password (length set by routing key).
      Sticky input modifier functions:
         SHIFT: Add the shift modifier to the next typed character.
         UPPER: Add the uppercase modifier to the next typed character.
         CONTROL: Add the control modifier to the next typed character.
         META: Add the meta (left alt) modifier to the next typed character.
      Autospeak suboption toggles:
         ASPK_SEL_LINE: Set autospeak selected line on/off.
         ASPK_SEL_CHAR: Set autospeak selected character on/off.
         ASPK_INS_CHARS: Set autospeak inserted characters on/off.
         ASPK_DEL_CHARS: Set autospeak deleted characters on/off.
         ASPK_REP_CHARS: Set autospeak replaced characters on/off.
         ASPK_CMP_WORDS: Set autospeak completed words on/off.
      Many functions specifically for speech navigation:
         SPEAK_CURR_CHAR: Speak current character.
         SPEAK_PREV_CHAR: Go to and speak previous character.
         SPEAK_NEXT_CHAR: Go to and speak next character.
         SPEAK_CURR_WORD: Speak current word.
         SPEAK_PREV_WORD: Go to and speak previous word.
         SPEAK_NEXT_WORD: Go to and speak next word.
         SPEAK_CURR_LINE: Speak current line.
         SPEAK_PREV_LINE: Go to and speak previous line.
         SPEAK_NEXT_LINE: Go to and speak next line.
         SPEAK_FRST_CHAR: Go to and speak first non-blank character on line.
         SPEAK_LAST_CHAR: Go to and speak last non-blank character on line.
         SPEAK_FRST_LINE: Go to and speak first non-blank line on screen.
         SPEAK_LAST_LINE: Go to and speak last non-blank line on screen.
         DESC_CURR_CHAR: Describe current character.
         SPELL_CURR_WORD: Spell current word.
         ROUTE_CURR_LOCN: Bring cursor to speech location.
         SPEAK_CURR_LOCN: Speak speech location.
         SHOW_CURR_LOCN: Set speech location visibility on/off.
   New braille drivers:
      hw: HumanWare
      ir: Iris
      np: NinePoint (Cebra)
   Baum braille driver changes:
      The Inka is fully supported.
      New key bindings for models with six display keys:
         Display1+Display5 displays the current time.
   EuroBraille braille driver changes:
      The latest models are supported.
      Key tables, rather than hard-coded bindings, are used.
      The display is updated when returning from the internal menu.
      The LCD (visual display) is supported.
      Large displays work reliably when connected via USB.
      The protocol= parameter takes a model (rather than a protocol) name.
   FreedomScientific braille driver changes:
      New key bindings:
         LeftRockerUp goes up one line.
         LeftRockerDown goes down one line.
   HandyTech braille driver changes:
      New key bindings:
         B2+B3+B5+B6 displays the current time.
         B1+B2+!RoutingKey sets the clipboard to a random password.
   Papenmeier braille driver changes:
      A serious USB problem has been fixed.
      New key bindings for models with 13 front keys:
         Dot3, when in the menu, closes the current submenu.
         Dot1+Dot2+Dot3+Dot6 routes the cursor vertically.
         Dot1+Dot2+Dot3+Dot6+Dot7 switches to the previous virtual console.
         Dot1+Dot2+Dot3+Dot6+Dot8 switches to the next virtual console.
         Dot1+Cot2+Dot3+Dot7 displays the current time.
         Dot1+Dot2+Dot3+Dot7+!RoutingKey1 sets the clipboard to a random password.
   Seika braille driver changes:
      The notetaker models are supported.
   eSpeak speech driver changes:
      The maxrate= parameter has been added.
   Text tables:
      The de (German) table has been updated.
      The hu (Hungarian) table has been updated.
      Support for writing JAWS (.jbt) text tables has been added to brltty-ttb.
   Contraction tables:
      the en-us-g2 (US English - Grade 2) table has been updated.
      A table may be implemented as an executable program.
      The latex-access (braille math) executable table has been added.
      The -r [--reformat-input] option of brltty-ctb handles paragraphs better.
   Keyboard key tables:
      Many bindings have been added to the keypad and laptop tables.
   Documentation:
      A portuguese translation of the manual has been added.

October 10, 2011:
 - BRLTTY 4.3 released:
   New options:
      The -F [--speech-fifo=] option has been renamed to -i [--speech-input=].
      The -F [--preferences-file=] option sets the path to the preferences file.
      The -L [--log-file=] brltty option writes timestamped logs to a file.
      The -q [--quiet] xbrlapi option suppresses the displaying of window titles.
      The -r [--reformat-text] ctbtest option joins unindented input lines.
      The log level can now be specified within brltty.conf.
   New device support:
      A braille driver for BrailComm displays has been added.
      The HandyTech braille driver now supports the Active Braille.
      The Voyager braille driver now supports the part 232 serial adapter.
      The Voyager braille driver now supports the Braille Pen (aka Easy Link).
   Preferences menu changes:
      The preference selections now apply to the preferences menu itself, too.
      Keyboard key bindings now work correctly within the preferences menu.
      The "Text Style" preference has new settings:
         8-Dot Computer Braille (formerly 8-dot)
         Contracted Braille (formerly 6-dot)
         6-Dot Computer Braille
      The "Expand Current Word" preference has been added.
         It's only visible if "Text Style" is set to "Contracted Braille".
         It can be set to:
            Yes (don't contract the word the cursor is on)
            No (contract the whole line)
      The "Capitalization Mode" preference has been added.
         It's only visible if "Text Style" is set to "Contracted Braille".
         It can be set to:
            No Capitalization
            Use Capital Sign
            Superimpose Dot 7
   General changes:
      Internationalization support has been improved.
      French and German translations have been added.
      Support for multi-byte local character sets has been improved.
      Horizontal window motions now work correctly with contracted braille.
      The half window left motion no longer can move to a bad location.
      Alert messages no longer disappear unexpectedly.
      The speech FIFO is now created relative to the current working directory.
      Serial flow control is now enabled before device probing.
      The following global variables for use within tables are now predefined:
         tablesDirectory
         tableExtension
         subtableExtension
   Alva braille driver changes:
      The BC key bindings have been changed significantly in order to add
      more functions and to support the USB640 (which has no smartpad).
      The braille keyboard of the BC Feature Pack is now supported.
   Baum braille driver changes:
      Updating the text and status cells of the Vario 80 has been fixed.
      The front and command keys of the Vario 80 are now supported.
   EuroBraille braille driver changes:
      Reading keys is faster and no longer generates spurious input errors.
   HandyTech braille driver changes:
      Support for the Active Braille has been added.
      The help screen now describes how the keypad keys are named.
   Papenmeier braille driver changes:
      The initial state of the switches and keys of EL models is detected.
   Seika braille driver changes:
      The help screen now describes the key layout.
   TTY braille driver changes:
      A few more key bindings have been defined.
   Voyager braille driver changes:
      Serial support has been added.
      Bluetooth support has been added.
      Support for the part 232 serial adapter has been added.
      Support for the Braille Pen (aka Easy Link) has been added.
   XWindow braille driver changes:
      More and less restrictive fonts are supported.
      Hard program exits have been removed.
   eSpeak speech driver changes:
      The full advertized speech rate range can now be used.
   FestivalLite speech driver changes:
      The default voice has been changed to kal (from kal16).
   AtSpi screen driver changes:
      No more annoying warnings when not on an AtSpi widget.
   BrlAPI fixes:
      ISO-8859-1 is now accepted as a character set when iconv isn't available.
      The autorepeat flags are now handled on a per session basis.
      Commands are now processed when the device is released.
   WindowEyes BrlAPI driver changes:
      Testing for BrlAPI open errors has been improved.
   Text table changes:
      A common subtable for the block characters has been added.
      The glyph directive has been added.
      Several alternate fonts for the Latin letters are now defined.
      If a character isn't defined then check for an alternative which is:
         (its Unicode base character, its iconv-defined ASCII equivalent, etc).
      The en_UK text table has been renamed to en_GB (to comply with ISO 3166).
      Updated text tables:
         bo (Tibetan)
         brf: dot 7 is no longer presented
         fr_FR (French France)
         fr-vs (French table used by VisioBraille devices)
         is (Icelandic): updated to the newly adopted standard
   Contraction table changes:
      If a zero-width character isn't defined then don't show it.
      Updated tables:
         de-kurzschrift (German)
         en-us-g2 (American English)
         es (Spanish)
         fr-abrege (French)
         zh-tw (Taiwanese Chinese)
   Key table changes:
      A specific key within a set can now be specified by number.
      A key combination can now include specific keys which aren't in set 0.
      Keys which aren't in set 0 can now be mapped to keyboard functions.
      A key set name can now be used to define a hotkey.
      The help text no longer includes hidden hotkeys.
      The help text now handles context-specific hotkeys correctly.
      The note directive now supports the use of variables.
   Windows changes:
      Serial devices beyond COM9 may now be specified.
      The WindowEyes driver is now copied into the correct installation directory.
   Build changes:
      Building an exported (not checked out) copy now "knows" its revision number.
      Make support for install/uninstall of /usr/share/doc/brltty has been added.
      The make targets for source archives are now prefixed with "src-".
      The bin-tar, bin-tar-gzip, and bin-tar-bzip2 make targets have been added.
      Support for xz compression of binary and source archives has been added.
      The preferences file has been moved to /var/lib/brltty/brltty.prefs.
      There's now only one preferences file (instead of one per braille driver).
      The preferences file is now text-based (instead of binary).
      The "writable" directory has been moved to /var/run/brltty.
      The "library" directory is now known as the "drivers" directory.
      The "data" directory no longer has a use and has been removed.
      Support for the "gjar" command has been added.

May 10, 2010:
 - BRLTTY 4.2 released:
   Ending a cut operation beyond the right edge of the screen has been fixed.
   Key/character insertion works with newer versions of Xorg.
   The braille driver help files have been converted to plain text.
   Multiple instances of brltty may not use the same PID file.
   The keypad keyboard key table provides a braille input mode.
   The working directory is no longer set to the data directory.
   The writable directory is created if it doesn't already exist.
   USB I/O via libusb1 is supported.
   The Metec braille driver has been added.
   The eSpeak speech driver has been added.
   The AtSpi2 screen driver has been added.
   A BrlAPI client for Window-Eyes has been developed.
   Albatross braille driver changes:
      Converted to use key tables.
      USB support has been added.
   Alva braille driver changes:
      Converted to use key tables.
   Baum braille driver changes:
      Converted to use key tables.
      Vario Pro wheels are supported.
      For Vario Pro models, only update the text cells which have changed.
   CombiBraille braille driver changes:
      Converted to use key tables.
   FreedomScientific braille driver changes:
      Converted to use key tables.
      Bluetooth support has been added.
      The Focus Blue is supported.
      Rockers and bumper bars are recognized as distinct keys.
   HandyTech braille driver changes:
      Converted to use key tables.
      Pressing two routing keys simultaneously immediately cuts the selected text.
      Newer models which use the USB HID interface are supported.
      The InputMode= parameter has been removed.
   HIMS braille driver changes:
      Converted to use key tables.
   Papenmeier braille driver changes:
      Converted to use key tables.
      The DebugReads= and DebugWrites= parameters have been removed.
      Support for the configuration file has been removed (now uses key tables).
   Pegasus braille driver changes:
      Converted to use key tables.
   Seika braille driver changes:
      Converted to use key tables.
   Voyager braille driver changes:
      Converted to use key tables.
   BrlAPI changes:
      Key event support has been added.
      Various client fixes for the Windows environment.
      Various fixes for when threads aren't available.
      No more extraneous connection to localhost when using a TCP/IP host name.
      A fix to exception handling within the Python bindings.
   ExternalSpeech speech driver changes:
      Two-letter driver identification code changed to "xs" (from "es").
   AtSpi screen driver changes:
      Static linking is supported.
      A problem causing crashes on 64-bit platforms has been resolved.
   Windows screen driver changes:
      Significant reductions in memory usage.
      Better handling of unreadable screens.
      Better handling of the Alt+Tab window.
   DOS changes:
      Log records are written to the file "brltty.log".
      The TSI braille driver stays at 9600 baud.
   Key table changes:
      Add the following directives:
         assign, context, hide, hotkey, ifkey, map, note, superimpose, title.
      Add the \{name} variable name expansion syntax.
      Add the ! immediate key syntax.
      A command may have more than one modifier.
      The line command modifiers are supported.
      Keyboard key table names are now prefixed with "kbd-".
      The ktbtest tool has been added.
   Linux changes:
      USB device inspection is more efficient.
      Fixes to keyboard connect/disconnect monitoring.
      Fixes to key event handling.
      PCM and MIDI support defaults to ALSA (instead of to OSS).
   Windows changes:
      Improved conversion of Windows errors to system errors (errno values).
      Bluetooth support has been added.
      Text table autoselection has been fixed.
      Text table editing (ttbtest -e) is supported.
   Build changes:
      --enable-usb-support changed to --with-usb-package[=package,...].
      --disable-usb-support changed to --without-usb-package.
      --enable-bluetooth-support changed to --with-bluetooth-package[=package,...].
      --disable-bluetooth-support changed to --without-bluetooth-package.
   Text tables updated:
      hu, sk.
   Contraction tables updated:
      de-kurzschrift, en-us-g2, zh-tw.
October 8, 2009:
 - BRLTTY 4.1 released:
   General Changes:
      BRL_CMD_WINUP can go above the top row of the screen.
      Protect against NULL being given to snprintf() for a string.
      Change the "braille display offline/online" logs to DEBUG (from NOTICE).
      Fixes to status field initialization during a preferences file upgrade.
      Default status field selection should take into account 66-cell displays.
      Remove usbResetEndpoint().
      Resolve gcc-4.4 warnings.
      Resolve 64-bit warnings.
      C compilers needn't deallocate variable-size arrays until function return.
      Updates to the English Grade 2 contraction table.
      Updates to the German contraction table.
      Change ctbtest to expect input encoded in UTF-8.
      liblouis tables use y for 5-digit and z for 8-digit characters.
   Baum Braille Driver Changes:
      Fix the support for display key #6 in PB2 mode.
   EuroBraille Braille Driver Changes:
      Re-add some bindings forgotten during the driver rewrite for 3.10.
      Rework the bindings a bit for greater consistency and easier learning.
      Add new bindings to support as many commands as possible.
   Papenmeier Braille Driver Changes:
      Interpret the EL66S Easy Access Bar correctly.
   TSI Braille Driver Changes:
      Increase the write delay a bit.
   Linux Screen Driver Changes:
      Give KD_FONT_OP_GET maximum (rather than reasonably high) font dimensions.
   Java Bindings Changes:
      Define the DOTn constants as bytes (rather than as chars).
      JNI fixes for Sun-based JVMs.
      Load the JNI part automatically at startup.
   Lisp Bindings Changes:
      Reference version 0.5.3 of BrlAPI.
   Python Bindings Changes:
      Pyrex doesn't automatically convert C's NULL to Python's None.
      Translate BrlAPI exceptions into Python exceptions.
   BrlAPI Changes:
      Remove all mention of key sets.
      Handle unbound key ranges.
      Fix an issue with TCP/IP socket connection on Windows.
      Handle the possibility of a different braille device after resuming.
   Windows Changes:
      Fix a compile problem.
      The screen driver should refer to "consoles" rather than to "terminals".
   Documentation Updates:
      Update the French manual from 3.10 to 4.1.
      Document that the EuroBraille Esys is supported.
      Update the supported FreedomScientific model lists.
      Clarify that --with-*-table sets the fallback (not the default) table.
      Change log fixes.
      Update the TSI braille driver's README.
      Add README.Bluetooth.
      The README for how to use a Seika with the TSI driver is no longer needed.
      E-mail address change for Nicolas Pitre.
      E-mail address change for Jean-Philippe Mengual.
   Build Changes:
      The API socket directory should be created under the install root.
      Add the --disable-stripping configure option.
      Remove the --disable-preferences-menu configure option.
      Remove the --disable-table-selection configure option.
      Fedora no longer creates "/usr/lib/ocaml/stublibs/dllbrlapi_stubs.*".

May 15, 2009:
 - BRLTTY 4.0 released:
   General Changes:
      All screen reading, character handling, and tables are now Unicode-based.
      The "<n> startup problems" message has been removed.
      Boot operands may contain multiple items separated by plus signs.
      USB enhancements and fixes.
      Windows serial I/O fixes.
      A UDEV rules file for brltty is provided.
      An upstart job for brltty is provided.
   Status Cells:
      Hard-coded styles have been replaced by user-configurable fields.
      If there are no status cells then a text region may be reserved for them.
      The INFO command toggles text maximization if a text region is being used.
   Braille Drivers:
      The Pegasus and Seika braille drivers have been added.
      The BrailleSense braille driver has been renamed to HIMS.
   Alva Braille Driver:
      The BC6nn series are supported.
   Baum Braille Driver:
      The VarioConnect, EcoVario, VarioPro, and Refreshabraille are supported.
   BrailleNote Braille Driver:
      The statuscells= parameter has been removed.
   EuroBraille Braille Driver:
      USB support has been added.
      Robustness has been improved.
      Bindings for the Esys have been added.
   FreedomScientific Braille Driver:
      The statuscells= parameter has been removed.
   HandyTech Braille Driver:
      The Evolution models have been redefined to only have text cells.
   HIMS Braille Driver:
      The Braille Sense key bindings have been reworked.
      SyncBraille support has been added.
      Bluetooth support has been fixed.
   TSI Braille Driver:
      The way Seika devices implement PowerBraille emulation is supported.
      The PowerBraille 81 has been redefined to only have text cells.
      The core's flow control mechanism is used (rather than hard-coded delays).
   Voyager Braille Driver:
      The statuscells= parameter has been removed.
      Key binding changes:
         CUTAPPEND/CUTLINE moved to CRt# + B/C
         PRINDENT/NXINDENT moved to CRt# + A+B/C+D
   XWindow Braille Driver:
      The font= parameter has been added.
   SpeechDispatcher Speech Driver:
      Single characters are now spoken correctly.
   BrlAPI Server:
      The version has been changed from 0.5.2 to 0.5.3.
      enterTtyMode() now works correctly on Windows.
[--snip--]
