summaryrefslogtreecommitdiff
path: root/docs/README.symbols
blob: 249010ddb1fe0c0f72c74793d3ec98b779bbdf18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

The files in the symbols directory describe possible keyboard layouts
for a given  country or language or script.

The default layout in each file should describe the most common layout
for its kind, usually the one that matches the symbols printed on the
keys.  Layout variants can describe common deviations that are not
necessarily printed on the keys (e.g. a phonetic version of Cyrillic).

The names of the files are referenced throughout the XKB rules, and may
be exposed in the X server configuration and in user configuration tools.
The filenames use the following convention:

Country layouts:
  Keyboard layouts for a country must use the 2-letter code from the
  ISO-3166 standard.

Language layouts:
  Keyboard layouts for a language must use the 3-letter code from the
  ISO-639 standard.

Script layouts:
  Keyboard layouts for a script must use the 4-letter code from the
  ISO-15924 standard.

Other:
  Keyboard layouts that do not fit in the above categories must use a
  filename between 5 and 8 characters.

The relevant ISO codes can be found at the following addresses:

Country layouts:  http://www.iso.org/iso/home/standards/country_codes/iso-3166-1_decoding_table.htm
Language layouts: http://www.loc.gov/standards/iso639-2/php/code_list.php
Script layouts:   http://www.unicode.org/iso15924/iso15924-codes.html

The descriptions of the layouts in the file base.xml.in should match the
group names in the symbols file.

If the layout is country-based, the group name has to be the full name of
the country.  It is highly discouraged to use forms like "Republic of XXX"
or "XXX Republic" -- the form "XXX" should be used instead.

If the layout is language-based, the group name has to be the name of the
language.

Within a single symbols file, all the variants should have the same group name
(implemented using the "include" directive wherever possible).