---
name: "xkbcli-compile-keymap"
section: "1"
platform: "linux"
package: "libxkbcommon"
version: "1.13.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/xkbcli-compile-keymap"
---

# xkbcli-compile-keymap(1)

compile an X Keyboard keymap

## NAME

**xkbcli-compile-keymap** – compile an X Keyboard keymap

## SYNOPSIS

**xkbcli-compile-keymap** \[*options*\] \[*KEYMAP\_PATH*\]

## DESCRIPTION

**xkbcli-compile-keymap** compiles and prints a keymap based on the given options.

- *KEYMAP\_PATH*

  Path to a keymap file, or “-” to read the standard input

- **--help**

  Print help and exit

- **--verbose**

  Enable verbose debugging output

- **--test**

  Test compilation but do not print the keymap

- **--rmlvo**

  Print the full RMLVO with the defaults filled in for missing elements in YAML format

- **--kccgst**

  Print a keymap which only includes the KcCGST component names instead of the full keymap

- **--kccgst-yaml**

  Print the KcCGST component names in YAML format.

- **--modmaps**

  Print real and virtual key modmaps and modifiers encodings in YAML format.

- **--include** *PATH*

  Add the given path to the include path list. This option is order-dependent, include paths given first are searched first. If an include path is given, the default include path list is not used. Use **--include-defaults** to add the default include paths.

- **--include-defaults**

  Add the default set of include directories. This option is order-dependent, include paths given first are searched first.

- **--input-format** *keymap\_format*

  The keymap format (numeric or label, e.g. “v1”) for parsing

- **--output-format** *keymap\_format*

  The keymap format (numeric or label, e.g. “v1”) for serializing

- **--format** *keymap\_format*

  The keymap format (numeric or label, e.g. “v1”) for both parsing and serializing

- **--no-pretty**

  Disable pretty-printing for keymap serialization.

- **--drop-unused**

  Disable unused bits serialization.

- **--keymap** \[*PATH*\], **--from-xkb** \[*PATH*\]

  Load the XKB keymap from a file, ignore RMLVO options. If *PATH* is empty or “-”, read the stdin.

- **--rules** *rules*

  The XKB ruleset

- **--model** *model*

  The XKB model

- **--layout** *layout*

  The XKB layout

- **--variant** *variant*

  The XKB layout variant

- **--options** *options*

  The XKB options

- **--enable-environment-names**

  Allow to set the default RMLVO values via the following environment variables:

  - XKB\_DEFAULT\_RULES

  - XKB\_DEFAULT\_MODEL

  - XKB\_DEFAULT\_LAYOUT

  - XKB\_DEFAULT\_VARIANT

  - XKB\_DEFAULT\_OPTIONS

    Note that this option may affect the default values of the previous options.

## SEE ALSO

[xkbcli(1)](/xkbcli/1.md), *The libxkbcommon online documentation:* **https://xkbcommon.org**
