river-xkb-config-v1

configure xkbcommon keyboards

(index)

This protocol allow a client to set the xkbcommon keymap of individual keyboard input devices. It also allows switching between the layouts of a keymap and toggling capslock/numlock state.

The key words "must", "must not", "required", "shall", "shall not", "should", "should not", "recommended", "may", and "optional" in this document are to be interpreted as described in IETF RFC 2119.

river_xkb_config_v1

xkb config global interface

Interface
Version 1

Global interface for configuring xkb devices.

This global should only be advertised if river_input_manager_v1 is advertised as well.

river_xkb_config_v1.stop

stop sending events

Request
Since Version 1

This request indicates that the client no longer wishes to receive events on this object.

The Wayland protocol is asynchronous, which means the server may send further events until the stop request is processed. The client must wait for a river_xkb_config_v1.finished event before destroying this object.

river_xkb_config_v1.destroy

destroy the river_xkb_config_v1 object

Destructor Request
Since Version 1

This request should be called after the finished event has been received to complete destruction of the object.

It is a protocol error to make this request before the finished event has been received.

If a client wishes to destroy this object it should send a river_xkb_config_v1.stop request and wait for a river_xkb_config_v1.finished event. Once the finished event is received it is safe to destroy this object and any other objects created through this interface.

river_xkb_config_v1.create_keymap

create a keymap object

Request
Since Version 1

The server must be able to mmap the fd with MAP_PRIVATE. The server will fstat the fd to obtain the size of the keymap. The client must not modify the contents of the fd after making this request. The client should seal the fd with fcntl.

ArgumentTypeDescription
idnew_id<river_xkb_keymap_v1>

fdfd

formatuint<keymap_format>

river_xkb_config_v1.finished

the server has finished with the object

Event
Since Version 1

This event indicates that the server will send no further events on this object. The client should destroy the object. See river_xkb_config_v1.destroy for more information.

river_xkb_config_v1.xkb_keyboard

new xkb keyboard

Event
Since Version 1

A new xkbcommon keyboard has been created. Not every river_input_device_v1 is necessarily an xkbcommon keyboard as well.

ArgumentTypeDescription
idnew_id<river_xkb_keyboard_v1>

river_xkb_config_v1.error

Enum
Since Version 1
EntryValueSinceDescription
invalid_destroy01

invalid_format11

EntryValueSinceDescription
text_v111

XKB_KEYMAP_FORMAT_TEXT_V1

text_v221

XKB_KEYMAP_FORMAT_TEXT_V2

river_xkb_keymap_v1

xkbcommon keymap

Interface
Version 1

This object is the result of attempting to create an xkbcommon keymap.

river_xkb_keymap_v1.destroy

destroy the keymap object

Destructor Request
Since Version 1

This request indicates that the client will no longer use the keymap object and that it may be safely destroyed.

river_xkb_keymap_v1.success

keymap creation succeeded

Event
Since Version 1

The keymap object was successfully created and may be used with the river_xkb_keyboard_v1.set_keymap request.

river_xkb_keymap_v1.failure

keymap creation failed

Event
Since Version 1

The compositor failed to create a keymap from the given parameters.

It is a protocol error to use this keymap object with river_xkb_keyboard_v1.set_keymap.

ArgumentTypeDescription
error_msgstring

river_xkb_keyboard_v1

xkbcommon keyboard device

Interface
Version 1

This object represent a physical keyboard which has its configuration and state managed by xkbcommon.

river_xkb_keyboard_v1.destroy

destroy the xkb keyboard object

Destructor Request
Since Version 1

This request indicates that the client will no longer use the keyboard object and that it may be safely destroyed.

river_xkb_keyboard_v1.set_keymap

set the keymap

Request
Since Version 1

Set the keymap for the keyboard.

It is a protocol error to pass a keymap object for which the river_xkb_keymap_v1.success event was not received.

ArgumentTypeDescription
keymapobject<river_xkb_keymap_v1>

river_xkb_keyboard_v1.set_layout_by_index

set the active layout by index

Request
Since Version 1

Set the active layout for the keyboard's keymap. Has no effect if the layout index is out of bounds for the current keymap.

ArgumentTypeDescription
indexint

river_xkb_keyboard_v1.set_layout_by_name

set the active layout by name

Request
Since Version 1

Set the active layout for the keyboard's keymap. Has no effect if there is no layout with the give name for the keyboard's keymap.

ArgumentTypeDescription
namestring

river_xkb_keyboard_v1.capslock_enable

enable capslock

Request
Since Version 1

Enable capslock for the keyboard.

river_xkb_keyboard_v1.capslock_disable

disable capslock

Request
Since Version 1

Disable capslock for the keyboard.

river_xkb_keyboard_v1.numlock_enable

enable numlock

Request
Since Version 1

Enable numlock for the keyboard.

river_xkb_keyboard_v1.numlock_disable

disable numlock

Request
Since Version 1

Disable numlock for the keyboard.

river_xkb_keyboard_v1.removed

the xkb keyboard is removed

Event
Since Version 1

This event indicates that the xkb keyboard has been removed.

The server will send no further events on this object and ignore any request (other than river_xkb_keyboard_v1.destroy) made after this event is sent. The client should destroy this object with the river_xkb_keyboard_v1.destroy request to free up resources.

river_xkb_keyboard_v1.input_device

corresponding river input device

Event
Since Version 1

The river_input_device_v1 corresponding to this xkb keyboard. This event will always be the first event sent on the river_xkb_keyboard_v1 object, and it will be sent exactly once.

ArgumentTypeDescription
deviceobject<river_input_device_v1>

river_xkb_keyboard_v1.layout

currently active layout

Event
Since Version 1

The currently active layout index and name. The name arg may be null if the active layout does not have a name.

This event is sent once when the river_xkb_keyboard_v1 is created and again whenever the layout changes.

ArgumentTypeDescription
indexuint

namenullable string

river_xkb_keyboard_v1.capslock_enabled

capslock is currently enabled

Event
Since Version 1

Capslock is currently enabled for the keyboard.

This event is sent once when the river_xkb_keyboard_v1 is created and again whenever the capslock state changes.

river_xkb_keyboard_v1.capslock_disabled

capslock is currently disabled

Event
Since Version 1

Capslock is currently disabled for the keyboard.

This event is sent once when the river_xkb_keyboard_v1 is created and again whenever the capslock state changes.

river_xkb_keyboard_v1.numlock_enabled

numlock is currently enabled

Event
Since Version 1

Numlock is currently enabled for the keyboard.

This event is sent once when the river_xkb_keyboard_v1 is created and again whenever the numlock state changes.

river_xkb_keyboard_v1.numlock_disabled

numlock is currently disabled

Event
Since Version 1

Numlock is currently disabled for the keyboard.

This event is sent once when the river_xkb_keyboard_v1 is created and again whenever the numlock state changes.

river_xkb_keyboard_v1.error

Enum
Since Version 1
EntryValueSinceDescription
invalid_keymap01

Copyright