# Error index {#error-index}
This page lists the warnings and errors generated by xkbcommon.
There are currently 20 entries.
@todo The documentation of the log messages is a work in progress.
## Index
| Code | Identifier | Description | Type |
| --------- | ---------------------------- | ----------- | ---- |
| [XKB-034] | `malformed-number-literal` | Warn on malformed number literals | Error |
| [XKB-060] | `unsupported-modifier-mask` | Warn on unsupported modifier mask | Error |
| [XKB-107] | `unrecognized-keysym` | Warn on unrecognized keysyms | Warning |
| [XKB-183] | `cannot-infer-key-type` | Warn if no key type can be inferred | Warning |
| [XKB-237] | `unsupported-group-index` | Warn when a group index is not supported | Error |
| [XKB-286] | `undefined-key-type` | Warn if using an undefined key type | Warning |
| [XKB-305] | `non-base-group-name` | Warn if a group name was defined for group other than the first one | Warning |
| [XKB-312] | `unsupported-shift-level` | Warn when a shift level is not supported | Error |
| [XKB-461] | `conflicting-key-symbol` | Warn if there are conflicting keysyms while merging keys | Warning |
| [XKB-516] | `extra-symbols-ignored` | TODO: add description | Warning |
| [XKB-578] | `wrong-field-type` | Warn when a field has not the expected type | Error |
| [XKB-645] | `unknown-char-escape-sequence` | Warn on unknown escape sequence in string literal | Warning |
| [XKB-700] | `multiple-groups-at-once` | Warn if a key defines multiple groups at once | Warning |
| [XKB-769] | `invalid-syntax` | The syntax is invalid and the file cannot be parsed | Error |
| [XKB-770] | `undefined-keycode` | TODO: add description | Warning |
| [XKB-800] | `conflicting-modmap` | Warn if there are conflicting modmap definitions | Warning |
| [XKB-883] | `conflicting-key-action` | Warn if there are conflicting actions while merging keys | Warning |
| [XKB-893] | `conflicting-key-type` | Warn if there are conflicting key types while merging groups | Warning |
| [XKB-935] | `conflicting-key-fields` | Warn if there are conflicting fields while merging keys | Warning |
| [XKB-965] | `unresolved-keymap-symbol` | Warn if using a symbol not defined in the keymap | Warning |
## Details
### XKB-034 – Malformed number literal {#XKB-034}
- Since
- 1.0.0
- Type
- Error
- Summary
- Warn on malformed number literals
xkbcommon can parse the following number literal formats:
- *decimal integer:* 1, 123, etc.
- *decimal floating-point number:* 1.23, etc.
- *hexadecimal integer:* prefixed with “0x”: 0x123, 0xff, 0xAB, etc.
### XKB-060 – Unsupported modifier mask {#XKB-060}
- Since
- 1.0.0
- Type
- Error
- Summary
- Warn on unsupported modifier mask
### XKB-107 – Unrecognized keysym {#XKB-107}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn on unrecognized keysyms
xkbcommon replaces keysyms it does not recognize by the keysym `NoSymbol`.
You may find the list of supported keysyms in
`include/xkbcommon/xkbcommon-keysyms.h`.
#### Examples
Unrecognized keysym “`coma`”
**Error message:**
```
xkbcommon: WARNING: [XKB-107] de:31:20: unrecognized keysym "coma"
```
xkbcommon does not recognize the keysym “`coma`”. It is most probably
a typo for “comma
”.
See: `XKB_KEY_comma` in `include/xkbcommon/xkbcommon-keysyms.h`.
**Fix:**
Before
```c
key
{[ coma, semicolon, periodcentered, multiply ]};
```
After
```c
key
{[ comma, semicolon, periodcentered, multiply ]};
```
### XKB-183 – Cannot infer key type {#XKB-183}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if no key type can be inferred
### XKB-237 – Unsupported group index {#XKB-237}
- Since
- 1.0.0
- Type
- Error
- Summary
- Warn when a group index is not supported
xkbcommon supports group index in the range (1..4).
### XKB-286 – Undefined key type {#XKB-286}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if using an undefined key type
### XKB-305 – Non base group name {#XKB-305}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if a group name was defined for group other than the first one
### XKB-312 – Unsupported shift level {#XKB-312}
- Since
- 1.0.0
- Type
- Error
- Summary
- Warn when a shift level is not supported
Shift levels are _one_-indexed. xkbcommon supports two formats of shift levels:
as numbers and as identifiers `LevelN`, where `N` is in the range (1..8).
### XKB-461 – Conflicting key symbol {#XKB-461}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if there are conflicting keysyms while merging keys
### XKB-516 – Extra symbols ignored {#XKB-516}
- Since
- 1.0.0
- Type
- Warning
- Summary
- TODO: add description
### XKB-578 – Wrong field type {#XKB-578}
- Since
- 1.0.0
- Type
- Error
- Summary
- Warn when a field has not the expected type
### XKB-645 – Unknown char escape sequence {#XKB-645}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn on unknown escape sequence in string literal
xkbcommon support the following escape sequences in string literals:
| Escape sequence | Corresponding character |
| --------------- | ----------------------------------- |
| `\b` | `U+0008` Backspace |
| `\t` | `U+0009` Character tabulation |
| `\n` | `U+000A` Line feed |
| `\v` | `U+000B` Vertical tabulation |
| `\f` | `U+000C` Form feed |
| `\r` | `U+000D` Carriage return |
| `\e` | `U+001B` Escape |
| `\\` | `U+005C` Backslash |
| `\NNN` | _Octal_ escape, from `\0` to `\777` |
### XKB-700 – Multiple groups at once {#XKB-700}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if a key defines multiple groups at once
### XKB-769 – Invalid syntax {#XKB-769}
- Since
- 1.0.0
- Type
- Error
- Summary
- The syntax is invalid and the file cannot be parsed
### XKB-770 – Undefined keycode {#XKB-770}
- Since
- 1.0.0
- Type
- Warning
- Summary
- TODO: add description
### XKB-800 – Conflicting modmap {#XKB-800}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if there are conflicting modmap definitions
@todo detailed explanation and examples
### XKB-883 – Conflicting key action {#XKB-883}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if there are conflicting actions while merging keys
### XKB-893 – Conflicting key type {#XKB-893}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if there are conflicting key types while merging groups
### XKB-935 – Conflicting key fields {#XKB-935}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if there are conflicting fields while merging keys
### XKB-965 – Unresolved keymap symbol {#XKB-965}
- Since
- 1.0.0
- Type
- Warning
- Summary
- Warn if using a symbol not defined in the keymap
[XKB-034]: @ref XKB-034
[XKB-060]: @ref XKB-060
[XKB-107]: @ref XKB-107
[XKB-183]: @ref XKB-183
[XKB-237]: @ref XKB-237
[XKB-286]: @ref XKB-286
[XKB-305]: @ref XKB-305
[XKB-312]: @ref XKB-312
[XKB-461]: @ref XKB-461
[XKB-516]: @ref XKB-516
[XKB-578]: @ref XKB-578
[XKB-645]: @ref XKB-645
[XKB-700]: @ref XKB-700
[XKB-769]: @ref XKB-769
[XKB-770]: @ref XKB-770
[XKB-800]: @ref XKB-800
[XKB-883]: @ref XKB-883
[XKB-893]: @ref XKB-893
[XKB-935]: @ref XKB-935
[XKB-965]: @ref XKB-965