aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkbdata.src/docs/README.symbols
blob: 749618e77fa2fa674c8db8b9c0fa9a34c645de32 (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
48
49
50
51

The files in the symbols directory describe possible layouts for a given 
keyboard.

The default layout in each file should describe the most common layout
for its kind, usually the symbols printed on the keys. Layout variants
can describe common differences 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 model and directories
  must use a filename between 5 and 8 characters.

The ISO codes can be found at the following addressed:

Country layouts:  http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/iso_3166-1_decoding_table.html
Language layouts: http://www.loc.gov/standards/iso639-2/langcodes.html
Script layouts:   http://www.unicode.org/iso15924/iso15924-codes.html

The description in the directory file base.xml.in should match the group names 
in the symbols file. 

If the layout is country-based, this has to be the full 
name of the country. It is highly not recommended to use the forms 
"Republic of XXX" or "XXX Republic" - the form "XXX" should be used instead.
The only exception is "United Kingdom".

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

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