libinput.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2013 Jonas Ådahl
3  * Copyright © 2013-2015 Red Hat, Inc.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 
25 #ifndef LIBINPUT_H
26 #define LIBINPUT_H
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 #include <libudev.h>
33 #include <stdarg.h>
34 #include <stdint.h>
35 #include <stdlib.h>
36 
37 #define LIBINPUT_ATTRIBUTE_PRINTF(_format, _args) \
38  __attribute__ ((format (printf, _format, _args)))
39 #define LIBINPUT_ATTRIBUTE_DEPRECATED __attribute__ ((deprecated))
40 
48 struct libinput;
49 
58 
68 
77 
97 
109 
117 
125 
134 
146 
160 
174 
188 
198 };
199 
214 };
215 
225 };
226 
237  LIBINPUT_LED_KANA = (1 << 4)
238 };
239 
249 };
250 
266 };
267 
304 };
305 
321 };
322 
338 };
339 
374 };
375 
395 };
396 
411 };
412 
441 
458 int
460 
485  unsigned int index);
486 
499 unsigned int
501 
519 unsigned int
521  struct libinput_tablet_pad_mode_group *group);
522 
542 unsigned int
544 
557 int
559  unsigned int button);
560 
573 int
575  unsigned int dial);
576 
589 int
591  unsigned int ring);
592 
605 int
607  unsigned int strip);
608 
627 int
629  struct libinput_tablet_pad_mode_group *group,
630  unsigned int button);
631 
645 
659 
673 void
675  struct libinput_tablet_pad_mode_group *group,
676  void *user_data);
677 
689 void *
691  struct libinput_tablet_pad_mode_group *group);
692 
707 };
708 
723 
739 };
740 
749 struct libinput_event_switch;
750 
763 
773 
779 
781 
815 
829 
843 
858 
868 
959 
983 
991 
1004 
1012 
1024 
1029 };
1030 
1047 void
1048 libinput_event_destroy(struct libinput_event *event);
1049 
1059 
1068 struct libinput *
1070 
1084 struct libinput_device *
1086 
1097 struct libinput_event_pointer *
1099 
1110 struct libinput_event_keyboard *
1112 
1123 struct libinput_event_touch *
1125 
1143 struct libinput_event_gesture *
1145 
1160 
1173 
1186 struct libinput_event_switch *
1188 
1202 
1208 struct libinput_event *
1210 
1226 uint32_t
1228 
1237 uint64_t
1239 
1245 uint32_t
1247 
1253 enum libinput_key_state
1255 
1261 struct libinput_event *
1263 
1276 uint32_t
1278 
1294 uint32_t
1296 
1305 uint64_t
1307 
1326 double
1328 
1347 double
1349 
1371 double
1373 
1395 double
1397 
1413 double
1415 
1431 double
1433 
1451 double
1453  uint32_t width);
1454 
1472 double
1474  uint32_t height);
1475 
1488 uint32_t
1490 
1505 
1519 uint32_t
1521 
1544 int
1546  enum libinput_pointer_axis axis);
1547 
1572 double
1574  enum libinput_pointer_axis axis);
1575 
1624 
1650 double
1652  enum libinput_pointer_axis axis);
1653 
1702 double
1704  enum libinput_pointer_axis axis);
1705 
1742 double
1744  enum libinput_pointer_axis axis);
1745 
1751 struct libinput_event *
1753 
1768 uint32_t
1770 
1779 uint64_t
1781 
1801 int32_t
1803 
1823 int32_t
1825 
1843 double
1845 
1863 double
1865 
1883 double
1885  uint32_t width);
1886 
1904 double
1906  uint32_t height);
1907 
1913 struct libinput_event *
1915 
1938 uint32_t
1940 
1949 uint64_t
1951 
1957 struct libinput_event *
1959 
1975 int
1977 
1992 int
1994 
2010 double
2012 
2028 double
2030 
2049 double
2051 
2070 double
2072 
2099 double
2101 
2123 double
2125 
2150 struct libinput_event *
2152 
2172 int
2174 
2194 int
2196 
2216 int
2218  struct libinput_event_tablet_tool *event);
2219 
2241 int
2243  struct libinput_event_tablet_tool *event);
2244 
2264 int
2266 
2286 int
2307 int
2309  struct libinput_event_tablet_tool *event);
2329 int
2331 
2349 int
2351  struct libinput_event_tablet_tool *event);
2352 
2370 int
2372  struct libinput_event_tablet_tool *event);
2373 
2393 int
2395 
2416 double
2418 
2439 double
2441 
2458 double
2460 
2477 double
2479 
2493 double
2495 
2509 double
2511 
2529 double
2531 
2549 double
2551 
2571 double
2573 
2589 double
2591  struct libinput_event_tablet_tool *event);
2592 
2608 double
2610 
2626 double
2628 
2639 double
2641 
2654 int
2656  struct libinput_event_tablet_tool *event);
2657 
2677 double
2679  uint32_t width);
2680 
2700 double
2702  uint32_t height);
2703 
2726 struct libinput_tablet_tool *
2728 
2757  struct libinput_event_tablet_tool *event);
2758 
2774 
2789 uint32_t
2791 
2807 
2823 uint32_t
2825  struct libinput_event_tablet_tool *event);
2826 
2838 uint32_t
2840 
2852 uint64_t
2854 
2880 
2900 uint64_t
2902 
2916 struct libinput_tablet_tool *
2918 
2933 struct libinput_tablet_tool *
2935 
2946 int
2948 
2959 int
2961 
2972 int
2974 
2985 int
2987 
2998 int
3000 
3012 int
3014 
3025 int
3027 
3041 int
3042 libinput_tablet_tool_has_button(struct libinput_tablet_tool *tool, uint32_t code);
3043 
3060 int
3062 
3099 uint64_t
3101 
3114 void *
3116 
3127 void
3128 libinput_tablet_tool_set_user_data(struct libinput_tablet_tool *tool, void *user_data);
3129 
3146 struct libinput_event *
3148 
3171 double
3173 
3190 unsigned int
3192 
3211 
3234 double
3236 
3253 unsigned int
3255 
3274 
3295 uint32_t
3297 
3314 
3333 uint32_t
3335 
3350 enum libinput_key_state
3352 
3369 double
3371 
3388 unsigned int
3390 
3423 unsigned int
3425 
3451 
3463 uint32_t
3465 
3477 uint64_t
3479 
3501 enum libinput_switch
3503 
3521 
3529 struct libinput_event *
3531 
3543 uint32_t
3545 
3557 uint64_t
3559 
3587  int (*open_restricted)(const char *path, int flags, void *user_data);
3595  void (*close_restricted)(int fd, void *user_data);
3596 };
3597 
3611 struct libinput *
3612 libinput_udev_create_context(const struct libinput_interface *interface,
3613  void *user_data,
3614  struct udev *udev);
3615 
3637 int
3638 libinput_udev_assign_seat(struct libinput *libinput, const char *seat_id);
3639 
3659 struct libinput *
3660 libinput_path_create_context(const struct libinput_interface *interface,
3661  void *user_data);
3662 
3683 struct libinput_device *
3684 libinput_path_add_device(struct libinput *libinput, const char *path);
3685 
3704 void
3706 
3732 void
3733 libinput_plugin_system_append_path(struct libinput *libinput, const char *path);
3734 
3762 void
3764 
3767 };
3768 
3795 int
3797  enum libinput_plugin_system_flags flags);
3798 
3807 int
3809 
3827 int
3829 
3841 struct libinput_event *
3843 
3857 
3869 void
3870 libinput_set_user_data(struct libinput *libinput, void *user_data);
3871 
3882 void *
3884 
3896 int
3898 
3908 void
3910 
3920 struct libinput *
3921 libinput_ref(struct libinput *libinput);
3922 
3954 struct libinput *
3956 
3972 void
3974  enum libinput_log_priority priority);
3975 
3992 
4007 typedef void (*libinput_log_handler)(struct libinput *libinput,
4008  enum libinput_log_priority priority,
4009  const char *format,
4010  va_list args) LIBINPUT_ATTRIBUTE_PRINTF(3, 0);
4011 
4027 void
4028 libinput_log_set_handler(struct libinput *libinput, libinput_log_handler log_handler);
4029 
4051 struct libinput_seat *
4052 libinput_seat_ref(struct libinput_seat *seat);
4053 
4065 struct libinput_seat *
4066 libinput_seat_unref(struct libinput_seat *seat);
4067 
4079 void
4080 libinput_seat_set_user_data(struct libinput_seat *seat, void *user_data);
4081 
4091 void *
4093 
4102 struct libinput *
4104 
4121 const char *
4123 
4133 const char *
4135 
4151 struct libinput_device *
4152 libinput_device_ref(struct libinput_device *device);
4153 
4165 struct libinput_device *
4166 libinput_device_unref(struct libinput_device *device);
4167 
4179 void
4180 libinput_device_set_user_data(struct libinput_device *device, void *user_data);
4181 
4191 void *
4193 
4202 struct libinput *
4204 
4265 struct libinput_device_group *
4267 
4279 const char *
4281 
4295 const char *
4297 
4308 unsigned int
4310 
4319 unsigned int
4321 
4330 unsigned int
4332 
4352 const char *
4354 
4375 struct libinput_seat *
4377 
4403 int
4404 libinput_device_set_seat_logical_name(struct libinput_device *device, const char *name);
4405 
4425 struct udev_device *
4427 
4438 void
4439 libinput_device_led_update(struct libinput_device *device, enum libinput_led leds);
4440 
4448 int
4450  enum libinput_device_capability capability);
4451 
4466 int
4467 libinput_device_get_size(struct libinput_device *device, double *width, double *height);
4468 
4481 int
4482 libinput_device_pointer_has_button(struct libinput_device *device, uint32_t code);
4483 
4496 int
4497 libinput_device_keyboard_has_key(struct libinput_device *device, uint32_t code);
4498 
4512 int
4514 
4529 int
4531  enum libinput_switch sw);
4532 
4547 int
4549 
4564 int
4566 
4581 int
4583 
4598 int
4600 
4615 int
4616 libinput_device_tablet_pad_has_key(struct libinput_device *device, uint32_t code);
4617 
4630 struct libinput_device_group *
4632 
4646 struct libinput_device_group *
4648 
4660 void
4662  void *user_data);
4663 
4674 void *
4676 
4733 };
4734 
4744 const char *
4746 
4755 };
4756 
4772 int
4774 
4797  enum libinput_config_tap_state enable);
4798 
4817 
4834 
4845 };
4846 
4855 };
4856 
4890 
4912 
4934 
4955 };
4956 
4976  enum libinput_config_drag_state enable);
4977 
4995 
5015 
5030 };
5031 
5059  struct libinput_device *device,
5060  enum libinput_config_drag_lock_state enable);
5061 
5084 
5109  struct libinput_device *device);
5110 
5134 };
5135 
5149 int
5151 
5172  enum libinput_config_3fg_drag_state enable);
5173 
5192 
5211 
5224 int
5226 
5278  const float matrix[6]);
5279 
5296 int
5298  float matrix[6]);
5299 
5320 int
5322  float matrix[6]);
5323 
5341  double x1;
5342  double y1;
5343  double x2;
5344  double y2;
5345 };
5346 
5359 int
5361 
5417  struct libinput_device *device,
5418  const struct libinput_config_area_rectangle *rect);
5419 
5440 
5461 
5495 };
5496 
5511 uint32_t
5513 
5544  uint32_t mode);
5545 
5565 uint32_t
5567 
5581 uint32_t
5583 
5597 int
5599 
5621 libinput_device_config_accel_set_speed(struct libinput_device *device, double speed);
5622 
5644 double
5646 
5661 double
5663 
5683 
5689 
5698 };
5699 
5725 struct libinput_config_accel;
5726 
5748 struct libinput_config_accel *
5750 
5765 void
5766 libinput_config_accel_destroy(struct libinput_config_accel *accel_config);
5767 
5788  struct libinput_config_accel *accel_config);
5789 
5827 };
5828 
5860 libinput_config_accel_set_points(struct libinput_config_accel *accel_config,
5861  enum libinput_config_accel_type accel_type,
5862  double step,
5863  size_t npoints,
5864  const double *points);
5865 
5878 uint32_t
5880 
5896  enum libinput_config_accel_profile profile);
5897 
5911 
5925 
5955 int
5957 
5974  int enable);
5988 int
5990  struct libinput_device *device);
5991 
6005 int
6007  struct libinput_device *device);
6008 
6022 int
6024 
6049 libinput_device_config_left_handed_set(struct libinput_device *device, int left_handed);
6050 
6064 int
6066 
6080 int
6082 
6104 };
6105 
6121 uint32_t
6123 
6146  enum libinput_config_click_method method);
6164 
6182 
6209  struct libinput_device *device,
6211 
6228 
6245  struct libinput_device *device);
6246 
6261 };
6262 
6283 int
6285 
6310  struct libinput_device *device,
6312 
6338 
6365  struct libinput_device *device);
6366 
6394 };
6395 
6413 uint32_t
6415 
6442  enum libinput_config_scroll_method method);
6443 
6462 
6481 
6519  uint32_t button);
6520 
6545 uint32_t
6547 
6568 uint32_t
6570 
6574 };
6575 
6599  struct libinput_device *device,
6601 
6626 
6646 
6655 };
6656 
6672 int
6674 
6698  enum libinput_config_dwt_state enable);
6699 
6717 
6735 
6746 };
6747 
6766 int
6768 
6794  enum libinput_config_dwtp_state enable);
6795 
6815 
6835 
6850 int
6852 
6882  unsigned int degrees_cw);
6883 
6900 unsigned int
6902 
6919 unsigned int
6921 
6938 int
6940  struct libinput_tablet_tool *tool);
6941 
6972  double minimum,
6973  double maximum);
6974 
6994 double
6996  struct libinput_tablet_tool *tool);
6997 
7017 double
7019  struct libinput_tablet_tool *tool);
7020 
7040 double
7042  struct libinput_tablet_tool *tool);
7043 
7063 double
7065  struct libinput_tablet_tool *tool);
7066 
7084 };
7085 
7113 uint32_t
7115 
7146  struct libinput_tablet_tool *tool,
7148 
7170 
7192  struct libinput_tablet_tool *tool);
7193 
7225  uint32_t button);
7226 
7246 unsigned int
7248 
7268 unsigned int
7270  struct libinput_tablet_tool *tool);
7271 
7272 #ifdef __cplusplus
7273 }
7274 #endif
7275 #endif /* LIBINPUT_H */
Definition: libinput.h:1016
libinput_config_dwt_state
Possible states for the disable-while-typing feature.
Definition: libinput.h:6652
const char * libinput_seat_get_physical_name(struct libinput_seat *seat)
Return the physical name of the seat.
struct libinput_event * libinput_event_tablet_pad_get_base_event(struct libinput_event_tablet_pad *event)
enum libinput_config_status libinput_device_config_accel_set_profile(struct libinput_device *device, enum libinput_config_accel_profile profile)
Set the pointer acceleration profile of this pointer device to the given mode.
A custom acceleration profile.
Definition: libinput.h:5697
Middle mouse button emulation is to be disabled, or is currently disabled.
Definition: libinput.h:6255
enum libinput_tablet_pad_ring_axis_source libinput_event_tablet_pad_get_ring_source(struct libinput_event_tablet_pad *event)
Returns the source of the interaction with the ring.
A base handle for accessing libinput devices.
Definition: libinput.h:48
Never send scroll events instead of pointer motion events.
Definition: libinput.h:6378
libinput_config_accel_type
Acceleration types are categories of movement by a device that may have specific acceleration functio...
Definition: libinput.h:5811
Definition: libinput.h:6745
Definition: libinput.h:705
struct libinput_event_tablet_pad * libinput_event_get_tablet_pad_event(struct libinput_event *event)
Return the tablet pad event that is this input event.
libinput_config_clickfinger_button_map
Definition: libinput.h:4850
uint32_t libinput_device_config_accel_get_profiles(struct libinput_device *device)
Returns a bitmask of the configurable acceleration modes available on this device.
Definition: libinput.h:3766
Signals that a tool has come in or out of proximity of a device with the LIBINPUT_DEVICE_CAP_TABLET_T...
Definition: libinput.h:915
enum libinput_config_status libinput_config_accel_set_points(struct libinput_config_accel *accel_config, enum libinput_config_accel_type accel_type, double step, size_t npoints, const double *points)
Defines the acceleration function for a given movement type in an acceleration configuration with the...
uint64_t libinput_event_switch_get_time_usec(struct libinput_event_switch *event)
int libinput_event_tablet_tool_pressure_has_changed(struct libinput_event_tablet_tool *event)
Check if the pressure axis was updated in this event.
uint32_t libinput_event_tablet_tool_get_time(struct libinput_event_tablet_tool *event)
An airbrush-like tool.
Definition: libinput.h:368
unsigned int libinput_device_get_id_product(struct libinput_device *device)
Get the product ID for this device.
Definition: libinput.h:209
libinput_config_accel_profile
Definition: libinput.h:5669
Drag is to be disabled, or is currently disabled.
Definition: libinput.h:5123
uint32_t libinput_event_switch_get_time(struct libinput_event_switch *event)
double libinput_event_tablet_tool_get_rotation(struct libinput_event_tablet_tool *event)
Returns the current z rotation of the tool in degrees, clockwise from the tool's logical neutral posi...
uint32_t libinput_event_pointer_get_button(struct libinput_event_pointer *event)
Return the button that triggered this event.
double libinput_event_tablet_pad_get_strip_position(struct libinput_event_tablet_pad *event)
Returns the current position of the strip, normalized to the range [0, 1], with 0 being the top/left-...
Definition: libinput.h:861
enum libinput_config_status libinput_device_config_rotation_set_angle(struct libinput_device *device, unsigned int degrees_cw)
Set the rotation of a device in degrees clockwise off the logical neutral position.
enum libinput_config_status libinput_device_config_3fg_drag_set_enabled(struct libinput_device *device, enum libinput_config_3fg_drag_state enable)
Enable or disable 3-finger drag on this device.
int libinput_dispatch(struct libinput *libinput)
Main event dispatchment function.
struct libinput * libinput_ref(struct libinput *libinput)
Add a reference to the context.
struct libinput_tablet_pad_mode_group * libinput_tablet_pad_mode_group_unref(struct libinput_tablet_pad_mode_group *group)
Decrease the refcount of the mode group.
double libinput_event_gesture_get_angle_delta(struct libinput_event_gesture *event)
Return the angle delta in degrees between the last and the current LIBINPUT_EVENT_GESTURE_PINCH_UPDAT...
double x1
Definition: libinput.h:5341
enum libinput_config_status libinput_tablet_tool_config_eraser_button_set_button(struct libinput_tablet_tool *tool, uint32_t button)
Set a button to be the eraser button for this tool.
int libinput_device_tablet_pad_has_key(struct libinput_device *device, uint32_t code)
Check if a LIBINPUT_DEVICE_CAP_TABLET_PAD device has a key with the given code (see linux/input-event...
double libinput_tablet_tool_config_pressure_range_get_default_maximum(struct libinput_tablet_tool *tool)
Get the maximum pressure value for this tablet tool, normalized to the range [0.0, 1.0] of the available hardware pressure.
double libinput_event_tablet_tool_get_pressure(struct libinput_event_tablet_tool *event)
Returns the current pressure being applied on the tool in use, normalized to the range [0...
libinput does not open file descriptors to devices directly, instead open_restricted() and close_rest...
Definition: libinput.h:3575
Definition: libinput.h:211
enum libinput_config_3fg_drag_state libinput_device_config_3fg_drag_get_default_enabled(struct libinput_device *device)
Return whether 3-finger drag is enabled or disabled by default on this device.
Definition: libinput.h:195
The number of fingers decides which button press to generate.
Definition: libinput.h:6103
A scroll event from various sources.
Definition: libinput.h:814
Drag is to be enabled, or is currently enabled.
Definition: libinput.h:4954
Definition: libinput.h:248
libinput_switch_state
The state of a switch.
Definition: libinput.h:704
A rotary device with positional and rotation data.
Definition: libinput.h:371
double libinput_event_tablet_tool_get_distance(struct libinput_event_tablet_tool *event)
Returns the current distance from the tablet's sensor, normalized to the range [0, 1].
int libinput_device_config_rotation_is_available(struct libinput_device *device)
Check whether a device can have a custom rotation applied.
int libinput_device_config_area_has_rectangle(struct libinput_device *device)
Check if the device can change its logical input area via a rectangle.
libinput_led
Mask reflecting LEDs on a device.
Definition: libinput.h:232
enum libinput_config_eraser_button_mode libinput_tablet_tool_config_eraser_button_get_mode(struct libinput_tablet_tool *tool)
Get the mode for the eraser button.
libinput_pointer_axis_source
The source for a libinput_pointer_axis event.
Definition: libinput.h:280
enum libinput_config_scroll_button_lock_state libinput_device_config_scroll_get_button_lock(struct libinput_device *device)
Get the current scroll button lock state.
Touch event representing a touch down, move or up, as well as a touch cancel and touch frame events...
Definition: libinput.h:133
struct libinput_event * libinput_event_gesture_get_base_event(struct libinput_event_gesture *event)
unsigned int libinput_device_config_rotation_get_default_angle(struct libinput_device *device)
Get the default rotation of a device in degrees clockwise off the logical neutral position...
Definition: libinput.h:1022
Definition: libinput.h:859
double libinput_event_tablet_pad_get_ring_position(struct libinput_event_tablet_pad *event)
Returns the current position of the ring, in degrees clockwise from the northern-most point of the ri...
double libinput_event_tablet_tool_get_y(struct libinput_event_tablet_tool *event)
Returns the Y coordinate of the tablet tool, in mm from the top left corner of the tablet in its curr...
int32_t libinput_event_touch_get_slot(struct libinput_event_touch *event)
Get the slot of this touch event.
enum libinput_config_status libinput_device_config_tap_set_button_map(struct libinput_device *device, enum libinput_config_tap_button_map map)
Set the finger number to button number mapping for tap-to-click.
void * libinput_device_get_user_data(struct libinput_device *device)
Get the caller-specific data associated with this input device, if any.
struct libinput_seat * libinput_seat_ref(struct libinput_seat *seat)
Increase the refcount of the seat.
Definition: libinput.h:265
libinput_tablet_tool_type
Available tool types for a device with the LIBINPUT_DEVICE_CAP_TABLET_TOOL capability.
Definition: libinput.h:362
Signals the end of a set of touchpoints at one device sample time.
Definition: libinput.h:867
void libinput_plugin_system_append_default_paths(struct libinput *libinput)
Add the default plugin lookup paths, typically:
enum libinput_tablet_tool_tip_state libinput_event_tablet_tool_get_tip_state(struct libinput_event_tablet_tool *event)
Returns the new tip state of a tool from a tip event.
int libinput_event_tablet_tool_get_wheel_delta_discrete(struct libinput_event_tablet_tool *event)
Return the delta for the wheel in discrete steps (e.g.
uint64_t libinput_event_keyboard_get_time_usec(struct libinput_event_keyboard *event)
Config applied successfully.
Definition: libinput.h:4729
int libinput_tablet_tool_has_pressure(struct libinput_tablet_tool *tool)
Return whether the tablet tool supports pressure.
A switch event representing a changed state in a switch.
uint32_t libinput_device_config_scroll_get_button(struct libinput_device *device)
Get the button for the LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN method for this device.
const char * libinput_device_get_name(struct libinput_device *device)
The descriptive device name as advertised by the kernel and/or the hardware itself.
enum libinput_config_status libinput_device_config_calibration_set_matrix(struct libinput_device *device, const float matrix[6])
Apply the 3x3 transformation matrix to absolute device coordinates.
Definition: libinput.h:6744
int libinput_event_tablet_tool_rotation_has_changed(struct libinput_event_tablet_tool *event)
Check if the z-rotation axis was updated in this event.
Definition: libinput.h:235
Use software-button areas to generate button events.
Definition: libinput.h:6099
uint32_t libinput_event_keyboard_get_seat_key_count(struct libinput_event_keyboard *event)
For the key of a LIBINPUT_EVENT_KEYBOARD_KEY event, return the total number of keys pressed on all de...
uint32_t libinput_event_tablet_pad_get_button_number(struct libinput_event_tablet_pad *event)
Return the button number that triggered this event, starting at 0.
struct libinput_tablet_tool * libinput_tablet_tool_unref(struct libinput_tablet_tool *tool)
Decrement the reference count of the tool by one.
double libinput_event_gesture_get_scale(struct libinput_event_gesture *event)
Return the absolute scale of a pinch gesture, the scale is the division of the current distance betwe...
enum libinput_config_status libinput_device_config_dwt_set_enabled(struct libinput_device *device, enum libinput_config_dwt_state enable)
Enable or disable the disable-while-typing feature.
double libinput_event_tablet_tool_get_dy(struct libinput_event_tablet_tool *event)
Return the delta between the last event and the current event.
void * libinput_seat_get_user_data(struct libinput_seat *seat)
Get the caller-specific data associated with this seat, if any.
libinput_plugin_system_flags
Definition: libinput.h:3765
The event is caused by the tilting of a mouse wheel rather than its rotation.
Definition: libinput.h:303
The event is caused by the movement of one or more fingers on a device.
Definition: libinput.h:289
struct libinput_tablet_pad_mode_group * libinput_device_tablet_pad_get_mode_group(struct libinput_device *device, unsigned int index)
The returned mode group is not refcounted and may become invalid after the next call to libinput...
libinput_config_drag_state
A config status to distinguish or set dragging on a device.
Definition: libinput.h:4944
Tapping is to be enabled, or is currently enabled.
Definition: libinput.h:4753
uint64_t libinput_tablet_tool_get_serial(struct libinput_tablet_tool *tool)
Return the serial number of a tool.
enum libinput_config_accel_profile libinput_device_config_accel_get_profile(struct libinput_device *device)
Get the current pointer acceleration profile for this pointer device.
uint32_t libinput_event_tablet_pad_get_key(struct libinput_event_tablet_pad *event)
Return the key code that triggered this event, e.g.
int libinput_event_gesture_get_finger_count(struct libinput_event_gesture *event)
Return the number of fingers used for a gesture.
Drag lock is to be enabled in sticky mode, or is currently enabled in sticky mode.
Definition: libinput.h:5029
struct libinput_event * libinput_event_device_notify_get_base_event(struct libinput_event_device_notify *event)
unsigned int libinput_tablet_tool_config_eraser_button_get_button(struct libinput_tablet_tool *tool)
Get the button configured to emulate an eraser for this tool.
enum libinput_config_middle_emulation_state libinput_device_config_middle_emulation_get_enabled(struct libinput_device *device)
Check if configurable middle button emulation is enabled on this device.
enum libinput_config_dwt_state libinput_device_config_dwt_get_default_enabled(struct libinput_device *device)
Check if the disable-while-typing feature is enabled on this device by default.
Do not send software-emulated button events.
Definition: libinput.h:6095
int libinput_event_tablet_tool_x_has_changed(struct libinput_event_tablet_tool *event)
Check if the x axis was updated in this event.
Definition: libinput.h:780
uint32_t libinput_device_config_scroll_get_default_button(struct libinput_device *device)
Get the default button for the LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN method for this device...
void(* libinput_log_handler)(struct libinput *libinput, enum libinput_log_priority priority, const char *format, va_list args) LIBINPUT_ATTRIBUTE_PRINTF(3
Log handler type for custom logging.
Definition: libinput.h:4007
struct libinput_tablet_tool * libinput_event_tablet_tool_get_tool(struct libinput_event_tablet_tool *event)
Returns the tool that was in use during this event.
double libinput_event_tablet_tool_get_slider_position(struct libinput_event_tablet_tool *event)
Returns the current position of the slider on the tool, normalized to the range [-1, 1].
Definition: libinput.h:1017
int libinput_device_touch_get_touch_count(struct libinput_device *device)
Check how many touches a LIBINPUT_DEVICE_CAP_TOUCH device supports simultaneously.
enum libinput_config_tap_button_map libinput_device_config_tap_get_button_map(struct libinput_device *device)
Get the finger number to button number mapping for tap-to-click.
double libinput_event_tablet_tool_get_x_transformed(struct libinput_event_tablet_tool *event, uint32_t width)
Return the current absolute x coordinate of the tablet tool event, transformed to screen coordinates...
struct libinput_config_area_rectangle libinput_device_config_area_get_rectangle(struct libinput_device *device)
Return the current area rectangle for this device.
double libinput_event_pointer_get_axis_value(struct libinput_event_pointer *event, enum libinput_pointer_axis axis)
Return the axis value of the given axis.
double libinput_event_tablet_tool_get_y_transformed(struct libinput_event_tablet_tool *event, uint32_t height)
Return the current absolute y coordinate of the tablet tool event, transformed to screen coordinates...
Signals that a device has been added to the context.
Definition: libinput.h:772
void libinput_tablet_pad_mode_group_set_user_data(struct libinput_tablet_pad_mode_group *group, void *user_data)
Set caller-specific data associated with this mode group.
double libinput_event_gesture_get_dy_unaccelerated(struct libinput_event_gesture *event)
Return the relative delta of the unaccelerated motion vector of the current event.
Configuration not available on this device.
Definition: libinput.h:4730
double libinput_tablet_tool_config_pressure_range_get_minimum(struct libinput_tablet_tool *tool)
Get the minimum pressure value for this tablet tool, normalized to the range [0.0, 1.0] of the available hardware pressure.
Drag is to be enabled for 4 fingers, or is currently enabled.
Definition: libinput.h:5133
void(* close_restricted)(int fd, void *user_data)
Close the file descriptor.
Definition: libinput.h:3595
libinput_tablet_tool_proximity_state
The state of proximity for a tool on a device.
Definition: libinput.h:392
Definition: libinput.h:782
double libinput_event_pointer_get_dy(struct libinput_event_pointer *event)
Return the delta between the last event and the current event.
enum libinput_config_click_method libinput_device_config_click_get_default_method(struct libinput_device *device)
Get the default button click method for this device.
A flat acceleration profile.
Definition: libinput.h:5682
int libinput_device_tablet_pad_get_num_buttons(struct libinput_device *device)
Return the number of buttons on a device with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability.
uint32_t libinput_event_gesture_get_time(struct libinput_event_gesture *event)
enum libinput_config_status libinput_device_config_accel_apply(struct libinput_device *device, struct libinput_config_accel *accel_config)
Apply this pointer acceleration configuration to the device.
void libinput_path_remove_device(struct libinput_device *device)
Remove a device from a libinput context initialized with libinput_path_create_context() or added to s...
Signals that a device has been removed.
Definition: libinput.h:778
int libinput_device_config_calibration_get_default_matrix(struct libinput_device *device, float matrix[6])
Return the default calibration matrix for this device.
void libinput_log_set_priority(struct libinput *libinput, enum libinput_log_priority priority)
Set the log priority for the libinput context.
int libinput_device_config_scroll_get_natural_scroll_enabled(struct libinput_device *device)
Get the current mode for scrolling on this device.
int libinput_device_config_3fg_drag_get_finger_count(struct libinput_device *device)
Returns the maximum number of fingers available for 3-finger dragging.
enum libinput_config_status libinput_device_config_scroll_set_method(struct libinput_device *device, enum libinput_config_scroll_method method)
Set the scroll method for this device.
enum libinput_button_state libinput_event_tablet_tool_get_button_state(struct libinput_event_tablet_tool *event)
Return the button state of the event.
Definition: libinput.h:1018
Definition: libinput.h:196
libinput_config_send_events_mode
The send-event mode of a device defines when a device may generate events and pass those events to th...
Definition: libinput.h:5468
1/2/3 finger click maps to left/right/middle
Definition: libinput.h:4852
int libinput_device_set_seat_logical_name(struct libinput_device *device, const char *name)
Change the logical seat associated with this device by removing the device and adding it to the new s...
libinput_button_state
Logical state of a physical button.
Definition: libinput.h:246
const char * libinput_config_status_to_str(enum libinput_config_status status)
Return a string describing the error.
enum libinput_config_status libinput_device_config_click_set_clickfinger_button_map(struct libinput_device *device, enum libinput_config_clickfinger_button_map map)
Set the finger number to button number mapping for clickfinger.
Definition: libinput.h:213
enum libinput_config_tap_state libinput_device_config_tap_get_enabled(struct libinput_device *device)
Check if tap-to-click is enabled on this device.
double libinput_event_tablet_pad_get_dial_delta_v120(struct libinput_event_tablet_pad *event)
Returns the delta change of the dial, in multiples or fractions of 120, with each multiple of 120 ind...
int libinput_event_tablet_tool_wheel_has_changed(struct libinput_event_tablet_tool *event)
Check if the wheel axis was updated in this event.
struct libinput_device * libinput_device_ref(struct libinput_device *device)
Increase the refcount of the input device.
enum libinput_tablet_tool_type libinput_tablet_tool_get_type(struct libinput_tablet_tool *tool)
Return the high-level tool type for a tool object.
Send scroll events when two fingers are logically down on the device.
Definition: libinput.h:6383
uint32_t libinput_event_touch_get_time(struct libinput_event_touch *event)
A pointer event representing relative or absolute pointer movement, a button press/release or scroll ...
Definition: libinput.h:124
double libinput_device_config_accel_get_speed(struct libinput_device *device)
Get the current pointer acceleration setting for this pointer device.
int libinput_plugin_system_load_plugins(struct libinput *libinput, enum libinput_plugin_system_flags flags)
Load the plugins from the set of lookup paths.
double libinput_event_touch_get_x(struct libinput_event_touch *event)
Return the current absolute x coordinate of the touch event, in mm from the top left corner of the de...
int libinput_event_tablet_tool_tilt_x_has_changed(struct libinput_event_tablet_tool *event)
Check if the tilt x axis was updated in this event.
Signals that a tool has come in contact with the surface of a device with the LIBINPUT_DEVICE_CAP_TAB...
Definition: libinput.h:940
uint32_t libinput_event_pointer_get_seat_button_count(struct libinput_event_pointer *event)
For the button of a LIBINPUT_EVENT_POINTER_BUTTON event, return the total number of buttons pressed o...
double libinput_event_gesture_get_dx_unaccelerated(struct libinput_event_gesture *event)
Return the relative delta of the unaccelerated motion vector of the current event.
int libinput_tablet_tool_is_unique(struct libinput_tablet_tool *tool)
Return nonzero if the physical tool can be uniquely identified by libinput, or nonzero otherwise...
int libinput_device_config_calibration_get_matrix(struct libinput_device *device, float matrix[6])
Return the current calibration matrix for this device.
int libinput_tablet_tool_config_pressure_range_is_available(struct libinput_tablet_tool *tool)
Check if a tablet tool can have a custom pressure range.
libinput_tablet_tool_tip_state
The tip contact state for a tool on a device.
Definition: libinput.h:408
uint32_t libinput_event_tablet_pad_get_time(struct libinput_event_tablet_pad *event)
unsigned int libinput_tablet_pad_mode_group_get_mode(struct libinput_tablet_pad_mode_group *group)
Return the current mode this mode group is in.
enum libinput_config_status libinput_device_config_scroll_set_button(struct libinput_device *device, uint32_t button)
Set the button for the LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN method for this device.
double libinput_event_tablet_tool_get_tilt_x(struct libinput_event_tablet_tool *event)
Returns the current tilt along the X axis of the tablet's current logical orientation, in degrees off the tablet's z axis.
void * libinput_tablet_pad_mode_group_get_user_data(struct libinput_tablet_pad_mode_group *group)
Get the caller-specific data associated with this mode group, if any.
Definition: libinput.h:784
int libinput_device_config_dwtp_is_available(struct libinput_device *device)
Check if this device supports configurable disable-while-trackpointing feature.
enum libinput_config_middle_emulation_state libinput_device_config_middle_emulation_get_default_enabled(struct libinput_device *device)
Check if configurable middle button emulation is enabled by default on this device.
enum libinput_key_state libinput_event_keyboard_get_key_state(struct libinput_event_keyboard *event)
int libinput_device_config_left_handed_is_available(struct libinput_device *device)
Check if a device has a configuration that supports left-handed usage.
Acceleration type for regular pointer movement.
Definition: libinput.h:5821
A scroll event from a continuous scroll source, e.g.
Definition: libinput.h:857
double libinput_event_pointer_get_dx(struct libinput_event_pointer *event)
Return the delta between the last event and the current event.
double libinput_event_pointer_get_absolute_y_transformed(struct libinput_event_pointer *event, uint32_t height)
Return the current absolute y coordinate of the pointer event, transformed to screen coordinates...
double libinput_event_pointer_get_absolute_x(struct libinput_event_pointer *event)
Return the current absolute x coordinate of the pointer event, in mm from the top left corner of the ...
struct libinput_event_device_notify * libinput_event_get_device_notify_event(struct libinput_event *event)
Return the device event that is this input event.
libinput_pointer_axis
Axes on a device with the capability LIBINPUT_DEVICE_CAP_POINTER that are not x or y coordinates...
Definition: libinput.h:263
void libinput_device_group_set_user_data(struct libinput_device_group *group, void *user_data)
Set caller-specific data associated with this device group.
The eraser button on the tool sends a button event instead.
Definition: libinput.h:7083
int libinput_device_config_calibration_has_matrix(struct libinput_device *device)
Check if the device can be calibrated via a calibration matrix.
int libinput_device_config_dwt_is_available(struct libinput_device *device)
Check if this device supports configurable disable-while-typing feature.
enum libinput_config_clickfinger_button_map libinput_device_config_click_get_clickfinger_button_map(struct libinput_device *device)
Get the finger number to button number mapping for clickfinger.
libinput_config_tap_state
Definition: libinput.h:4750
A mouse tool with a lens.
Definition: libinput.h:370
Definition: libinput.h:207
void libinput_set_user_data(struct libinput *libinput, void *user_data)
Set caller-specific data associated with this context.
Eraser.
Definition: libinput.h:364
An object representing a tool being used by a device with the LIBINPUT_DEVICE_CAP_TABLET_TOOL capabil...
Definition: libinput.h:76
int libinput_device_tablet_pad_get_num_rings(struct libinput_device *device)
Return the number of rings a device with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability provides...
A generic pen.
Definition: libinput.h:363
double libinput_tablet_tool_config_pressure_range_get_maximum(struct libinput_tablet_tool *tool)
Get the maximum pressure value for this tablet tool, normalized to the range [0.0, 1.0] of the available hardware pressure.
Middle mouse button emulation is to be enabled, or is currently enabled.
Definition: libinput.h:6260
unsigned int libinput_device_get_id_bustype(struct libinput_device *device)
Get the bus type ID for this device.
enum libinput_button_state libinput_event_tablet_pad_get_button_state(struct libinput_event_tablet_pad *event)
Return the button state of the event.
A mode on a tablet pad is a virtual grouping of functionality, usually based on some visual feedback ...
uint32_t libinput_device_config_send_events_get_default_mode(struct libinput_device *device)
Get the default send-event mode for this device.
enum libinput_pointer_axis_source libinput_event_pointer_get_axis_source(struct libinput_event_pointer *event)
Return the source for a given axis event.
int libinput_event_pointer_has_axis(struct libinput_event_pointer *event, enum libinput_pointer_axis axis)
Check if the event has a valid value for the given axis.
enum libinput_config_status libinput_device_config_tap_set_enabled(struct libinput_device *device, enum libinput_config_tap_state enable)
Enable or disable tap-to-click on this device, with a default mapping of 1, 2, 3 finger tap mapping t...
Definition: libinput.h:223
libinput_device_capability
Capabilities on a device.
Definition: libinput.h:206
The event is caused by the rotation of a wheel.
Definition: libinput.h:284
unsigned int libinput_tablet_tool_config_eraser_button_get_default_button(struct libinput_tablet_tool *tool)
Get the default button configured to emulate an eraser for this tool.
Definition: libinput.h:860
libinput_config_status
Status codes returned when applying configuration settings.
Definition: libinput.h:4728
int libinput_event_tablet_tool_distance_has_changed(struct libinput_event_tablet_tool *event)
Check if the distance axis was updated in this event.
enum libinput_config_tap_button_map libinput_device_config_tap_get_default_button_map(struct libinput_device *device)
Get the default finger number to button number mapping for tap-to-click.
int libinput_event_tablet_tool_tilt_y_has_changed(struct libinput_event_tablet_tool *event)
Check if the tilt y axis was updated in this event.
struct libinput_tablet_pad_mode_group * libinput_tablet_pad_mode_group_ref(struct libinput_tablet_pad_mode_group *group)
Increase the refcount of the mode group.
int libinput_event_tablet_tool_size_minor_has_changed(struct libinput_event_tablet_tool *event)
Check if the size minor axis was updated in this event.
uint32_t libinput_tablet_tool_config_eraser_button_get_modes(struct libinput_tablet_tool *tool)
Check if a tool can change the behavior of or to a firmware eraser button.
Definition: libinput.h:224
libinput_tablet_pad_ring_axis_source
The source for a LIBINPUT_EVENT_TABLET_PAD_RING event.
Definition: libinput.h:314
Definition: libinput.h:1014
double libinput_event_touch_get_y(struct libinput_event_touch *event)
Return the current absolute y coordinate of the touch event, in mm from the top left corner of the de...
struct libinput_event * libinput_event_tablet_tool_get_base_event(struct libinput_event_tablet_tool *event)
int libinput_device_config_middle_emulation_is_available(struct libinput_device *device)
Check if middle mouse button emulation configuration is available on this device. ...
1/2/3 finger click maps to left/middle/right
Definition: libinput.h:4854
enum libinput_config_scroll_method libinput_device_config_scroll_get_method(struct libinput_device *device)
Get the scroll method for this device.
libinput_config_tap_button_map
Definition: libinput.h:4840
unsigned int libinput_event_tablet_pad_get_strip_number(struct libinput_event_tablet_pad *event)
Returns the number of the strip that has changed state, with 0 being the first strip.
double libinput_event_tablet_tool_get_wheel_delta(struct libinput_event_tablet_tool *event)
Return the delta for the wheel in degrees.
int32_t libinput_event_touch_get_seat_slot(struct libinput_event_touch *event)
Get the seat slot of the touch event.
double libinput_event_pointer_get_axis_value_discrete(struct libinput_event_pointer *event, enum libinput_pointer_axis axis)
Return the axis value in discrete steps for a given axis event.
int libinput_device_tablet_pad_get_num_mode_groups(struct libinput_device *device)
Most devices only provide a single mode group, however devices such as the Wacom Cintiq 22HD provide ...
libinput_config_3fg_drag_state
A config status to distinguish or set 3-finger dragging on a device.
Definition: libinput.h:5118
Definition: libinput.h:197
double libinput_event_pointer_get_absolute_y(struct libinput_event_pointer *event)
Return the current absolute y coordinate of the pointer event, in mm from the top left corner of the ...
uint32_t libinput_device_config_send_events_get_mode(struct libinput_device *device)
Get the send-event mode for this device.
enum libinput_config_3fg_drag_state libinput_device_config_3fg_drag_get_enabled(struct libinput_device *device)
Return whether 3-finger drag is enabled or disabled on this device.
int libinput_event_gesture_get_cancelled(struct libinput_event_gesture *event)
Return if the gesture ended normally, or if it was cancelled.
Definition: libinput.h:1028
void libinput_device_led_update(struct libinput_device *device, enum libinput_led leds)
Update the LEDs on the device, if any.
enum libinput_config_status libinput_device_config_click_set_method(struct libinput_device *device, enum libinput_config_click_method method)
Set the button click method for this device.
struct libinput_device * libinput_path_add_device(struct libinput *libinput, const char *path)
Add a device to a libinput context initialized with libinput_path_create_context().
Tablet tool event representing an axis update, button press, or tool update.
Definition: libinput.h:159
uint64_t libinput_event_tablet_tool_get_time_usec(struct libinput_event_tablet_tool *event)
double libinput_event_touch_get_x_transformed(struct libinput_event_touch *event, uint32_t width)
Return the current absolute x coordinate of the touch event, transformed to screen coordinates...
A key pressed on a device with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability.
Definition: libinput.h:1003
double libinput_event_gesture_get_dy(struct libinput_event_gesture *event)
Return the delta between the last event and the current event.
double libinput_event_pointer_get_scroll_value(struct libinput_event_pointer *event, enum libinput_pointer_axis axis)
Return the axis value of the given axis.
unsigned int libinput_event_tablet_pad_get_ring_number(struct libinput_event_tablet_pad *event)
Returns the number of the ring that has changed state, with 0 being the first ring.
void libinput_tablet_tool_set_user_data(struct libinput_tablet_tool *tool, void *user_data)
Set the user data associated with a tool object, if any.
struct libinput * libinput_event_get_context(struct libinput_event *event)
Get the libinput context from the event.
legacy spelling for LIBINPUT_CONFIG_DRAG_LOCK_ENABLED_TIMEOUT
Definition: libinput.h:5026
1/2/3 finger tap maps to left/middle/right
Definition: libinput.h:4844
The laptop lid was closed when the switch state is LIBINPUT_SWITCH_STATE_ON, or was opened when it is...
Definition: libinput.h:722
enum libinput_config_drag_lock_state libinput_device_config_tap_get_default_drag_lock_enabled(struct libinput_device *device)
Check if drag-lock during tapping is enabled by default on this device.
enum libinput_config_click_method libinput_device_config_click_get_method(struct libinput_device *device)
Get the button click method for this device.
Definition: libinput.h:210
Definition: libinput.h:862
struct libinput_event_gesture * libinput_event_get_gesture_event(struct libinput_event *event)
Return the gesture event that is this input event.
The base event type.
Definition: libinput.h:96
#define LIBINPUT_ATTRIBUTE_PRINTF(_format, _args)
Definition: libinput.h:37
libinput_config_click_method
The click method defines when to generate software-emulated buttons, usually on a device that does no...
Definition: libinput.h:6090
enum libinput_config_status libinput_device_config_accel_set_speed(struct libinput_device *device, double speed)
Set the pointer acceleration speed of this pointer device within a range of [-1, 1], where 0 is the default acceleration for this device, -1 is the slowest acceleration and 1 is the maximum acceleration available on this device.
enum libinput_tablet_tool_proximity_state libinput_event_tablet_tool_get_proximity_state(struct libinput_event_tablet_tool *event)
Returns the new proximity state of a tool from a proximity event.
enum libinput_config_drag_state libinput_device_config_tap_get_drag_enabled(struct libinput_device *device)
Return whether tap-and-drag is enabled or disabled on this device.
A base handle for accessing libinput device groups.
Definition: libinput.h:57
void libinput_config_accel_destroy(struct libinput_config_accel *accel_config)
Destroy an acceleration configuration.
int libinput_device_config_left_handed_get_default(struct libinput_device *device)
Get the default left-handed configuration of the device.
struct libinput * libinput_path_create_context(const struct libinput_interface *interface, void *user_data)
Create a new libinput context that requires the caller to manually add or remove devices with libinpu...
A paintbrush-like tool.
Definition: libinput.h:365
double y1
Definition: libinput.h:5342
A button pressed on a device with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability.
Definition: libinput.h:975
The event is caused by the movement of one or more fingers on the ring.
Definition: libinput.h:320
unsigned int libinput_event_tablet_pad_get_mode(struct libinput_event_tablet_pad *event)
Returns the mode the button, ring, or strip that triggered this event is in, at the time of the event...
struct libinput_seat * libinput_seat_unref(struct libinput_seat *seat)
Decrease the refcount of the seat.
Send events from this device normally.
Definition: libinput.h:5474
int libinput_device_config_tap_get_finger_count(struct libinput_device *device)
Check if the device supports tap-to-click and how many fingers can be used for tapping.
Definition: libinput.h:6653
struct libinput * libinput_device_get_context(struct libinput_device *device)
Get the libinput context from the device.
Invalid parameter range.
Definition: libinput.h:4732
unsigned int libinput_device_get_id_vendor(struct libinput_device *device)
Get the vendor ID for this device.
int libinput_tablet_pad_mode_group_has_ring(struct libinput_tablet_pad_mode_group *group, unsigned int ring)
Devices without mode switching capabilities return true for every ring.
int libinput_tablet_pad_mode_group_button_is_toggle(struct libinput_tablet_pad_mode_group *group, unsigned int button)
The toggle button in a mode group is the button assigned to cycle to or directly assign a new mode wh...
struct libinput_event_switch * libinput_event_get_switch_event(struct libinput_event *event)
Return the switch event that is this input event.
The default acceleration type used as a fallback when other acceleration types are not provided...
Definition: libinput.h:5816
Acceleration type for scroll movement.
Definition: libinput.h:5826
Placeholder for devices that don't have a configurable pointer acceleration profile.
Definition: libinput.h:5674
enum libinput_event_type libinput_event_get_type(struct libinput_event *event)
Get the type of the event.
struct libinput_device_group * libinput_device_group_ref(struct libinput_device_group *group)
Increase the refcount of the device group.
uint32_t libinput_event_tablet_tool_get_seat_button_count(struct libinput_event_tablet_tool *event)
For the button of a LIBINPUT_EVENT_TABLET_TOOL_BUTTON event, return the total number of buttons press...
A handle for accessing libinput.
A status change on a tablet ring with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability.
Definition: libinput.h:982
double libinput_event_gesture_get_dx(struct libinput_event_gesture *event)
Return the delta between the last event and the current event.
double libinput_event_pointer_get_scroll_value_v120(struct libinput_event_pointer *event, enum libinput_pointer_axis axis)
For events of type LIBINPUT_EVENT_POINTER_SCROLL_WHEEL the v120-normalized value represents the movem...
enum libinput_config_dwt_state libinput_device_config_dwt_get_enabled(struct libinput_device *device)
Check if the disable-while-typing feature is currently enabled on this device.
Use the default hardware behavior of the tool.
Definition: libinput.h:7075
libinput_switch
The type of a switch.
Definition: libinput.h:716
struct libinput_device * libinput_event_get_device(struct libinput_event *event)
Return the device associated with this event.
double libinput_event_tablet_tool_get_dx(struct libinput_event_tablet_tool *event)
Return the delta between the last event and the current event.
void * libinput_get_user_data(struct libinput *libinput)
Get the caller-specific data associated with this context, if any.
int libinput_tablet_pad_mode_group_has_button(struct libinput_tablet_pad_mode_group *group, unsigned int button)
Devices without mode switching capabilities return true for every button.
A scroll event caused by the movement of one or more fingers on a device.
Definition: libinput.h:842
Drag lock is to be disabled, or is currently disabled.
Definition: libinput.h:5021
Definition: libinput.h:208
Drag lock is to be enabled in timeout mode, or is currently enabled in timeout mode.
Definition: libinput.h:5024
double libinput_event_tablet_tool_get_tilt_y(struct libinput_event_tablet_tool *event)
Returns the current tilt along the Y axis of the tablet's current logical orientation, in degrees off the tablet's z axis.
int libinput_tablet_tool_has_button(struct libinput_tablet_tool *tool, uint32_t code)
Check if a tablet tool has a button with the passed-in code (see linux/input.h).
int libinput_tablet_tool_has_wheel(struct libinput_tablet_tool *tool)
Return whether the tablet tool has a relative wheel.
One or more axes have changed state on a device with the LIBINPUT_DEVICE_CAP_TABLET_TOOL capability...
Definition: libinput.h:888
void libinput_event_destroy(struct libinput_event *event)
Destroy the event, freeing all associated resources.
Definition: libinput.h:783
enum libinput_config_status libinput_device_config_middle_emulation_set_enabled(struct libinput_device *device, enum libinput_config_middle_emulation_state enable)
Enable or disable middle button emulation on this device.
double libinput_tablet_tool_config_pressure_range_get_default_minimum(struct libinput_tablet_tool *tool)
Get the minimum pressure value for this tablet tool, normalized to the range [0.0, 1.0] of the available hardware pressure.
Tablet pad event representing a button press, or ring/strip update on the tablet pad itself...
Definition: libinput.h:173
Physical drawing tool, e.g.
Definition: libinput.h:366
void libinput_suspend(struct libinput *libinput)
Suspend monitoring for new devices and close existing devices.
struct libinput_event * libinput_event_switch_get_base_event(struct libinput_event_switch *event)
enum libinput_config_scroll_method libinput_device_config_scroll_get_default_method(struct libinput_device *device)
Get the default scroll method for this device.
Drag is to be disabled, or is currently disabled.
Definition: libinput.h:4949
enum libinput_config_clickfinger_button_map libinput_device_config_click_get_default_clickfinger_button_map(struct libinput_device *device)
Get the default finger number to button number mapping for clickfinger.
int libinput_device_config_scroll_has_natural_scroll(struct libinput_device *device)
Return non-zero if the device supports "natural scrolling".
Definition: libinput.h:233
enum libinput_config_accel_profile libinput_device_config_accel_get_default_profile(struct libinput_device *device)
Return the default pointer acceleration profile for this pointer device.
enum libinput_config_status libinput_device_config_tap_set_drag_lock_enabled(struct libinput_device *device, enum libinput_config_drag_lock_state enable)
Enable or disable drag-lock during tapping on this device.
struct libinput_event_tablet_tool * libinput_event_get_tablet_tool_event(struct libinput_event *event)
Return the tablet tool event that is this input event.
uint64_t libinput_event_pointer_get_time_usec(struct libinput_event_pointer *event)
enum libinput_config_scroll_button_lock_state libinput_device_config_scroll_get_default_button_lock(struct libinput_device *device)
Get the default scroll button lock state.
int libinput_device_tablet_pad_get_num_strips(struct libinput_device *device)
Return the number of strips a device with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability provides...
uint64_t libinput_event_gesture_get_time_usec(struct libinput_event_gesture *event)
enum libinput_key_state libinput_event_tablet_pad_get_key_state(struct libinput_event_tablet_pad *event)
Return the key state of the event.
uint32_t libinput_event_keyboard_get_key(struct libinput_event_keyboard *event)
Send scroll events when a button is down and the device moves along a scroll-capable axis...
Definition: libinput.h:6393
libinput_config_scroll_method
The scroll method of a device selects when to generate scroll axis events instead of pointer motion e...
Definition: libinput.h:6373
Send scroll events when a finger moves along the bottom or right edge of a device.
Definition: libinput.h:6388
Tapping is to be disabled, or is currently disabled.
Definition: libinput.h:4751
A scroll event from a wheel.
Definition: libinput.h:828
Definition: libinput.h:247
int libinput_get_fd(struct libinput *libinput)
libinput keeps a single file descriptor for all events.
enum libinput_config_drag_lock_state libinput_device_config_tap_get_drag_lock_enabled(struct libinput_device *device)
Check if drag-lock during tapping is enabled on this device.
struct libinput_tablet_tool * libinput_tablet_tool_ref(struct libinput_tablet_tool *tool)
Increment the reference count of the tool by one.
unsigned int libinput_device_config_rotation_get_angle(struct libinput_device *device)
Get the current rotation of a device in degrees clockwise off the logical neutral position...
int libinput_resume(struct libinput *libinput)
Resume a suspended libinput context.
int libinput_tablet_tool_has_slider(struct libinput_tablet_tool *tool)
Return whether the tablet tool has a slider axis.
Definition: libinput.h:1015
Definition: libinput.h:237
The base handle for accessing libinput seats.
Definition: libinput.h:67
Definition: libinput.h:212
uint64_t libinput_event_tablet_pad_get_time_usec(struct libinput_event_tablet_pad *event)
struct libinput * libinput_udev_create_context(const struct libinput_interface *interface, void *user_data, struct udev *udev)
Create a new libinput context from udev.
Drag is to be enabled for 3 fingers, or is currently enabled.
Definition: libinput.h:5128
libinput_event_type
Event type for events returned by libinput_get_event().
Definition: libinput.h:756
uint32_t libinput_device_config_click_get_methods(struct libinput_device *device)
Check which button click methods a device supports.
struct libinput_event * libinput_get_event(struct libinput *libinput)
Retrieve the next event from libinput's internal event queue.
enum libinput_event_type libinput_next_event_type(struct libinput *libinput)
Return the type of the next event in the internal queue.
int libinput_device_has_capability(struct libinput_device *device, enum libinput_device_capability capability)
Check if the given device has the specified capability.
double libinput_event_tablet_tool_get_size_minor(struct libinput_event_tablet_tool *event)
Returns the current size in mm along the minor axis of the touching ellipse.
The event is caused by the motion of some device.
Definition: libinput.h:293
Definition: libinput.h:706
This switch indicates whether the device is in normal laptop mode or behaves like a tablet-like devic...
Definition: libinput.h:738
double libinput_event_pointer_get_absolute_x_transformed(struct libinput_event_pointer *event, uint32_t width)
Return the current absolute x coordinate of the pointer event, transformed to screen coordinates...
int libinput_event_tablet_tool_slider_has_changed(struct libinput_event_tablet_tool *event)
Check if the slider axis was updated in this event.
uint32_t libinput_event_keyboard_get_time(struct libinput_event_keyboard *event)
Do not send events through this device.
Definition: libinput.h:5488
double libinput_event_tablet_tool_get_x(struct libinput_event_tablet_tool *event)
Returns the X coordinate of the tablet tool, in mm from the top left corner of the tablet in its curr...
struct libinput_event_keyboard * libinput_event_get_keyboard_event(struct libinput_event *event)
Return the keyboard event that is this input event.
struct libinput_config_area_rectangle libinput_device_config_area_get_default_rectangle(struct libinput_device *device)
Return the default area rectangle for this device.
Definition: libinput.h:394
Definition: libinput.h:234
int libinput_device_config_accel_is_available(struct libinput_device *device)
Check if a device uses libinput-internal pointer-acceleration.
int libinput_tablet_tool_has_rotation(struct libinput_tablet_tool *tool)
Return whether the tablet tool supports z-rotation.
double libinput_event_pointer_get_dx_unaccelerated(struct libinput_event_pointer *event)
Return the relative delta of the unaccelerated motion vector of the current event.
libinput_config_middle_emulation_state
Definition: libinput.h:6250
struct libinput_seat * libinput_device_get_seat(struct libinput_device *device)
Get the seat associated with this input device.
unsigned int libinput_event_tablet_pad_get_dial_number(struct libinput_event_tablet_pad *event)
Returns the number of the dial that has changed state, with 0 being the first dial.
uint32_t libinput_event_tablet_tool_get_button(struct libinput_event_tablet_tool *event)
Return the button that triggered this event.
enum libinput_button_state libinput_event_pointer_get_button_state(struct libinput_event_pointer *event)
Return the button state that triggered this event.
libinput_config_dwtp_state
Possible states for the disable-while-trackpointing feature.
Definition: libinput.h:6743
The event is caused by the movement of one or more fingers on the strip.
Definition: libinput.h:337
int libinput_tablet_pad_mode_group_has_strip(struct libinput_tablet_pad_mode_group *group, unsigned int strip)
Devices without mode switching capabilities return true for every strip.
Definition: libinput.h:264
struct udev_device * libinput_device_get_udev_device(struct libinput_device *device)
Return a udev handle to the device that is this libinput device, if any.
struct libinput_config_accel * libinput_config_accel_create(enum libinput_config_accel_profile profile)
Create an acceleration configuration of a given profile.
enum libinput_config_status libinput_device_config_scroll_set_natural_scroll_enabled(struct libinput_device *device, int enable)
Enable or disable natural scrolling on the device.
enum libinput_config_status libinput_device_config_left_handed_set(struct libinput_device *device, int left_handed)
Set the left-handed configuration of the device.
struct libinput * libinput_unref(struct libinput *libinput)
Dereference the libinput context.
int libinput_tablet_pad_mode_group_has_dial(struct libinput_tablet_pad_mode_group *group, unsigned int dial)
Devices without mode switching capabilities return true for every dial.
Definition: libinput.h:1013
int libinput_tablet_tool_has_distance(struct libinput_tablet_tool *tool)
Return whether the tablet tool supports distance.
void(*) voi libinput_log_set_handler)(struct libinput *libinput, libinput_log_handler log_handler)
Set the context's log handler.
Definition: libinput.h:4028
enum libinput_log_priority libinput_log_get_priority(const struct libinput *libinput)
Get the context's log priority.
libinput_tablet_pad_strip_axis_source
The source for a LIBINPUT_EVENT_TABLET_PAD_STRIP event.
Definition: libinput.h:331
Signals that a tool has changed a logical button state on a device with the LIBINPUT_DEVICE_CAP_TABLE...
Definition: libinput.h:958
int libinput_tablet_tool_has_size(struct libinput_tablet_tool *tool)
Return whether the tablet tool has a ellipsis major and minor.
libinput_config_eraser_button_mode
Definition: libinput.h:7070
const char * libinput_device_get_sysname(struct libinput_device *device)
Get the system name of the device.
enum libinput_config_status libinput_tablet_tool_config_eraser_button_set_mode(struct libinput_tablet_tool *tool, enum libinput_config_eraser_button_mode mode)
Change the eraser button behavior on a tool.
struct libinput_tablet_pad_mode_group * libinput_event_tablet_pad_get_mode_group(struct libinput_event_tablet_pad *event)
Returns the mode group that the button, ring, or strip that triggered this event is considered in...
struct libinput_device * libinput_device_unref(struct libinput_device *device)
Decrease the refcount of the input device.
Definition: libinput.h:236
libinput_config_drag_lock_state
Definition: libinput.h:5019
int libinput_device_config_scroll_get_default_natural_scroll_enabled(struct libinput_device *device)
Get the default mode for scrolling on this device.
int libinput_device_get_size(struct libinput_device *device, double *width, double *height)
Get the physical size of a device in mm, where meaningful.
enum libinput_config_status libinput_device_config_tap_set_drag_enabled(struct libinput_device *device, enum libinput_config_drag_state enable)
Enable or disable tap-and-drag on this device.
A status change on a strip on a device with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability.
Definition: libinput.h:990
void libinput_seat_set_user_data(struct libinput_seat *seat, void *user_data)
Set caller-specific data associated with this seat.
const char * libinput_seat_get_logical_name(struct libinput_seat *seat)
Return the logical name of the seat.
If an external pointer device is plugged in, do not send events from this device. ...
Definition: libinput.h:5494
enum libinput_switch_state libinput_event_switch_get_switch_state(struct libinput_event_switch *event)
Return the switch state that triggered this event.
void libinput_plugin_system_append_path(struct libinput *libinput, const char *path)
Appends the given directory path to the libinput plugin lookup path.
int libinput_device_tablet_pad_get_num_dials(struct libinput_device *device)
Return the number of dials a device with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability provides...
void * libinput_tablet_tool_get_user_data(struct libinput_tablet_tool *tool)
Return the user data associated with a tool object.
1/2/3 finger tap maps to left/right/middle
Definition: libinput.h:4842
libinput_config_scroll_button_lock_state
Definition: libinput.h:6571
int libinput_event_tablet_tool_size_major_has_changed(struct libinput_event_tablet_tool *event)
Check if the size major axis was updated in this event.
libinput_log_priority
Log priority for internal logging messages.
Definition: libinput.h:194
A mouse bound to the tablet.
Definition: libinput.h:369
int libinput_device_keyboard_has_key(struct libinput_device *device, uint32_t code)
Check if a LIBINPUT_DEVICE_CAP_KEYBOARD device has a key with the given code (see linux/input-event-c...
enum libinput_config_drag_state libinput_device_config_tap_get_default_drag_enabled(struct libinput_device *device)
Return whether tap-and-drag is enabled or disabled by default on this device.
int libinput_udev_assign_seat(struct libinput *libinput, const char *seat_id)
Assign a seat to this libinput context.
double libinput_event_touch_get_y_transformed(struct libinput_event_touch *event, uint32_t height)
Return the current absolute y coordinate of the touch event, transformed to screen coordinates...
double libinput_event_tablet_tool_get_size_major(struct libinput_event_tablet_tool *event)
Returns the current size in mm along the major axis of the touching ellipse.
int(* open_restricted)(const char *path, int flags, void *user_data)
Open the device at the given path with the flags provided and return the fd.
Definition: libinput.h:3587
enum libinput_config_tap_state libinput_device_config_tap_get_default_enabled(struct libinput_device *device)
Return the default setting for whether tap-to-click is enabled on this device.
An event notifying the caller of a device being added or removed.
Definition: libinput.h:108
struct libinput_device_group * libinput_device_group_unref(struct libinput_device_group *group)
Decrease the refcount of the device group.
uint32_t libinput_device_config_scroll_get_methods(struct libinput_device *device)
Check which scroll methods a device supports.
enum libinput_config_dwtp_state libinput_device_config_dwtp_get_enabled(struct libinput_device *device)
Check if the disable-while-trackpointing feature is currently enabled on this device.
unsigned int libinput_tablet_pad_mode_group_get_num_modes(struct libinput_tablet_pad_mode_group *group)
Query the mode group for the number of available modes.
struct libinput_event * libinput_event_keyboard_get_base_event(struct libinput_event_keyboard *event)
const char * libinput_device_get_output_name(struct libinput_device *device)
A device may be mapped to a single output, or all available outputs.
uint32_t libinput_event_pointer_get_time(struct libinput_event_pointer *event)
struct libinput_event * libinput_event_touch_get_base_event(struct libinput_event_touch *event)
double libinput_device_config_accel_get_default_speed(struct libinput_device *device)
Return the default speed setting for this device, normalized to a range of [-1, 1].
double libinput_event_pointer_get_dy_unaccelerated(struct libinput_event_pointer *event)
Return the relative delta of the unaccelerated motion vector of the current event.
Definition: libinput.h:409
Definition: libinput.h:1023
A gesture event representing a swipe, pinch or hold gesture.
Definition: libinput.h:145
enum libinput_config_status libinput_device_config_send_events_set_mode(struct libinput_device *device, uint32_t mode)
Set the send-event mode for this device.
enum libinput_config_eraser_button_mode libinput_tablet_tool_config_eraser_button_get_default_mode(struct libinput_tablet_tool *tool)
Get the default mode for the eraser button.
enum libinput_switch libinput_event_switch_get_switch(struct libinput_event_switch *event)
Return the switch that triggered this event.
enum libinput_config_dwtp_state libinput_device_config_dwtp_get_default_enabled(struct libinput_device *device)
Check if the disable-while-trackpointing feature is enabled on this device by default.
enum libinput_config_status libinput_device_config_dwtp_set_enabled(struct libinput_device *device, enum libinput_config_dwtp_state enable)
Enable or disable the disable-while-trackpointing feature.
libinput_key_state
Logical state of a key.
Definition: libinput.h:222
This is not a real event type, and is only used to tell the user that no new event is available in th...
Definition: libinput.h:762
void libinput_device_set_user_data(struct libinput_device *device, void *user_data)
Set caller-specific data associated with this input device.
double y2
Definition: libinput.h:5344
int libinput_tablet_tool_has_tilt(struct libinput_tablet_tool *tool)
Return whether the tablet tool supports tilt.
A status change on a tablet dial with the LIBINPUT_DEVICE_CAP_TABLET_PAD capability.
Definition: libinput.h:1011
int libinput_device_switch_has_switch(struct libinput_device *device, enum libinput_switch sw)
Check if a LIBINPUT_DEVICE_CAP_SWITCH device has a switch of the given type.
Definition: libinput.h:410
double x2
Definition: libinput.h:5343
uint64_t libinput_event_touch_get_time_usec(struct libinput_event_touch *event)
Definition: libinput.h:315
Describes a rectangle to configure a device's area, see libinput_device_config_area_set_rectangle().
Definition: libinput.h:5340
enum libinput_config_status libinput_device_config_area_set_rectangle(struct libinput_device *device, const struct libinput_config_area_rectangle *rect)
Set the given rectangle as the logical input area of this device.
int libinput_device_pointer_has_button(struct libinput_device *device, uint32_t code)
Check if a LIBINPUT_DEVICE_CAP_POINTER device has a button with the given code (see linux/input-event...
int libinput_device_config_left_handed_get(struct libinput_device *device)
Get the current left-handed configuration of the device.
A keyboard event representing a key press/release.
Definition: libinput.h:116
An adaptive acceleration profile.
Definition: libinput.h:5688
struct libinput * libinput_seat_get_context(struct libinput_seat *seat)
Get the libinput context from the seat.
struct libinput_event * libinput_event_pointer_get_base_event(struct libinput_event_pointer *event)
unsigned int libinput_tablet_pad_mode_group_get_index(struct libinput_tablet_pad_mode_group *group)
The returned number is the same index as passed to libinput_device_tablet_pad_get_mode_group().
enum libinput_tablet_pad_strip_axis_source libinput_event_tablet_pad_get_strip_source(struct libinput_event_tablet_pad *event)
Returns the source of the interaction with the strip.
enum libinput_config_status libinput_device_config_scroll_set_button_lock(struct libinput_device *device, enum libinput_config_scroll_button_lock_state state)
Set the scroll button lock.
struct libinput_event_pointer * libinput_event_get_pointer_event(struct libinput_event *event)
Return the pointer event that is this input event.
int libinput_event_tablet_tool_y_has_changed(struct libinput_event_tablet_tool *event)
Check if the y axis was updated in this event.
struct libinput_device_group * libinput_device_get_device_group(struct libinput_device *device)
Get the device group this device is assigned to.
uint32_t libinput_device_config_send_events_get_modes(struct libinput_device *device)
Return the possible send-event modes for this device.
void * libinput_device_group_get_user_data(struct libinput_device_group *group)
Get the caller-specific data associated with this input device group, if any.
enum libinput_config_status libinput_tablet_tool_config_pressure_range_set(struct libinput_tablet_tool *tool, double minimum, double maximum)
Set the pressure range for this tablet tool.
Definition: libinput.h:6654
struct libinput_event_touch * libinput_event_get_touch_event(struct libinput_event *event)
Return the touch event that is this input event.
uint64_t libinput_tablet_tool_get_tool_id(struct libinput_tablet_tool *tool)
Return the tool ID for a tool object.