# Default Symbol Transformations

## Interpreting the Control Modifier

If the Control modifier is not consumed by the symbol lookup process, routines that determine the symbol and string that correspond to an event should convert the symbol to a string as defined in the table below. Only the string to be returned is affected by the Control modifier; the symbol is not changed.

This table lists the decimal value of the standard control characters that correspond to some keysyms for ASCII characters. Control characters for symbols not listed in this table are application-specific.

Keysyms | Value | Keysyms | Value | Keysyms | Value | Keysyms | Value
--- | --- | --- | --- | --- | --- | --- | ---
atsign | 0 | h, H | 8 | p, P | 16 | x, X | 24
a, A | 1 | i, I | 9 | q, Q | 17 | y, Y | 25
b, B | 2 | j, J | 10 | r, R | 18 | z, Z | 26
c, C | 3 | k, K | 11 | s, S | 19 | left_bracket | 27
d, D | 4 | l, L | 12 | t, T | 20 | backslash | 28
e, E | 5 | m, M | 13 | u, U | 21 | right_bracket | 29
f, F | 6 | n, N | 14 | v, V | 22 | asciicircum | 30
g, G | 8 | o, O | 15 | w, W | 23 | underbar | 31

## Interpreting the Lock Modifier

If the Lock modifier is not consumed by the symbol lookup process, routines that determine the symbol and string that correspond to an event should capitalize the result. Unlike the transformation for Control , the capitalization transformation changes both the symbol and the string returned by the event.

### Locale-Sensitive Capitalization

If Lock is set in an event and not consumed, applications should capitalize the string and symbols that result from an event according to the capitalization rules in effect for the system on which the application is running, taking the current state of the user environment (e.g. locale) into account.

### Locale-Insensitive Capitalization

XKB recommends but does not require locale-sensitive capitalization. In cases where the locale is unknown or where locale-sensitive capitalization is prohibitively expensive, applications can capitalize according to the rules defined in this extension.

The following tables list all of the keysyms for which XKB defines capitalization behavior. Any keysyms not explicitly listed in these tables are not capitalized by XKB when locale-insensitive capitalization is in effect and are not automatically assigned the ALPHABETIC type as described in the Alphabetic Key Type.

#### Capitalization Rules for Latin-1 Keysyms

This table lists the Latin-11 keysyms for which XKB defines upper and lower case:

Lower Case | Upper Case | Lower Case | Upper Case | Lower Case | Upper Case | Lower Case | Upper Case
--- | --- | --- | --- | --- | --- | --- | ---
a | A | o | O | acircumflex | Acircumflex | eth | ETH
b | B | p | P | adiaeresis | Adiaeresis | ntilde | Ntilde
c | C | q | Q | atilde | Atilde | ograve | Ograve
d | D | r | R | aring | Aring | oacute | Oacute
e | E | s | S | ae | AE | ocircumflex | Ocircumflex
f | F | t | T | ccedilla | Ccedilla | otilde | Otilde
g | G | u | U | egrave | Egrave | odiaeresis | Odiaeresis
h | H | v | V | eacute | Eacute | oslash | Ooblique
i | I | w | W | ecircumflex | Ecircumflex | ugrave | Ugrave
j | J | x | X | ediaeresis | Ediaeresis | uacute | Uacute
k | K | y | Y | igrave | Igrave | ucircumflex | Ucircumflex
l | L | z | Z | iacute | Iacute | udiaeresis | Udiaeresis
m | M | agrave | Agrave | icircumflex | Icircumflex | yacute | Yacute
n | N | aacute | Aacute | idiaeresis | Idiaeresis | thorn | THORN

#### Capitalization Rules for Latin-2 Keysyms

This table lists the Latin-2 keysyms for which XKB defines upper and lower case:

Lower Case | Upper Case | Lower Case | Upper Case | Lower Case | Upper Case
--- | --- | --- | --- | --- | ---
aogonek | Aogonek | zabovedot | Zabovedot | dstroke | Dstroke
lstroke | Lstroke | racute | Racute | nacute | Nacute
lcaron | Lcaron | abreve | Abreve | ncaron | Ncaron
sacute | Sacute | lacute | Lacute | odoubleacute | Odoubleacute
scaron | Scaron | cacute | Cacute | rcaron | Rcaron
scedilla | Scedilla | ccaron | Ccaron | uabovering | Uabovering
tcaron | Tcaron | eogonek | Eogonek | udoubleacute | Udoubleacute
zacute | Zacute | ecaron | Ecaron | tcedilla | Tcedilla
zcaron | Zcaron | dcaron | Dcaron |  |

#### Capitalization Rules for Latin-3 Keysyms

This table lists the Latin-3 keysyms for which XKB defines upper and lower case:

Lower Case | Upper Case | Lower Case | Upper Case | Lower Case | Upper Case
--- | --- | --- | --- | --- | ---
hstroke | Hstroke | jcircumflex | Jcircumflex | gcircumflex | Gcircumflex
hcircumflex | Hcircumflex | cabovedot | Cabovedot | ubreve | Ubreve
idotless | Iabovedot | ccircumflex | Ccircumflex | scircumflex | Scircumflex
gbreve | Gbreve | gabovedot | Gabovedot |  |

#### Capitalization Rules for Latin-4 Keysyms

This table lists the Latin-4 keysyms for which XKB defines upper and lower case:

Lower Case | Upper Case | Lower Case | Upper Case | Lower Case | Upper Case
--- | --- | --- | --- | --- | ---
rcedilla | Rcedilla | eng | ENG | omacron | Omacron
itilde | Itilde | amacron | Amacron | kcedilla | Kcedilla
lcedilla | Lcedilla | iogonek | Iogonek | uogonek | Uogonek
emacron | Emacron | eabovedot | eabovedot | utilde | Utilde
gcedilla | Gcedilla | imacron | Imacron | umacron | Umacron
tslash | Tslash | ncedilla | Ncedilla |  |

#### Capitalization Rules for Cyrillic Keysyms

This table lists the Cyrillic keysyms for which XKB defines upper and lower case:

Lower Case | Upper Case | Lower Case | Upper Case
--- | --- | --- | ---
Serbian_dje | Serbian_DJE | Cyrillic_i | Cyrillic_I
Macedonia_gje | Macedonia_GJE | Cyrillic_shorti | Cyrillic_SHORTI
Cyrillic_io | Cyrillic_IO | Cyrillic_ka | Cyrillic_KA
Ukrainian_ie | Ukrainian_IE | Cyrillic_el | Cyrillic_EL
Macedonia_dse | Macedonia_DSE | Cyrillic_em | Cyrillic_EM
Ukrainian_i | Ukrainian_I | Cyrillic_en | Cyrillic_EN
Ukrainian_yi | Ukrainian_YI | Cyrillic_o | Cyrillic_O
Cyrillic_je | Cyrillic_JE | Cyrillic_pe | Cyrillic_PE
Cyrillic_lje | Cyrillic_LJE | Cyrillic_ya | Cyrillic_YA
Cyrillic_nje | Cyrillic_NJE | Cyrillic_er | Cyrillic_ER
Serbian_tshe | Serbian_TSHE | Cyrillic_es | Cyrillic_ES
Macedonia_kje | Macedonia_KJE | Cyrillic_te | Cyrillic_TE
Byelorussian_shortu | Byelorussian_SHORTU | Cyrillic_u | Cyrillic_U
Cyrillic_dzhe | Cyrillic_DZHE | Cyrillic_zhe | Cyrillic_ZHE
Cyrillic_yu | Cyrillic_YU | Cyrillic_ve | Cyrillic_VE
Cyrillic_a | Cyrillic_A | Cyrillic_softsign | Cyrillic_SOFTSIGN
Cyrillic_be | Cyrillic_BE | Cyrillic_yeru | Cyrillic_YERU
Cyrillic_tse | Cyrillic_TSE | Cyrillic_ze | Cyrillic_ZE
Cyrillic_de | Cyrillic_DE | Cyrillic_sha | Cyrillic_SHA
Cyrillic_ie | Cyrillic_IE | Cyrillic_e | Cyrillic_E
Cyrillic_ef | Cyrillic_EF | Cyrillic_shcha | Cyrillic_SHCHA
Cyrillic_ghe | Cyrillic_GHE | Cyrillic_che | Cyrillic_CHE
Cyrillic_ha | Cyrillic_HA | Cyrillic_hardsign | Cyrillic_HARDSIGN

#### Capitalization Rules for Greek Keysyms

This table lists the Greek keysyms for which XKB defines upper and lower case:

Lower Case | Upper Case | Lower Case | Upper Case
--- | --- | --- | ---
Greek_omegaaccent | Greek_OMEGAACCENT | Greek_iota | Greek_IOTA
Greek_alphaaccent | Greek_ALPHAACCENT | Greek_kappa | Greek_KAPPA
Greek_epsilonaccent | Greek_EPSILONACCENT | Greek_lamda | Greek_LAMDA
Greek_etaaccent | Greek_ETAACCENT | Greek_lambda | Greek_LAMBDA
Greek_iotaaccent | Greek_IOTAACCENT | Greek_mu | Greek_MU
Greek_iotadieresis | Greek_IOTADIERESIS | Greek_nu | Greek_NU
Greek_omicronaccent | Greek_OMICRONACCENT | Greek_xi | Greek_XI
Greek_upsilonaccent | Greek_UPSILONACCENT | Greek_omicron | Greek_OMICRON
Greek_upsilondieresis | Greek_UPSILONDIERESIS | Greek_pi | Greek_PI
Greek_alpha | Greek_ALPHA | Greek_rho | Greek_RHO
Greek_beta | Greek_BETA | Greek_sigma | Greek_SIGMA
Greek_gamma | Greek_GAMMA | Greek_tau | Greek_TAU
Greek_delta | Greek_DELTA | Greek_upsilon | Greek_UPSILON
Greek_epsilon | Greek_EPSILON | Greek_phi | Greek_PHI
Greek_zeta | Greek_ZETA | Greek_chi | Greek_CHI
Greek_eta | Greek_ETA | Greek_psi | Greek_PSI
Greek_theta | Greek_THETA | Greek_omega | Greek_OMEGA

#### Capitalization Rules for Other Keysyms

XKB defines no capitalization rules for symbols in any other set of keysyms provided by the consortium. Applications are free to apply additional rules for private keysyms or for other keysyms not covered by XKB.