Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
protocol/river-libinput-config-v1.xml (32.7K)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <protocol name="river_libinput_config_v1">
3 <copyright>
4 SPDX-FileCopyrightText: © 2025 Isaac Freund
5 SPDX-License-Identifier: MIT
6
7 Permission is hereby granted, free of charge, to any person obtaining a copy
8 of this software and associated documentation files (the "Software"), to
9 deal in the Software without restriction, including without limitation the
10 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 sell copies of the Software, and to permit persons to whom the Software is
12 furnished to do so, subject to the following conditions:
13
14 The above copyright notice and this permission notice shall be included in
15 all copies or substantial portions of the Software.
16
17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 IN THE SOFTWARE.
24 </copyright>
25
26 <description summary="configure libinput devices">
27 This protocol exposes libinput device configuration APIs. The libinput
28 documentation should be referred to for detailed information on libinput's
29 behavior.
30
31 Note that the compositor will not be able to expose libinput devices through
32 this protocol when it does not have access to the hardware, for example when
33 running nested in another Wayland compositor or X11 session.
34
35 This protocol is designed so that (hopefully) any backwards compatible
36 change to libinput's API can be matched with a backwards compatible change
37 to this protocol.
38
39 Note: the libinput API uses floating point types (float and double in C)
40 which are not (yet?) natively supported by the Wayland protocol. However,
41 the Wayland protocol does support sending arbitrary bytes through the array
42 argument type. This protocol uses e.g. type="array" summary="double" to
43 indicate a native-endian IEEE-754 64-bit double value.
44
45 The key words "must", "must not", "required", "shall", "shall not",
46 "should", "should not", "recommended", "may", and "optional" in this
47 document are to be interpreted as described in IETF RFC 2119.
48 </description>
49
50 <interface name="river_libinput_config_v1" version="2">
51 <description summary="libinput config global interface">
52 Global interface for configuring libinput devices. This global should
53 only be advertised if river_input_manager_v1 is advertised as well.
54 </description>
55
56 <enum name="error">
57 <entry name="invalid_arg" value="0"
58 summary="invalid enum value or similar"/>
59 <entry name="invalid_destroy" value="1"/>
60 </enum>
61
62 <request name="stop">
63 <description summary="stop sending events">
64 This request indicates that the client no longer wishes to receive
65 events on this object.
66
67 The Wayland protocol is asynchronous, which means the server may send
68 further events until the stop request is processed. The client must wait
69 for a river_libinput_config_v1.finished event before destroying this
70 object.
71 </description>
72 </request>
73
74 <event name="finished">
75 <description summary="the server has finished with the object">
76 This event indicates that the server will send no further events on this
77 object. The client should destroy the object. See
78 river_libinput_config_v1.destroy for more information.
79 </description>
80 </event>
81
82 <request name="destroy" type="destructor">
83 <description summary="destroy the river_libinput_config_v1 object">
84 This request should be called after the finished event has been received
85 to complete destruction of the object.
86
87 It is a protocol error to make this request before the finished event
88 has been received.
89
90 If a client wishes to destroy this object it should send a
91 river_libinput_config_v1.stop request and wait for a
92 river_libinput_config_v1.finished event. Once the finished event is
93 received it is safe to destroy this object and any other objects created
94 through this interface.
95 </description>
96 </request>
97
98 <event name="libinput_device">
99 <description summary="new libinput device">
100 A new libinput device has been created. Not every river_input_device_v1
101 is necessarily a libinput device as well.
102 </description>
103 <arg name="id" type="new_id" interface="river_libinput_device_v1"/>
104 </event>
105
106 <request name="create_accel_config">
107 <description summary="create a acceleration config">
108 Create a acceleration config which can be applied
109 with river_libinput_device_v1.apply_accel_config.
110 </description>
111 <arg name="id" type="new_id"
112 interface="river_libinput_accel_config_v1"/>
113 <arg name="profile" type="uint"
114 enum="river_libinput_device_v1.accel_profile"/>
115 </request>
116 </interface>
117
118 <interface name="river_libinput_device_v1" version="2">
119 <description summary="a libinput device">
120 In general, *_support events will be sent exactly once directly after the
121 river_libinput_device_v1 is created. *_default events will be sent after
122 *_support events if the config option is supported, and *_current events
123 willl be sent after the *_default events and again whenever the config
124 option is changed.
125 </description>
126
127 <enum name="error">
128 <entry name="invalid_arg" value="0"
129 summary="invalid enum value or similar"/>
130 </enum>
131
132 <request name="destroy" type="destructor">
133 <description summary="destroy the libinput device object">
134 This request indicates that the client will no longer use the input
135 device object and that it may be safely destroyed.
136 </description>
137 </request>
138
139 <event name="removed">
140 <description summary="the libinput device is removed">
141 This event indicates that the libinput device has been removed.
142
143 The server will send no further events on this object and ignore any
144 request (other than river_libinput_device_v1.destroy) made after this
145 event is sent. The client should destroy this object with the
146 river_libinput_device_v1.destroy request to free up resources.
147 </description>
148 </event>
149
150 <event name="input_device">
151 <description summary="corresponding river input device">
152 The river_input_device_v1 corresponding to this libinput device.
153 This event will always be the first event sent on the
154 river_libinput_device_v1 object, and it will be sent exactly once.
155 </description>
156 <arg name="device" type="object" interface="river_input_device_v1"/>
157 </event>
158
159 <enum name="send_events_modes" bitfield="true">
160 <entry name="enabled" value="0"/>
161 <entry name="disabled" value="1"/>
162 <entry name="disabled_on_external_mouse" value="2"/>
163 </enum>
164
165 <event name="send_events_support">
166 <description summary="supported send events modes">
167 Supported send events modes.
168 </description>
169 <arg name="modes" type="uint" enum="send_events_modes"/>
170 </event>
171
172 <event name="send_events_default">
173 <description summary="default send events mode">
174 Default send events mode.
175 </description>
176 <arg name="mode" type="uint" enum="send_events_modes"/>
177 </event>
178
179 <event name="send_events_current">
180 <description summary="current send events mode">
181 Current send events mode.
182 </description>
183 <arg name="mode" type="uint" enum="send_events_modes"/>
184 </event>
185
186 <request name="set_send_events">
187 <description summary="set send events mode">
188 Set the send events mode for the device.
189 </description>
190 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
191 <arg name="mode" type="uint" enum="send_events_modes"/>
192 </request>
193
194 <enum name="tap_state">
195 <entry name="disabled" value="0"/>
196 <entry name="enabled" value="1"/>
197 </enum>
198
199 <event name="tap_support">
200 <description summary="tap-to-click/drag support">
201 The number of fingers supported for tap-to-click/drag.
202 If finger_count is 0, tap-to-click and drag are unsupported.
203 </description>
204 <arg name="finger_count" type="int"/>
205 </event>
206
207 <event name="tap_default">
208 <description summary="default tap-to-click state">
209 Default tap-to-click state.
210 </description>
211 <arg name="state" type="uint" enum="tap_state"/>
212 </event>
213
214 <event name="tap_current">
215 <description summary="current tap-to-click state">
216 Current tap-to-click state.
217 </description>
218 <arg name="state" type="uint" enum="tap_state"/>
219 </event>
220
221 <request name="set_tap">
222 <description summary="enable/disable tap-to-click">
223 Configure tap-to-click on this device, with a default mapping of
224 1, 2, 3 finger tap mapping to left, right, middle click, respectively.
225 </description>
226 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
227 <arg name="state" type="uint" enum="tap_state"/>
228 </request>
229
230 <enum name="tap_button_map">
231 <entry name="lrm" value="0"
232 summary="1/2/3 finger tap maps to left/right/middle"/>
233 <entry name="lmr" value="1"
234 summary="1/2/3 finger tap maps to left/middle/right"/>
235 </enum>
236
237 <event name="tap_button_map_default">
238 <description summary="default tap-to-click button map">
239 Default tap-to-click button map.
240 </description>
241 <arg name="button_map" type="uint" enum="tap_button_map"/>
242 </event>
243
244 <event name="tap_button_map_current">
245 <description summary="current tap-to-click button map">
246 Current tap-to-click button map.
247 </description>
248 <arg name="button_map" type="uint" enum="tap_button_map"/>
249 </event>
250
251 <request name="set_tap_button_map">
252 <description summary="set tap-to-click button map">
253 Set the finger number to button number mapping for tap-to-click. The
254 default mapping on most devices is to have a 1, 2 and 3 finger tap to
255 map to the left, right and middle button, respectively.
256 </description>
257 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
258 <arg name="button_map" type="uint" enum="tap_button_map"/>
259 </request>
260
261 <enum name="drag_state">
262 <entry name="disabled" value="0"/>
263 <entry name="enabled" value="1"/>
264 </enum>
265
266 <event name="drag_default">
267 <description summary="default tap-and-drag state">
268 Default tap-and-drag state.
269 </description>
270 <arg name="state" type="uint" enum="drag_state"/>
271 </event>
272
273 <event name="drag_current">
274 <description summary="current tap-and-drag state">
275 Current tap-and-drag state.
276 </description>
277 <arg name="state" type="uint" enum="drag_state"/>
278 </event>
279
280 <request name="set_drag">
281 <description summary="set tap-and-drag state">
282 Configure tap-and-drag functionality on the device.
283 </description>
284 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
285 <arg name="state" type="uint" enum="drag_state"/>
286 </request>
287
288 <enum name="drag_lock_state">
289 <entry name="disabled" value="0"/>
290 <entry name="enabled_timeout" value="1"/>
291 <entry name="enabled_sticky" value="2"/>
292 </enum>
293
294 <event name="drag_lock_default">
295 <description summary="default drag lock state">
296 Default drag lock state.
297 </description>
298 <arg name="state" type="uint" enum="drag_lock_state"/>
299 </event>
300
301 <event name="drag_lock_current">
302 <description summary="current drag lock state">
303 Current drag lock state.
304 </description>
305 <arg name="state" type="uint" enum="drag_lock_state"/>
306 </event>
307
308 <request name="set_drag_lock">
309 <description summary="set drag lock state">
310 Configure drag-lock during tapping on this device. When enabled, a
311 finger may be lifted and put back on the touchpad and the drag process
312 continues. A timeout for lifting the finger is optional. When disabled,
313 lifting the finger during a tap-and-drag will immediately stop the drag.
314 See the libinput documentation for more details.
315 </description>
316 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
317 <arg name="state" type="uint" enum="drag_lock_state"/>
318 </request>
319
320 <event name="three_finger_drag_support">
321 <description summary="three finger drag support">
322 The number of fingers supported for three/four finger drag.
323 If finger_count is less than 3, three finger drag is unsupported.
324 </description>
325 <arg name="finger_count" type="int"/>
326 </event>
327
328 <enum name="three_finger_drag_state">
329 <entry name="disabled" value="0"/>
330 <entry name="enabled_3fg" value="1"/>
331 <entry name="enabled_4fg" value="2"/>
332 </enum>
333
334 <event name="three_finger_drag_default">
335 <description summary="default three finger drag state">
336 Default three finger drag state.
337 </description>
338 <arg name="state" type="uint" enum="three_finger_drag_state"/>
339 </event>
340
341 <event name="three_finger_drag_current">
342 <description summary="current three finger drag state">
343 Current three finger drag state.
344 </description>
345 <arg name="state" type="uint" enum="three_finger_drag_state"/>
346 </event>
347
348 <request name="set_three_finger_drag">
349 <description summary="set three finger drag state">
350 Configure three finger drag functionality for the device.
351 </description>
352 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
353 <arg name="state" type="uint" enum="three_finger_drag_state"/>
354 </request>
355
356 <event name="calibration_matrix_support">
357 <description summary="support for a calibration matrix">
358 A calibration matrix is supported if the supported argument is non-zero.
359 </description>
360 <arg name="supported" type="int" summary="boolean"/>
361 </event>
362
363 <event name="calibration_matrix_default">
364 <description summary="default calibration matrix">
365 Default calibration matrix.
366 </description>
367 <arg name="matrix" type="array" summary="array of 6 floats"/>
368 </event>
369
370 <event name="calibration_matrix_current">
371 <description summary="current calibration matrix">
372 Current calibration matrix.
373 </description>
374 <arg name="matrix" type="array" summary="array of 6 floats"/>
375 </event>
376
377 <request name="set_calibration_matrix">
378 <description summary="set calibration matrix">
379 Set calibration matrix.
380 </description>
381 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
382 <arg name="matrix" type="array" summary="array of 6 floats"/>
383 </request>
384
385 <enum name="accel_profile">
386 <entry name="none" value="0"/>
387 <entry name="flat" value="1"/>
388 <entry name="adaptive" value="2"/>
389 <entry name="custom" value="4"/>
390 </enum>
391
392 <enum name="accel_profiles" bitfield="true">
393 <entry name="none" value="0"/>
394 <entry name="flat" value="1"/>
395 <entry name="adaptive" value="2"/>
396 <entry name="custom" value="4"/>
397 </enum>
398
399 <event name="accel_profiles_support">
400 <description summary="supported acceleration profiles">
401 Supported acceleration profiles.
402 </description>
403 <arg name="profiles" type="uint" enum="accel_profiles"/>
404 </event>
405
406 <event name="accel_profile_default">
407 <description summary="default acceleration profile">
408 Default acceleration profile.
409 </description>
410 <arg name="profile" type="uint" enum="accel_profile"/>
411 </event>
412
413 <event name="accel_profile_current">
414 <description summary="current acceleration profile">
415 Current acceleration profile.
416 </description>
417 <arg name="profile" type="uint" enum="accel_profile"/>
418 </event>
419
420 <request name="set_accel_profile">
421 <description summary="set acceleration profile">
422 Set the acceleration profile.
423 </description>
424 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
425 <arg name="profile" type="uint" enum="accel_profile"/>
426 </request>
427
428 <event name="accel_speed_default">
429 <description summary="default acceleration speed">
430 Default acceleration speed.
431 </description>
432 <arg name="speed" type="array" summary="double"/>
433 </event>
434
435 <event name="accel_speed_current">
436 <description summary="current acceleration speed">
437 Current acceleration speed.
438 </description>
439 <arg name="speed" type="array" summary="double"/>
440 </event>
441
442 <request name="set_accel_speed">
443 <description summary="set acceleration speed">
444 Set the acceleration speed within a range of [-1, 1], where 0 is
445 the default acceleration for this device, -1 is the slowest acceleration
446 and 1 is the maximum acceleration available on this device.
447 </description>
448 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
449 <arg name="speed" type="array" summary="double"/>
450 </request>
451
452 <request name="apply_accel_config">
453 <description summary="apply acceleration config">
454 Apply a pointer accleration config.
455 </description>
456 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
457 <arg name="config" type="object" interface="river_libinput_accel_config_v1"/>
458 </request>
459
460 <event name="natural_scroll_support">
461 <description summary="support for natural scroll">
462 Natural scroll is supported if the supported argument is non-zero.
463 </description>
464 <arg name="supported" type="int" summary="boolean"/>
465 </event>
466
467 <enum name="natural_scroll_state">
468 <entry name="disabled" value="0"/>
469 <entry name="enabled" value="1"/>
470 </enum>
471
472 <event name="natural_scroll_default">
473 <description summary="default natural scroll">
474 Default natural scroll.
475 </description>
476 <arg name="state" type="uint" enum="natural_scroll_state"/>
477 </event>
478
479 <event name="natural_scroll_current">
480 <description summary="current natural scroll state">
481 Current natural scroll.
482 </description>
483 <arg name="state" type="uint" enum="natural_scroll_state"/>
484 </event>
485
486 <request name="set_natural_scroll">
487 <description summary="set natural scroll state">
488 Set natural scroll state.
489 </description>
490 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
491 <arg name="state" type="uint" enum="natural_scroll_state"/>
492 </request>
493
494 <event name="left_handed_support">
495 <description summary="support for left-handed mode">
496 Left-handed mode is supported if the supported argument is non-zero.
497 </description>
498 <arg name="supported" type="int" summary="boolean"/>
499 </event>
500
501 <enum name="left_handed_state">
502 <entry name="disabled" value="0"/>
503 <entry name="enabled" value="1"/>
504 </enum>
505
506 <event name="left_handed_default">
507 <description summary="default left-handed mode">
508 Default left-handed mode.
509 </description>
510 <arg name="state" type="uint" enum="left_handed_state"/>
511 </event>
512
513 <event name="left_handed_current">
514 <description summary="current left-handed mode state">
515 Current left-handed mode.
516 </description>
517 <arg name="state" type="uint" enum="left_handed_state"/>
518 </event>
519
520 <request name="set_left_handed">
521 <description summary="set left-handed mode state">
522 Set left-handed mode state.
523 </description>
524 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
525 <arg name="state" type="uint" enum="left_handed_state"/>
526 </request>
527
528 <enum name="click_method">
529 <entry name="none" value="0"/>
530 <entry name="button_areas" value="1"/>
531 <entry name="clickfinger" value="2"/>
532 </enum>
533
534 <enum name="click_methods" bitfield="true">
535 <entry name="none" value="0"/>
536 <entry name="button_areas" value="1"/>
537 <entry name="clickfinger" value="2"/>
538 </enum>
539
540 <event name="click_method_support">
541 <description summary="supported click methods">
542 The click methods supported by the device.
543 </description>
544 <arg name="methods" type="uint" enum="click_methods"/>
545 </event>
546
547 <event name="click_method_default">
548 <description summary="default click method">
549 Default click method.
550 </description>
551 <arg name="method" type="uint" enum="click_method"/>
552 </event>
553
554 <event name="click_method_current">
555 <description summary="current click method">
556 Current click method.
557 </description>
558 <arg name="method" type="uint" enum="click_method"/>
559 </event>
560
561 <request name="set_click_method">
562 <description summary="set click method">
563 Set click method.
564 </description>
565 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
566 <arg name="method" type="uint" enum="click_method"/>
567 </request>
568
569 <enum name="clickfinger_button_map">
570 <entry name="lrm" value="0"/>
571 <entry name="lmr" value="1"/>
572 </enum>
573
574 <event name="clickfinger_button_map_default">
575 <description summary="default clickfinger button map">
576 Default clickfinger button map.
577 Supported if click_methods.clickfinger is supported.
578 </description>
579 <arg name="button_map" type="uint" enum="clickfinger_button_map"/>
580 </event>
581
582 <event name="clickfinger_button_map_current">
583 <description summary="current clickfinger button map">
584 Current clickfinger button map.
585 Supported if click_methods.clickfinger is supported.
586 </description>
587 <arg name="button_map" type="uint" enum="clickfinger_button_map"/>
588 </event>
589
590 <request name="set_clickfinger_button_map">
591 <description summary="set clickfinger button map">
592 Set clickfinger button map.
593 Supported if click_methods.clickfinger is supported.
594 </description>
595 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
596 <arg name="button_map" type="uint" enum="clickfinger_button_map"/>
597 </request>
598
599 <event name="middle_emulation_support">
600 <description summary="support for middle mouse button emulation">
601 Middle mouse button emulation is supported if the supported argument is
602 non-zero.
603 </description>
604 <arg name="supported" type="int" summary="boolean"/>
605 </event>
606
607 <enum name="middle_emulation_state">
608 <entry name="disabled" value="0"/>
609 <entry name="enabled" value="1"/>
610 </enum>
611
612 <event name="middle_emulation_default">
613 <description summary="default middle mouse button emulation">
614 Default middle mouse button emulation.
615 </description>
616 <arg name="state" type="uint" enum="middle_emulation_state"/>
617 </event>
618
619 <event name="middle_emulation_current">
620 <description summary="current middle mouse button emulation state">
621 Current middle mouse button emulation.
622 </description>
623 <arg name="state" type="uint" enum="middle_emulation_state"/>
624 </event>
625
626 <request name="set_middle_emulation">
627 <description summary="set middle mouse button emulation state">
628 Set middle mouse button emulation state.
629 </description>
630 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
631 <arg name="state" type="uint" enum="middle_emulation_state"/>
632 </request>
633
634 <enum name="scroll_method">
635 <entry name="no_scroll" value="0"/>
636 <entry name="two_finger" value="1"/>
637 <entry name="edge" value="2"/>
638 <entry name="on_button_down" value="4"/>
639 </enum>
640
641 <enum name="scroll_methods" bitfield="true">
642 <entry name="no_scroll" value="0"/>
643 <entry name="two_finger" value="1"/>
644 <entry name="edge" value="2"/>
645 <entry name="on_button_down" value="4"/>
646 </enum>
647
648 <event name="scroll_method_support">
649 <description summary="supported scroll methods">
650 The scroll methods supported by the device.
651 </description>
652 <arg name="methods" type="uint" enum="scroll_methods"/>
653 </event>
654
655 <event name="scroll_method_default">
656 <description summary="default scroll method">
657 Default scroll method.
658 </description>
659 <arg name="method" type="uint" enum="scroll_method"/>
660 </event>
661
662 <event name="scroll_method_current">
663 <description summary="current scroll method">
664 Current scroll method.
665 </description>
666 <arg name="method" type="uint" enum="scroll_method"/>
667 </event>
668
669 <request name="set_scroll_method">
670 <description summary="set scroll method">
671 Set scroll method.
672 </description>
673 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
674 <arg name="method" type="uint" enum="scroll_method"/>
675 </request>
676
677 <event name="scroll_button_default">
678 <description summary="default scroll button">
679 Default scroll button.
680 Supported if scroll_methods.on_button_down is supported.
681 </description>
682 <arg name="button" type="uint"/>
683 </event>
684
685 <event name="scroll_button_current">
686 <description summary="current scroll button">
687 Current scroll button.
688 Supported if scroll_methods.on_button_down is supported.
689 </description>
690 <arg name="button" type="uint"/>
691 </event>
692
693 <request name="set_scroll_button">
694 <description summary="set scroll button">
695 Set scroll button.
696 Supported if scroll_methods.on_button_down is supported.
697 </description>
698 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
699 <arg name="button" type="uint"/>
700 </request>
701
702 <enum name="scroll_button_lock_state">
703 <entry name="disabled" value="0"/>
704 <entry name="enabled" value="1"/>
705 </enum>
706
707 <event name="scroll_button_lock_default">
708 <description summary="default scroll button lock state">
709 Default scroll button lock state.
710 Supported if scroll_methods.on_button_down is supported.
711 </description>
712 <arg name="state" type="uint" enum="scroll_button_lock_state"/>
713 </event>
714
715 <event name="scroll_button_lock_current">
716 <description summary="current scroll button lock state">
717 Current scroll button lock state.
718 Supported if scroll_methods.on_button_down is supported.
719 </description>
720 <arg name="state" type="uint" enum="scroll_button_lock_state"/>
721 </event>
722
723 <request name="set_scroll_button_lock">
724 <description summary="set scroll button lock state">
725 Set scroll button lock state.
726 Supported if scroll_methods.on_button_down is supported.
727 </description>
728 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
729 <arg name="state" type="uint" enum="scroll_button_lock_state"/>
730 </request>
731
732 <event name="dwt_support">
733 <description summary="support for disable-while-typing">
734 Disable-while-typing is supported if the supported argument is
735 non-zero.
736 </description>
737 <arg name="supported" type="int" summary="boolean"/>
738 </event>
739
740 <enum name="dwt_state">
741 <entry name="disabled" value="0"/>
742 <entry name="enabled" value="1"/>
743 </enum>
744
745 <event name="dwt_default">
746 <description summary="default disable-while-typing state">
747 Default disable-while-typing state.
748 </description>
749 <arg name="state" type="uint" enum="dwt_state"/>
750 </event>
751
752 <event name="dwt_current">
753 <description summary="current disable-while-typing state">
754 Current disable-while-typing state.
755 </description>
756 <arg name="state" type="uint" enum="dwt_state"/>
757 </event>
758
759 <request name="set_dwt">
760 <description summary="set disable-while-typing state">
761 Set disable-while-typing state.
762 </description>
763 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
764 <arg name="state" type="uint" enum="dwt_state"/>
765 </request>
766
767 <event name="dwtp_support">
768 <description summary="support for disable-while-trackpointing">
769 Disable-while-trackpointing is supported if the supported argument is
770 non-zero.
771 </description>
772 <arg name="supported" type="int" summary="boolean"/>
773 </event>
774
775 <enum name="dwtp_state">
776 <entry name="disabled" value="0"/>
777 <entry name="enabled" value="1"/>
778 </enum>
779
780 <event name="dwtp_default">
781 <description summary="default disable-while-trackpointing state">
782 Default disable-while-trackpointing state.
783 </description>
784 <arg name="state" type="uint" enum="dwtp_state"/>
785 </event>
786
787 <event name="dwtp_current">
788 <description summary="current disable-while-trackpointing state">
789 Current disable-while-trackpointing state.
790 </description>
791 <arg name="state" type="uint" enum="dwtp_state"/>
792 </event>
793
794 <request name="set_dwtp">
795 <description summary="set disable-while-trackpointing state">
796 Set disable-while-trackpointing state.
797 </description>
798 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
799 <arg name="state" type="uint" enum="dwtp_state"/>
800 </request>
801
802 <event name="rotation_support">
803 <description summary="support for rotation">
804 Rotation is supported if the supported argument is non-zero.
805 </description>
806 <arg name="supported" type="int" summary="boolean"/>
807 </event>
808
809 <event name="rotation_default">
810 <description summary="default rotation angle">
811 Default rotation angle.
812 </description>
813 <arg name="angle" type="uint"/>
814 </event>
815
816 <event name="rotation_current">
817 <description summary="current rotation angle">
818 Current rotation angle.
819 </description>
820 <arg name="angle" type="uint"/>
821 </event>
822
823 <request name="set_rotation">
824 <description summary="set rotation angle">
825 Set rotation angle in degrees clockwise off the logical neutral
826 position. Angle must be in the range [0-360).
827 </description>
828 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
829 <arg name="angle" type="uint"/>
830 </request>
831
832 <event name="done" since="2">
833 <description summary="all information has been sent">
834 This event is sent after all information about the libinput device has
835 been sent.
836
837 This allows changes to one or more river_libinput_device_v1 properties
838 to be seen as atomic, even if they happen via multiple events.
839 </description>
840 </event>
841 </interface>
842
843 <interface name="river_libinput_accel_config_v1" version="1">
844 <description summary="acceleration config">
845 The result returned by libinput on setting configuration for a device.
846 </description>
847
848 <enum name="error">
849 <entry name="invalid_arg" value="0"
850 summary="invalid enum value or similar"/>
851 </enum>
852
853 <request name="destroy" type="destructor">
854 <description summary="destroy the accel object">
855 This request indicates that the client will no longer use the accel
856 config object and that it may be safely destroyed.
857 </description>
858 </request>
859
860 <enum name="accel_type">
861 <entry name="fallback" value="0"/>
862 <entry name="motion" value="1"/>
863 <entry name="scroll" value="2"/>
864 </enum>
865
866 <request name="set_points">
867 <description summary="define custom acceleration function">
868 Defines the acceleration function for a given movement type
869 in an acceleration configuration with custom accel profile.
870 </description>
871 <arg name="result" type="new_id" interface="river_libinput_result_v1"/>
872 <arg name="type" type="uint" enum="accel_type"/>
873 <arg name="step" type="array" summary="double"/>
874 <arg name="points" type="array" summary="array of doubles"/>
875 </request>
876 </interface>
877
878 <interface name="river_libinput_result_v1" version="1">
879 <description summary="config application result">
880 The result returned by libinput on setting configuration for a device.
881 </description>
882
883 <event name="success" type="destructor">
884 <description summary="config success">
885 The configuration was successfully applied to the device.
886 </description>
887 </event>
888
889 <event name="unsupported" type="destructor">
890 <description summary="config unsupported">
891 The configuration is unsupported by the device and was ignored.
892 </description>
893 </event>
894
895 <event name="invalid" type="destructor">
896 <description summary="config invalid">
897 The configuration is invalid and was ignored.
898 </description>
899 </event>
900 </interface>
901 </protocol>