| ~~~~~~~~~~~~~~~~~~~ |
| Local Customization |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| .. include:: prologue.rst |
| |
| BRLTTY supports the XDG configuration file paradigm. The most important |
| capability this offers is an easy way to customize your BRLTTY configuration |
| that won't be overwritten during an upgrade, reinstall, etc. The XDG paradigm |
| defines standard locations for your own data files that will override BRLTTY's |
| provided data files. In other words, you no longer need to modify BRLTTY's |
| provided data files in order to make your own local customizations. |
| |
| The following data files are covered by this feature: |
| |
| * The configuration file (``brltty.conf``). |
| * Text tables (``*.ttb``) and subtables (``*.tti``). |
| See |README.TextTables| for details. |
| * Attributes tables (``*.atb``) and subtables (``*.ati``). |
| See |README.AttributesTables| for details. |
| * Contraction tables (``*.ctb``) and subtables (``*.cti``). |
| See |README.ContractionTables| for details. |
| * Key tables (``*.ktb``) and subtables (``*.kti``). |
| See |README.KeyTables| for details. |
| |
| The standard directory where you should put your customized files is |
| ``/etc/xdg/brltty/``. |
| |
| The simplest way to customize a provided data file is to copy it to this |
| directory, and then to modify your copy as needed. You can, however, just place |
| your changes in your version of the file, and then ``include`` the provided |
| file in order to automatically always pick up the latest versions of all the |
| unchanged lines. |
| |
| For example: Let's say that you'd like to add your own key bindings to the |
| ``laptop`` keyboard table. To do so, create ``/etc/xdg/brltty/laptop.ktb``, |
| and place lines like these into it:: |
| |
| bind Key1 COMMAND1 |
| bind Key2 COMMAND2 |
| ... |
| include laptop.ktb |
| |
| The ``XDG_CONFIG_HOME`` environment variable defines the base directory in |
| which to check before the standard directory is checked. If it's set and not |
| empty then the primary override directory is ``$XDG_CONFIG_HOME/brltty/``. If |
| it either isn't set or is empty, but the ``HOME`` environment variable is set |
| and not empty (the usual case when you're logged in) then the primary override |
| directory is ``$HOME/.config/brltty/``. If both the ``XDG_CONFIG_HOME`` and |
| ``HOME`` environment variables are either not set or empty (the usual case |
| during the system boot sequence) then the primary override directory isn't |
| defined. |
| |
| The ``XDG_CONFIG_DIRS`` environment variable defines a colon-separated list of |
| secondary base directories. The ``brltty/`` subdirectory of each of these |
| secondary base directories is BRLTTY's corresponding secondary override |
| directory. So, for example, if ``XDG_CONFIG_DIRS`` is set to ``/a:/b`` then |
| BRLTTY will check ``/a/brltty/`` and ``/b/brltty/`` (in that order). If |
| ``XDG_CONFIG_DIRS`` is set and not empty then ``/etc/xdg/brltty/`` is no longer |
| implicitly checked. |
| |
| For backward compatibility, the original data file override paradigm is also |
| supported. If the ``HOME`` environment variable is set and not empty then the |
| tertiary override directory is ``$HOME/.brltty/``. If it isn't set, or if it's |
| empty, then the tertiary override directory is ``./.brltty/``. |