---
name: "wayland_server_keyboard_t"
section: "3"
platform: "linux"
package: "waylandpp-dev"
version: "1.0.0-6+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/wayland_server_keyboard_t"
---

# wayland\_server\_keyboard\_t(3)

keyboard input device

## NAME

wayland::server::keyboard\_t - keyboard input device

## SYNOPSIS

`#include <wayland-server-protocol.hpp>`

Inherits wayland::server::resource\_t.

### Public Member Functions

std::function\< void()\> & **on\_release** ()\
 release the keyboard object  void **keymap** (keyboard\_keymap\_format const &format, int fd, uint32\_t size, bool post=true)\
 keyboard mapping  void **enter** (uint32\_t serial, **surface\_t** const &surface, array\_t const &keys, bool post=true)\
 enter event  void **leave** (uint32\_t serial, **surface\_t** const &surface, bool post=true)\
 leave event  void **key** (uint32\_t serial, uint32\_t time, uint32\_t key, keyboard\_key\_state const &state, bool post=true)\
 key event  void **modifiers** (uint32\_t serial, uint32\_t mods\_depressed, uint32\_t mods\_latched, uint32\_t mods\_locked, uint32\_t group, bool post=true)\
 modifier and group state  void **repeat\_info** (int32\_t rate, int32\_t delay, bool post=true)\
 repeat rate and delay  bool **can\_repeat\_info** () const\
 Check whether the **repeat\_info** function is available with the currently bound version of the protocol.  bool **proxy\_has\_object** () const\
 Check whether this wrapper actually wraps an object.  void **post\_no\_memory** () const\
 uint32\_t **get\_id** () const\
 client\_t **get\_client** () const\
 unsigned int **get\_version** () const\
 std::string **get\_class** ()\

### Static Public Attributes

static constexpr std::uint32\_t **keymap\_since\_version** = 1\
 Minimum protocol version required for the **keymap** function.  static constexpr std::uint32\_t **enter\_since\_version** = 1\
 Minimum protocol version required for the **enter** function.  static constexpr std::uint32\_t **leave\_since\_version** = 1\
 Minimum protocol version required for the **leave** function.  static constexpr std::uint32\_t **key\_since\_version** = 1\
 Minimum protocol version required for the **key** function.  static constexpr std::uint32\_t **modifiers\_since\_version** = 1\
 Minimum protocol version required for the **modifiers** function.  static constexpr std::uint32\_t **repeat\_info\_since\_version** = 4\
 Minimum protocol version required for the **repeat\_info** function.

## Detailed Description

keyboard input device

The wl\_keyboard interface represents one or more keyboards associated with a seat.

Definition at line **3290** of file **wayland-server-protocol.hpp**.

## Member Function Documentation

### bool keyboard\_t::can\_repeat\_info () const

Check whether the **repeat\_info** function is available with the currently bound version of the protocol.

Definition at line **2822** of file **wayland-server-protocol.cpp**.

### void keyboard\_t::enter (uint32\_t serial, surface\_t const & surface, array\_t const & keys, bool post = `true`)

enter event

**Parameters**

*serial* serial number of the enter event \
 *surface* surface gaining keyboard focus \
 *keys* the currently pressed keys

Notification that this seat's keyboard focus is on a certain surface.

The compositor must send the wl\_keyboard.modifiers event after this event.

Definition at line **2797** of file **wayland-server-protocol.cpp**.

### std::string wayland::server::resource\_t::get\_class ()` [inherited]`

Retrieve the interface name (class) of a resource object.

**Returns**

Interface name of the resource object.

### client\_t wayland::server::resource\_t::get\_client () const` [inherited]`

Get the associated client

**Returns**

the client that owns the resource.

### uint32\_t wayland::server::resource\_t::get\_id () const` [inherited]`

Get the internal ID of the resource

**Returns**

the internal ID of the resource

### unsigned int wayland::server::resource\_t::get\_version () const` [inherited]`

Get interface version

**Returns**

Interface version this resource has been constructed with.

### void keyboard\_t::key (uint32\_t serial, uint32\_t time, uint32\_t key, keyboard\_key\_state const & state, bool post = `true`)

key event

**Parameters**

*serial* serial number of the key event \
 *time* timestamp with millisecond granularity \
 *key* key that produced the event \
 *state* physical state of the key

A key was pressed or released. The time argument is a timestamp with millisecond granularity, with an undefined base.

The key is a platform-specific key code that can be interpreted by feeding it to the keyboard mapping (see the keymap event).

If this event produces a change in modifiers, then the resulting wl\_keyboard.modifiers event must be sent after this event.

Definition at line **2807** of file **wayland-server-protocol.cpp**.

### void keyboard\_t::keymap (keyboard\_keymap\_format const & format, int fd, uint32\_t size, bool post = `true`)

keyboard mapping

**Parameters**

*format* keymap format \
 *fd* keymap file descriptor \
 *size* keymap size, in bytes

This event provides a file descriptor to the client which can be memory-mapped in read-only mode to provide a keyboard mapping description.

From version 7 onwards, the fd must be mapped with MAP\_PRIVATE by the recipient, as MAP\_SHARED may fail.

Definition at line **2792** of file **wayland-server-protocol.cpp**.

### void keyboard\_t::leave (uint32\_t serial, surface\_t const & surface, bool post = `true`)

leave event

**Parameters**

*serial* serial number of the leave event \
 *surface* surface that lost keyboard focus

Notification that this seat's keyboard focus is no longer on a certain surface.

The leave notification is sent before the enter notification for the new focus.

After this event client must assume that all keys, including modifiers, are lifted and also it must stop key repeating if there's some going on.

Definition at line **2802** of file **wayland-server-protocol.cpp**.

### void keyboard\_t::modifiers (uint32\_t serial, uint32\_t mods\_depressed, uint32\_t mods\_latched, uint32\_t mods\_locked, uint32\_t group, bool post = `true`)

modifier and group state

**Parameters**

*serial* serial number of the modifiers event \
 *mods\_depressed* depressed modifiers \
 *mods\_latched* latched modifiers \
 *mods\_locked* locked modifiers \
 *group* keyboard layout

Notifies clients that the modifier and/or group state has changed, and it should update its local state.

Definition at line **2812** of file **wayland-server-protocol.cpp**.

### std::function\< void()\> & keyboard\_t::on\_release ()

release the keyboard object

Definition at line **2786** of file **wayland-server-protocol.cpp**.

### void wayland::server::resource\_t::post\_no\_memory () const` [inherited]`

Post 'not enough memory' error to the client

If the compositor has not enough memory to fulfill a certail request of the client, this function can be called to notify the client of this circumstance.

### bool wayland::server::resource\_t::proxy\_has\_object () const` [inherited]`

Check whether this wrapper actually wraps an object.

**Returns**

true if there is an underlying object, false if this wrapper is empty

### void keyboard\_t::repeat\_info (int32\_t rate, int32\_t delay, bool post = `true`)

repeat rate and delay

**Parameters**

*rate* the rate of repeating keys in characters per second \
 *delay* delay in milliseconds since key down until repeating starts

Informs the client about the keyboard's repeat rate and delay.

This event is sent as soon as the wl\_keyboard object has been created, and is guaranteed to be received by the client before any key press event.

Negative values for either rate or delay are illegal. A rate of zero will disable any repeating (regardless of the value of delay).

This event can be sent later on as well with a new value if necessary, so clients should continue listening for the event past the creation of wl\_keyboard.

Definition at line **2817** of file **wayland-server-protocol.cpp**.

## Member Data Documentation

### constexpr std::uint32\_t wayland::server::keyboard\_t::enter\_since\_version = 1` [static]`, ` [constexpr]`

Minimum protocol version required for the **enter** function.

Definition at line **3356** of file **wayland-server-protocol.hpp**.

### constexpr std::uint32\_t wayland::server::keyboard\_t::key\_since\_version = 1` [static]`, ` [constexpr]`

Minimum protocol version required for the **key** function.

Definition at line **3399** of file **wayland-server-protocol.hpp**.

### constexpr std::uint32\_t wayland::server::keyboard\_t::keymap\_since\_version = 1` [static]`, ` [constexpr]`

Minimum protocol version required for the **keymap** function.

Definition at line **3338** of file **wayland-server-protocol.hpp**.

### constexpr std::uint32\_t wayland::server::keyboard\_t::leave\_since\_version = 1` [static]`, ` [constexpr]`

Minimum protocol version required for the **leave** function.

Definition at line **3376** of file **wayland-server-protocol.hpp**.

### constexpr std::uint32\_t wayland::server::keyboard\_t::modifiers\_since\_version = 1` [static]`, ` [constexpr]`

Minimum protocol version required for the **modifiers** function.

Definition at line **3416** of file **wayland-server-protocol.hpp**.

### constexpr std::uint32\_t wayland::server::keyboard\_t::repeat\_info\_since\_version = 4` [static]`, ` [constexpr]`

Minimum protocol version required for the **repeat\_info** function.

Definition at line **3440** of file **wayland-server-protocol.hpp**.

## Author

Generated automatically by Doxygen for Wayland++ from the source code.
