# Attributes Tables

Contents

- Description
- Directives
  - The Dot Directive
  - The Include Directive
- Attributes Table List

## Description

Files with names of the form `*.atb` are attributes tables, and with names of the form `*.ati` are attributes subtables. They are used when BRLTTY is displaying screen attributes rather than screen content. Each of the eight braille dots represents one of the eight VGA attribute bits.

Attributes tables can usually be found in the `/etc/brltty/Attributes/` directory (see Local Customization for more details). See Attributes Table List for a list of BRLTTY's attributes tables.

An attributes table consists of a sequence of directives, one per line, which define how combinations of VGA attributes are to be represented in braille. UTF-8 character encoding must be used. Whitespace (blanks, tabs) at the beginning of a line, as well as before and/or after any operand of any directive, is ignored. Lines containing only whitespace are ignored. If the first non-whitespace character of a line is `#` then that line is a comment and is ignored.

## Directives

### The Dot Directive

    dot dot state # comment

Use this directive to specify what a specific dot represents. The default is that all dots are down and not used to represent anything.

dot
  The dot being defined. It is a single digit within the range `1`-`8` as defined by the standard braille dot numbering convention (see Braille Dots for details).
state

  What the dot being defined represents. It may be:

  =attribute
    The dot is raised if the named attribute is on.
  ~attribute
    The dot is raised if the named attribute is off.

The attributes are:

Name | Hex | binary
fg-blue | 01 | 00000001
fg-green | 02 | 00000010
fg-red | 04 | 00000100
fg-bright | 08 | 00001000
bg-blue | 10 | 00010000
bg-green | 20 | 00100000
bg-red | 40 | 01000000
blink | 80 | 10000000

Examples:

    dot 1 =fg-red
    dot 2 ~bg-blue

### The Include Directive

    include file # comment

Use this directive to include the content of another file. It is recursive, which means that an included file can itself include yet another file. Care must be taken to ensure that an "include loop" is not created.

file
  The file to be included. It may be either a relative or an absolute path. If relative, it is anchored at the directory containing the including file.

## Attributes Table List

name | description
--- | ---
left_right | foreground colour in the left column and background colour in the right column
invleft_right | inverse foreground colour in the left column and background colour in the right column
upper_lower | foreground colour in the upper square and background colour in the lower square