# lv_xkb.h (/api/public/drivers/indev/lv_xkb_h)



<RelatedHeaders name="lv_xkb_private.h" isPrivate="false" />

<ApiSummary functions="3" />

Functions [#functions]

<ApiMember kind="function" name="lv_xkb_init" file="public/drivers/indev/lv_xkb.h" line="37" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/drivers/indev/lv_xkb.h#L37">
  lv_xkb_init [#lv_xkb_init]

  Initialise an XKB descriptor.

  ```c title=" " lineNumbers=1
  bool lv_xkb_init(lv_xkb_t *dsc, struct xkb_rule_names names)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name    | Type                                             |
  | ------- | ------------------------------------------------ |
  | `dsc`   | <ApiLink name="lv_xkb_t" display="lv_xkb_t *" /> |
  | `names` | `struct xkb_rule_names`                          |

  **Returns:** `bool` — true if the initialisation was successful
</ApiMember>

<ApiMember kind="function" name="lv_xkb_deinit" file="public/drivers/indev/lv_xkb.h" line="43" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/drivers/indev/lv_xkb.h#L43">
  lv_xkb_deinit [#lv_xkb_deinit]

  De-initialise an XKB descriptor.

  ```c title=" " lineNumbers=1
  void lv_xkb_deinit(lv_xkb_t *dsc)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name  | Type                                             | Description                              |
  | ----- | ------------------------------------------------ | ---------------------------------------- |
  | `dsc` | <ApiLink name="lv_xkb_t" display="lv_xkb_t *" /> | Pointer to descriptor **May** be `NULL`. |
</ApiMember>

<ApiMember kind="function" name="lv_xkb_process_key" file="public/drivers/indev/lv_xkb.h" line="52" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/include/lvgl/drivers/indev/lv_xkb.h#L52">
  lv_xkb_process_key [#lv_xkb_process_key]

  Process an evdev scancode using a specific XKB descriptor.

  ```c title=" " lineNumbers=1
  uint32_t lv_xkb_process_key(lv_xkb_t *dsc, uint32_t scancode, bool down)
  ```

  <span className="sr-only">
    Parameters
  </span>

  | Name       | Type                                             | Description                                           |
  | ---------- | ------------------------------------------------ | ----------------------------------------------------- |
  | `dsc`      | <ApiLink name="lv_xkb_t" display="lv_xkb_t *" /> | XKB descriptor to use                                 |
  | `scancode` | `uint32_t`                                       | evdev scancode to process                             |
  | `down`     | `bool`                                           | true if the key was pressed, false if it was releases |

  **Returns:** `uint32_t` — the (first) UTF-8 character produced by the event or 0 if no output was produced
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_conf_internal.h&#x22;, &#x22;lv_types.h&#x22;, &#x22;stdbool.h&#x22;, &#x22;xkbcommon.h&#x22;]" includedBy="[&#x22;lv_libinput.h&#x22;, &#x22;lvgl.h&#x22;]" />
