libinput.h File Reference
#include <stdlib.h>
#include <stdint.h>
#include <libudev.h>

Go to the source code of this file.

Data Structures

struct  libinput_interface
 libinput does not open file descriptors to devices directly, instead open_restricted() and close_restricted() are called for each path that must be opened. More...
 

Macros

#define LIBINPUT_ATTRIBUTE_PRINTF(_format, _args)
 
#define LIBINPUT_ATTRIBUTE_DEPRECATED
 

Typedefs

typedef 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. More...
 
typedef void(*) voi libinput_log_set_handler) (struct libinput *libinput, libinput_log_handler log_handler)
 Set the context's log handler. More...
 

Enumerations

enum  libinput_log_priority { LIBINPUT_LOG_PRIORITY_DEBUG, LIBINPUT_LOG_PRIORITY_INFO, LIBINPUT_LOG_PRIORITY_ERROR }
 Log priority for internal logging messages. More...
 
enum  libinput_device_capability {
  LIBINPUT_DEVICE_CAP_KEYBOARD, LIBINPUT_DEVICE_CAP_POINTER, LIBINPUT_DEVICE_CAP_TOUCH, LIBINPUT_DEVICE_CAP_TABLET_TOOL,
  LIBINPUT_DEVICE_CAP_GESTURE
}
 Capabilities on a device. More...
 
enum  libinput_key_state { LIBINPUT_KEY_STATE_RELEASED, LIBINPUT_KEY_STATE_PRESSED }
 Logical state of a key. More...
 
enum  libinput_led { LIBINPUT_LED_NUM_LOCK, LIBINPUT_LED_CAPS_LOCK, LIBINPUT_LED_SCROLL_LOCK }
 Mask reflecting LEDs on a device. More...
 
enum  libinput_button_state { LIBINPUT_BUTTON_STATE_RELEASED, LIBINPUT_BUTTON_STATE_PRESSED }
 Logical state of a physical button. More...
 
enum  libinput_pointer_axis { LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL }
 Axes on a device with the capability LIBINPUT_DEVICE_CAP_POINTER that are not x or y coordinates. More...
 
enum  libinput_pointer_axis_source { LIBINPUT_POINTER_AXIS_SOURCE_WHEEL, LIBINPUT_POINTER_AXIS_SOURCE_FINGER, LIBINPUT_POINTER_AXIS_SOURCE_CONTINUOUS }
 The source for a libinput_pointer_axis event. More...
 
enum  libinput_tablet_tool_type {
  LIBINPUT_TABLET_TOOL_TYPE_PEN, LIBINPUT_TABLET_TOOL_TYPE_ERASER, LIBINPUT_TABLET_TOOL_TYPE_BRUSH, LIBINPUT_TABLET_TOOL_TYPE_PENCIL,
  LIBINPUT_TABLET_TOOL_TYPE_AIRBRUSH, LIBINPUT_TABLET_TOOL_TYPE_MOUSE, LIBINPUT_TABLET_TOOL_TYPE_LENS
}
 Available tool types for a device with the LIBINPUT_DEVICE_CAP_TABLET_TOOL capability. More...
 
enum  libinput_tablet_tool_proximity_state { LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_OUT, LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_IN }
 The state of proximity for a tool on a device. More...
 
enum  libinput_tablet_tool_tip_state { LIBINPUT_TABLET_TOOL_TIP_UP, LIBINPUT_TABLET_TOOL_TIP_DOWN }
 The tip contact state for a tool on a device. More...
 
enum  libinput_event_type {
  LIBINPUT_EVENT_NONE, LIBINPUT_EVENT_DEVICE_ADDED, LIBINPUT_EVENT_DEVICE_REMOVED, LIBINPUT_EVENT_KEYBOARD_KEY,
  LIBINPUT_EVENT_POINTER_MOTION, LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE, LIBINPUT_EVENT_POINTER_BUTTON, LIBINPUT_EVENT_POINTER_AXIS,
  LIBINPUT_EVENT_TOUCH_DOWN, LIBINPUT_EVENT_TOUCH_UP, LIBINPUT_EVENT_TOUCH_MOTION, LIBINPUT_EVENT_TOUCH_CANCEL,
  LIBINPUT_EVENT_TOUCH_FRAME, LIBINPUT_EVENT_TABLET_TOOL_AXIS, LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY, LIBINPUT_EVENT_TABLET_TOOL_TIP,
  LIBINPUT_EVENT_TABLET_TOOL_BUTTON, LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN, LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE, LIBINPUT_EVENT_GESTURE_SWIPE_END,
  LIBINPUT_EVENT_GESTURE_PINCH_BEGIN, LIBINPUT_EVENT_GESTURE_PINCH_UPDATE, LIBINPUT_EVENT_GESTURE_PINCH_END
}
 Event type for events returned by libinput_get_event(). More...
 
enum  libinput_config_status { LIBINPUT_CONFIG_STATUS_SUCCESS, LIBINPUT_CONFIG_STATUS_UNSUPPORTED, LIBINPUT_CONFIG_STATUS_INVALID }
 Status codes returned when applying configuration settings. More...
 
enum  libinput_config_tap_state { LIBINPUT_CONFIG_TAP_DISABLED, LIBINPUT_CONFIG_TAP_ENABLED }
 
enum  libinput_config_drag_state { LIBINPUT_CONFIG_DRAG_DISABLED, LIBINPUT_CONFIG_DRAG_ENABLED }
 A config status to distinguish or set dragging on a device. More...
 
enum  libinput_config_drag_lock_state { LIBINPUT_CONFIG_DRAG_LOCK_DISABLED, LIBINPUT_CONFIG_DRAG_LOCK_ENABLED }
 
enum  libinput_config_send_events_mode { LIBINPUT_CONFIG_SEND_EVENTS_ENABLED, LIBINPUT_CONFIG_SEND_EVENTS_DISABLED, LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE }
 The send-event mode of a device defines when a device may generate events and pass those events to the caller. More...
 
enum  libinput_config_accel_profile { LIBINPUT_CONFIG_ACCEL_PROFILE_NONE, LIBINPUT_CONFIG_ACCEL_PROFILE_FLAT, LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE }
 
enum  libinput_config_click_method { LIBINPUT_CONFIG_CLICK_METHOD_NONE, LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS, LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER }
 The click method defines when to generate software-emulated buttons, usually on a device that does not have a specific physical button available. More...
 
enum  libinput_config_middle_emulation_state { LIBINPUT_CONFIG_MIDDLE_EMULATION_DISABLED, LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED }
 
enum  libinput_config_scroll_method { LIBINPUT_CONFIG_SCROLL_NO_SCROLL, LIBINPUT_CONFIG_SCROLL_2FG, LIBINPUT_CONFIG_SCROLL_EDGE, LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN }
 The scroll method of a device selects when to generate scroll axis events instead of pointer motion events. More...
 
enum  libinput_config_dwt_state { LIBINPUT_CONFIG_DWT_DISABLED, LIBINPUT_CONFIG_DWT_ENABLED }
 Possible states for the disable-while-typing feature. More...
 

Functions

void libinput_event_destroy (struct libinput_event *event)
 Destroy the event, freeing all associated resources. More...
 
enum libinput_event_type libinput_event_get_type (struct libinput_event *event)
 Get the type of the event. More...
 
struct libinputlibinput_event_get_context (struct libinput_event *event)
 Get the libinput context from the event. More...
 
struct libinput_devicelibinput_event_get_device (struct libinput_event *event)
 Return the device associated with this event. More...
 
struct libinput_event_pointerlibinput_event_get_pointer_event (struct libinput_event *event)
 Return the pointer event that is this input event. More...
 
struct libinput_event_keyboardlibinput_event_get_keyboard_event (struct libinput_event *event)
 Return the keyboard event that is this input event. More...
 
struct libinput_event_touchlibinput_event_get_touch_event (struct libinput_event *event)
 Return the touch event that is this input event. More...
 
struct libinput_event_gesture * libinput_event_get_gesture_event (struct libinput_event *event)
 Return the gesture event that is this input event. More...
 
struct libinput_event_tablet_toollibinput_event_get_tablet_tool_event (struct libinput_event *event)
 Return the tablet tool event that is this input event. More...
 
struct libinput_event_device_notifylibinput_event_get_device_notify_event (struct libinput_event *event)
 Return the device event that is this input event. More...
 
struct libinput_eventlibinput_event_device_notify_get_base_event (struct libinput_event_device_notify *event)
 
uint32_t libinput_event_keyboard_get_time (struct libinput_event_keyboard *event)
 
uint64_t libinput_event_keyboard_get_time_usec (struct libinput_event_keyboard *event)
 
uint32_t libinput_event_keyboard_get_key (struct libinput_event_keyboard *event)
 
enum libinput_key_state libinput_event_keyboard_get_key_state (struct libinput_event_keyboard *event)
 
struct libinput_eventlibinput_event_keyboard_get_base_event (struct libinput_event_keyboard *event)
 
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 devices on the associated seat after the event was triggered. More...
 
uint32_t libinput_event_pointer_get_time (struct libinput_event_pointer *event)
 
uint64_t libinput_event_pointer_get_time_usec (struct libinput_event_pointer *event)
 
double libinput_event_pointer_get_dx (struct libinput_event_pointer *event)
 Return the delta between the last event and the current event. More...
 
double libinput_event_pointer_get_dy (struct libinput_event_pointer *event)
 Return the delta between the last event and the current event. More...
 
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. More...
 
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. More...
 
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 device. More...
 
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 device. More...
 
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. More...
 
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. More...
 
uint32_t libinput_event_pointer_get_button (struct libinput_event_pointer *event)
 Return the button that triggered this event. More...
 
enum libinput_button_state libinput_event_pointer_get_button_state (struct libinput_event_pointer *event)
 Return the button state that triggered this event. More...
 
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 on all devices on the associated seat after the event was triggered. More...
 
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. More...
 
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. More...
 
enum libinput_pointer_axis_source libinput_event_pointer_get_axis_source (struct libinput_event_pointer *event)
 Return the source for a given axis event. More...
 
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. More...
 
struct libinput_eventlibinput_event_pointer_get_base_event (struct libinput_event_pointer *event)
 
uint32_t libinput_event_touch_get_time (struct libinput_event_touch *event)
 
uint64_t libinput_event_touch_get_time_usec (struct libinput_event_touch *event)
 
int32_t libinput_event_touch_get_slot (struct libinput_event_touch *event)
 Get the slot of this touch event. More...
 
int32_t libinput_event_touch_get_seat_slot (struct libinput_event_touch *event)
 Get the seat slot of the touch event. More...
 
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 device. More...
 
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 device. More...
 
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. More...
 
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. More...
 
struct libinput_eventlibinput_event_touch_get_base_event (struct libinput_event_touch *event)
 
uint32_t libinput_event_gesture_get_time (struct libinput_event_gesture *event)
 
uint64_t libinput_event_gesture_get_time_usec (struct libinput_event_gesture *event)
 
struct libinput_eventlibinput_event_gesture_get_base_event (struct libinput_event_gesture *event)
 
int libinput_event_gesture_get_finger_count (struct libinput_event_gesture *event)
 Return the number of fingers used for a gesture. More...
 
int libinput_event_gesture_get_cancelled (struct libinput_event_gesture *event)
 Return if the gesture ended normally, or if it was cancelled. More...
 
double libinput_event_gesture_get_dx (struct libinput_event_gesture *event)
 Return the delta between the last event and the current event. More...
 
double libinput_event_gesture_get_dy (struct libinput_event_gesture *event)
 Return the delta between the last event and the current event. More...
 
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. More...
 
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. More...
 
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 between the fingers and the distance at the start of the gesture. More...
 
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_UPDATE event. More...
 
struct libinput_eventlibinput_event_tablet_tool_get_base_event (struct libinput_event_tablet_tool *event)
 
int libinput_event_tablet_tool_x_has_changed (struct libinput_event_tablet_tool *event)
 Check if the x axis was updated in this event. More...
 
int libinput_event_tablet_tool_y_has_changed (struct libinput_event_tablet_tool *event)
 Check if the y axis was updated in this event. More...
 
int libinput_event_tablet_tool_pressure_has_changed (struct libinput_event_tablet_tool *event)
 Check if the pressure axis was updated in this event. More...
 
int libinput_event_tablet_tool_distance_has_changed (struct libinput_event_tablet_tool *event)
 Check if the distance axis was updated in this event. More...
 
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. More...
 
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. More...
 
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. More...
 
int libinput_event_tablet_tool_slider_has_changed (struct libinput_event_tablet_tool *event)
 Check if the slider axis was updated in this event. More...
 
int libinput_event_tablet_tool_wheel_has_changed (struct libinput_event_tablet_tool *event)
 Check if the wheel axis was updated in this event. More...
 
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 current logical orientation. More...
 
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 current logical orientation. More...
 
double libinput_event_tablet_tool_get_dx (struct libinput_event_tablet_tool *event)
 Return the delta between the last event and the current event. More...
 
double libinput_event_tablet_tool_get_dy (struct libinput_event_tablet_tool *event)
 Return the delta between the last event and the current event. More...
 
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, 1]. More...
 
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]. More...
 
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. More...
 
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. More...
 
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 position. More...
 
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]. More...
 
double libinput_event_tablet_tool_get_wheel_delta (struct libinput_event_tablet_tool *event)
 Return the delta for the wheel in degrees. More...
 
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. More...
 
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. More...
 
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. More...
 
struct libinput_tablet_toollibinput_event_tablet_tool_get_tool (struct libinput_event_tablet_tool *event)
 Returns the tool that was in use during this event. More...
 
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. More...
 
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. More...
 
uint32_t libinput_event_tablet_tool_get_button (struct libinput_event_tablet_tool *event)
 Return the button that triggered this event. More...
 
enum libinput_button_state libinput_event_tablet_tool_get_button_state (struct libinput_event_tablet_tool *event)
 Return the button state of the event. More...
 
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 pressed on all devices on the associated seat after the the event was triggered. More...
 
uint32_t libinput_event_tablet_tool_get_time (struct libinput_event_tablet_tool *event)
 
uint64_t libinput_event_tablet_tool_get_time_usec (struct libinput_event_tablet_tool *event)
 
enum libinput_tablet_tool_type libinput_tablet_tool_get_type (struct libinput_tablet_tool *tool)
 Return the type of tool type for a tool object, see Vendor-specific tablet tool types for details. More...
 
uint64_t libinput_tablet_tool_get_tool_id (struct libinput_tablet_tool *tool)
 Return the tool ID for a tool object. More...
 
struct libinput_tablet_toollibinput_tablet_tool_ref (struct libinput_tablet_tool *tool)
 Increment the reference count of the tool by one. More...
 
struct libinput_tablet_toollibinput_tablet_tool_unref (struct libinput_tablet_tool *tool)
 Decrement the reference count of the tool by one. More...
 
int libinput_tablet_tool_has_pressure (struct libinput_tablet_tool *tool)
 Return whether the tablet tool supports pressure. More...
 
int libinput_tablet_tool_has_distance (struct libinput_tablet_tool *tool)
 Return whether the tablet tool supports distance. More...
 
int libinput_tablet_tool_has_tilt (struct libinput_tablet_tool *tool)
 Return whether the tablet tool supports tilt. More...
 
int libinput_tablet_tool_has_rotation (struct libinput_tablet_tool *tool)
 Return whether the tablet tool supports z-rotation. More...
 
int libinput_tablet_tool_has_slider (struct libinput_tablet_tool *tool)
 Return whether the tablet tool has a slider axis. More...
 
int libinput_tablet_tool_has_wheel (struct libinput_tablet_tool *tool)
 Return whether the tablet tool has a relative wheel. More...
 
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). More...
 
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. More...
 
uint64_t libinput_tablet_tool_get_serial (struct libinput_tablet_tool *tool)
 Return the serial number of a tool. More...
 
void * libinput_tablet_tool_get_user_data (struct libinput_tablet_tool *tool)
 Return the user data associated with a tool object. More...
 
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. More...
 
struct libinputlibinput_udev_create_context (const struct libinput_interface *interface, void *user_data, struct udev *udev)
 Create a new libinput context from udev. More...
 
int libinput_udev_assign_seat (struct libinput *libinput, const char *seat_id)
 Assign a seat to this libinput context. More...
 
struct libinputlibinput_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 libinput_path_add_device() and libinput_path_remove_device(). More...
 
struct libinput_devicelibinput_path_add_device (struct libinput *libinput, const char *path)
 Add a device to a libinput context initialized with libinput_path_create_context(). More...
 
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 such a context with libinput_path_add_device(). More...
 
int libinput_get_fd (struct libinput *libinput)
 libinput keeps a single file descriptor for all events. More...
 
int libinput_dispatch (struct libinput *libinput)
 Main event dispatchment function. More...
 
struct libinput_eventlibinput_get_event (struct libinput *libinput)
 Retrieve the next event from libinput's internal event queue. More...
 
enum libinput_event_type libinput_next_event_type (struct libinput *libinput)
 Return the type of the next event in the internal queue. More...
 
void libinput_set_user_data (struct libinput *libinput, void *user_data)
 Set caller-specific data associated with this context. More...
 
void * libinput_get_user_data (struct libinput *libinput)
 Get the caller-specific data associated with this context, if any. More...
 
int libinput_resume (struct libinput *libinput)
 Resume a suspended libinput context. More...
 
void libinput_suspend (struct libinput *libinput)
 Suspend monitoring for new devices and close existing devices. More...
 
struct libinputlibinput_ref (struct libinput *libinput)
 Add a reference to the context. More...
 
struct libinputlibinput_unref (struct libinput *libinput)
 Dereference the libinput context. More...
 
void libinput_log_set_priority (struct libinput *libinput, enum libinput_log_priority priority)
 Set the log priority for the libinput context. More...
 
enum libinput_log_priority libinput_log_get_priority (const struct libinput *libinput)
 Get the context's log priority. More...
 
struct libinput_seatlibinput_seat_ref (struct libinput_seat *seat)
 Increase the refcount of the seat. More...
 
struct libinput_seatlibinput_seat_unref (struct libinput_seat *seat)
 Decrease the refcount of the seat. More...
 
void libinput_seat_set_user_data (struct libinput_seat *seat, void *user_data)
 Set caller-specific data associated with this seat. More...
 
void * libinput_seat_get_user_data (struct libinput_seat *seat)
 Get the caller-specific data associated with this seat, if any. More...
 
struct libinputlibinput_seat_get_context (struct libinput_seat *seat)
 Get the libinput context from the seat. More...
 
const char * libinput_seat_get_physical_name (struct libinput_seat *seat)
 Return the physical name of the seat. More...
 
const char * libinput_seat_get_logical_name (struct libinput_seat *seat)
 Return the logical name of the seat. More...
 
struct libinput_devicelibinput_device_ref (struct libinput_device *device)
 Increase the refcount of the input device. More...
 
struct libinput_devicelibinput_device_unref (struct libinput_device *device)
 Decrease the refcount of the input device. More...
 
void libinput_device_set_user_data (struct libinput_device *device, void *user_data)
 Set caller-specific data associated with this input device. More...
 
void * libinput_device_get_user_data (struct libinput_device *device)
 Get the caller-specific data associated with this input device, if any. More...
 
struct libinputlibinput_device_get_context (struct libinput_device *device)
 Get the libinput context from the device. More...
 
struct libinput_device_grouplibinput_device_get_device_group (struct libinput_device *device)
 Get the device group this device is assigned to. More...
 
const char * libinput_device_get_sysname (struct libinput_device *device)
 Get the system name of the device. More...
 
const char * libinput_device_get_name (struct libinput_device *device)
 The descriptive device name as advertised by the kernel and/or the hardware itself. More...
 
unsigned int libinput_device_get_id_product (struct libinput_device *device)
 Get the product ID for this device. More...
 
unsigned int libinput_device_get_id_vendor (struct libinput_device *device)
 Get the vendor ID for this device. More...
 
const char * libinput_device_get_output_name (struct libinput_device *device)
 A device may be mapped to a single output, or all available outputs. More...
 
struct libinput_seatlibinput_device_get_seat (struct libinput_device *device)
 Get the seat associated with this input device, see Seats for details. More...
 
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 seat. More...
 
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. More...
 
void libinput_device_led_update (struct libinput_device *device, enum libinput_led leds)
 Update the LEDs on the device, if any. More...
 
int libinput_device_has_capability (struct libinput_device *device, enum libinput_device_capability capability)
 Check if the given device has the specified capability. More...
 
int libinput_device_get_size (struct libinput_device *device, double *width, double *height)
 Get the physical size of a device in mm, where meaningful. More...
 
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.h). More...
 
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.h). More...
 
struct libinput_device_grouplibinput_device_group_ref (struct libinput_device_group *group)
 Increase the refcount of the device group. More...
 
struct libinput_device_grouplibinput_device_group_unref (struct libinput_device_group *group)
 Decrease the refcount of the device group. More...
 
void libinput_device_group_set_user_data (struct libinput_device_group *group, void *user_data)
 Set caller-specific data associated with this device group. More...
 
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. More...
 
const char * libinput_config_status_to_str (enum libinput_config_status status)
 Return a string describing the error. More...
 
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. More...
 
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 to left, right, middle click, respectively. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
int libinput_device_config_calibration_has_matrix (struct libinput_device *device)
 Check if the device can be calibrated via a calibration matrix. More...
 
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. More...
 
int libinput_device_config_calibration_get_matrix (struct libinput_device *device, float matrix[6])
 Return the current calibration matrix for this device. More...
 
int libinput_device_config_calibration_get_default_matrix (struct libinput_device *device, float matrix[6])
 Return the default calibration matrix for this device. More...
 
uint32_t libinput_device_config_send_events_get_modes (struct libinput_device *device)
 Return the possible send-event modes for this device. More...
 
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. More...
 
uint32_t libinput_device_config_send_events_get_mode (struct libinput_device *device)
 Get the send-event mode for this device. More...
 
uint32_t libinput_device_config_send_events_get_default_mode (struct libinput_device *device)
 Get the default send-event mode for this device. More...
 
int libinput_device_config_accel_is_available (struct libinput_device *device)
 Check if a device uses libinput-internal pointer-acceleration. More...
 
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. More...
 
double libinput_device_config_accel_get_speed (struct libinput_device *device)
 Get the current pointer acceleration setting for this pointer device. More...
 
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]. More...
 
uint32_t libinput_device_config_accel_get_profiles (struct libinput_device *device)
 Returns a bitmask of the configurable acceleration modes available on this device. More...
 
enum libinput_config_status libinput_device_config_accel_set_profile (struct libinput_device *device, enum libinput_config_accel_profile mode)
 Set the pointer acceleration profile of this pointer device to the given mode. More...
 
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. More...
 
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. More...
 
int libinput_device_config_scroll_has_natural_scroll (struct libinput_device *device)
 Return non-zero if the device supports "natural scrolling". More...
 
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. More...
 
int libinput_device_config_scroll_get_natural_scroll_enabled (struct libinput_device *device)
 Get the current mode for scrolling on this device. More...
 
int libinput_device_config_scroll_get_default_natural_scroll_enabled (struct libinput_device *device)
 Get the default mode for scrolling on this device. More...
 
int libinput_device_config_left_handed_is_available (struct libinput_device *device)
 Check if a device has a configuration that supports left-handed usage. More...
 
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. More...
 
int libinput_device_config_left_handed_get (struct libinput_device *device)
 Get the current left-handed configuration of the device. More...
 
int libinput_device_config_left_handed_get_default (struct libinput_device *device)
 Get the default left-handed configuration of the device. More...
 
uint32_t libinput_device_config_click_get_methods (struct libinput_device *device)
 Check which button click methods a device supports. More...
 
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. More...
 
enum libinput_config_click_method libinput_device_config_click_get_method (struct libinput_device *device)
 Get the button click method for this device. More...
 
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. More...
 
int libinput_device_config_middle_emulation_is_available (struct libinput_device *device)
 Check if middle mouse button emulation configuration is available on this device. More...
 
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. More...
 
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. More...
 
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. More...
 
uint32_t libinput_device_config_scroll_get_methods (struct libinput_device *device)
 Check which scroll methods a device supports. More...
 
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. More...
 
enum libinput_config_scroll_method libinput_device_config_scroll_get_method (struct libinput_device *device)
 Get the scroll method for this device. More...
 
enum libinput_config_scroll_method libinput_device_config_scroll_get_default_method (struct libinput_device *device)
 Get the default scroll method for this device. More...
 
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. More...
 
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. More...
 
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. More...
 
int libinput_device_config_dwt_is_available (struct libinput_device *device)
 Check if this device supports configurable disable-while-typing feature. More...
 
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. More...
 
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. More...
 
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. More...
 

Macro Definition Documentation

#define LIBINPUT_ATTRIBUTE_DEPRECATED
#define LIBINPUT_ATTRIBUTE_PRINTF (   _format,
  _args 
)

Enumeration Type Documentation

Enumerator
LIBINPUT_CONFIG_ACCEL_PROFILE_NONE 

Placeholder for devices that don't have a configurable pointer acceleration profile.

LIBINPUT_CONFIG_ACCEL_PROFILE_FLAT 

A flat acceleration profile.

Pointer motion is accelerated by a constant (device-specific) factor, depending on the current speed.

See also
libinput_device_config_accel_set_speed
LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE 

An adaptive acceleration profile.

Pointer acceleration depends on the input speed. This is the default profile for most devices.