Substitute `us` for any other 2-letter country code.
Where the `[path-to-xkb-directory]` is one of the following:
* the `/usr/share/X11/xkb` directory on X11-based Linux distributions;
* the [`xkeyboard-config` git repository](https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config). There's an button to download it as a ZIP archive.
The most relevant part of the keymap is likely found in the `symbols` directory,
where variants of keymaps are defined for many languages.
### Compiling Compose files
Use libxkbcommon's `xkbcli` to compile a standalone compose file:
* the [`libx11` git repository](https://gitlab.freedesktop.org/xorg/lib/libx11/-/tree/master/nls). There's a button to download it as a ZIP archive.
### Setup in GNOME
#### Making all xkb layouts available
By default, GNOME displays only the most common keyboard layouts (`xkb_symbols`). Other keyboard layouts can be made visible via:
```sh
gsettings set org.gnome.desktop.input-sources show-all-sources true
```
In order to use completely custom layouts, [this article](https://web.archive.org/web/20260212010717/https://staticf0x.github.io/2021/custom-keyboard-layout-in-x11-and-wayland.html) may be helpful.
To run this example, you should have latest Rust in **esp** channel installed. The full instruction of installing esp Rust toolchain can be found [here](https://docs.esp-rs.org/book/installation/index.html).
[`espflash`](https://github.com/esp-rs/espflash) should also be installed:
```
cargo install cargo-espflash espflash
```
After having everything installed, use the following command to run the example:
```
cd examples/use_rust/esp32s3_ble
cargo +esp run --release
```
If everything is good, you'll see the log as the following: