wayland::server::keyboard_t(3)
π wayland::server::keyboard_t
okay so bestie, this is a page from the Wayland++ manual β yes, that Wayland++ β and it's all about wayland::server::keyboard_t, the keyboard input device wrapper. Pull up a chair, we're doing this πΈ
β¨ NAME β¨
wayland::server::keyboard_t β keyboard input device. that's it, that's the whole vibe πΉ
β¨ SYNOPSIS β¨
#include <wayland-server-protocol.hpp>
π Public Member Functions
std::function< void()> & on_release ()β release the keyboard objectvoid keymap (keyboard_keymap_format const &format, int fd, uint32_t size, bool post=true)β keyboard mappingvoid enter (uint32_t serial, surface_t const &surface, array_t const &keys, bool post=true)β enter eventvoid leave (uint32_t serial, surface_t const &surface, bool post=true)β leave eventvoid key (uint32_t serial, uint32_t time, uint32_t key, keyboard_key_state const &state, bool post=true)β key eventvoid 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 statevoid repeat_info (int32_t rate, int32_t delay, bool post=true)β repeat rate and delaybool can_repeat_info () constβ Check whether therepeat_infofunction 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 () constuint32_t get_id () constclient_t get_client () constunsigned int get_version () conststd::string get_class ()
π¦ Static Public Attributes
static constexpr std::uint32_t keymap_since_version = 1β Minimum protocol version required for thekeymapfunction.static constexpr std::uint32_t enter_since_version = 1β Minimum protocol version required for theenterfunction.static constexpr std::uint32_t leave_since_version = 1β Minimum protocol version required for theleavefunction.static constexpr std::uint32_t key_since_version = 1β Minimum protocol version required for thekeyfunction.static constexpr std::uint32_t modifiers_since_version = 1β Minimum protocol version required for themodifiersfunction.static constexpr std::uint32_t repeat_info_since_version = 4β Minimum protocol version required for therepeat_infofunction.
π Detailed Description π
keyboard input device π
The wl_keyboard interface represents one or more keyboards associated with a seat. (yes, one or more, a whole squad of keyboards, main character energy fr fr β¨οΈβ¨)
Definition at line 3291 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. lowkey the bestie you call before you even think about calling repeat_info π
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 eventsurfaceβ surface gaining keyboard focuskeysβ 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. not optional, not a suggestion, it's the law periodt π
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 eventtimeβ timestamp with millisecond granularitykeyβ key that produced the eventstateβ physical state of the key
A key was pressed or released. The time argument is a timestamp with millisecond granularity, with an undefined base. (undefined base gang, we simply do not know where the clock started π°οΈπ)
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 formatfdβ keymap file descriptorsizeβ 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, thefdmust be mapped withMAP_PRIVATEby the recipient, asMAP_SHAREDmay fail. like, it will genuinely not work bestie, don't do it to yourself π
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 eventsurfaceβ 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. (order matters, always has, always will π«Ά)
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. no sticky keys, no ghost typing, we move 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 eventmods_depressedβ depressed modifiersmods_latchedβ latched modifiersmods_lockedβ locked modifiersgroupβ keyboard layout
Notifies clients that the modifier and/or group state has changed, and it should update its local state. self-care is updating your 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.
(yes it says "certail" in the original and we are respectfully not touching it π it's iconic, it stays)
π bool wayland::server::resource_t::proxy_has_object () const [inherited]
Check whether this wrapper actually wraps an object.
Returns
trueif there is an underlying object,falseif 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 seconddelayβ 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. guaranteed fr fr π€
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. don't ghost the event after the first message bestie π
Definition at line 2817 of file wayland-server-protocol.cpp.
π Member Data Documentation π
β std::uint32_t wayland::server::keyboard_t::enter_since_version = 1 [static], [constexpr]
Minimum protocol version required for the enter function.
Definition at line 3357 of file wayland-server-protocol.hpp.
β std::uint32_t wayland::server::keyboard_t::key_since_version = 1 [static], [constexpr]
Minimum protocol version required for the key function.
Definition at line 3400 of file wayland-server-protocol.hpp.
β std::uint32_t wayland::server::keyboard_t::keymap_since_version = 1 [static], [constexpr]
Minimum protocol version required for the keymap function.
Definition at line 3339 of file wayland-server-protocol.hpp.
β std::uint32_t wayland::server::keyboard_t::leave_since_version = 1 [static], [constexpr]
Minimum protocol version required for the leave function.
Definition at line 3377 of file wayland-server-protocol.hpp.
β std::uint32_t wayland::server::keyboard_t::modifiers_since_version = 1 [static], [constexpr]
Minimum protocol version required for the modifiers function.
Definition at line 3417 of file wayland-server-protocol.hpp.
β 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 3441 of file wayland-server-protocol.hpp.
πΈ Author πΈ
Generated automatically by Doxygen for Wayland++ from the source code. (Doxygen did the homework, we just did the glow-up β¨)
okay that's the whole page bestie, you ate that π«Ά Version 1.0.1, dated Fri Mar 27 2026 13:15 β go forth and handle those keyboards, iykyk πππ¦
π¦ where this page comes from
- ubuntu stonking: waylandpp-dev 1.0.1-2 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms