Device
Superclasses: Object
The GdkDevice
object represents an input device, such
as a keyboard, a mouse, or a touchpad.
See the Seat
documentation for more information
about the various kinds of devices, and their relationships.
Methods
- class Device
- get_caps_lock_state() bool
Retrieves whether the Caps Lock modifier of the keyboard is locked.
This is only relevant for keyboard devices.
- get_device_tool() DeviceTool | None
Retrieves the current tool for
device
.
- get_direction() Direction
Returns the direction of effective layout of the keyboard.
This is only relevant for keyboard devices.
The direction of a layout is the direction of the majority of its symbols. See
unichar_direction
.
- get_has_cursor() bool
Determines whether the pointer follows device motion.
This is not meaningful for keyboard devices, which don’t have a pointer.
- get_modifier_state() ModifierType
Retrieves the current modifier state of the keyboard.
This is only relevant for keyboard devices.
- get_num_lock_state() bool
Retrieves whether the Num Lock modifier of the keyboard is locked.
This is only relevant for keyboard devices.
- get_product_id() str | None
Returns the product ID of this device.
This ID is retrieved from the device, and does not change. See
get_vendor_id
for more information.
- get_scroll_lock_state() bool
Retrieves whether the Scroll Lock modifier of the keyboard is locked.
This is only relevant for keyboard devices.
- get_source() InputSource
Determines the type of the device.
- get_surface_at_position() tuple[Surface | None, float, float]
Obtains the surface underneath
device
, returning the location of the device inwin_x
andwin_y
.Returns
None
if the surface tree underdevice
is not known to GDK (for example, belongs to another application).
- get_timestamp() int
Returns the timestamp of the last activity for this device.
In practice, this means the timestamp of the last event that was received from the OS for this device. (GTK may occasionally produce events for a device that are not received from the OS, and will not update the timestamp).
Added in version 4.2.
- get_vendor_id() str | None
Returns the vendor ID of this device.
This ID is retrieved from the device, and does not change.
This function, together with
get_product_id
, can be used to eg. composeGSettings
paths to store settings for this device.static GSettings * get_device_settings (GdkDevice *device) { const char *vendor, *product; GSettings *settings; GdkDevice *device; char *path; vendor = gdk_device_get_vendor_id (device); product = gdk_device_get_product_id (device); path = g_strdup_printf ("/org/example/app/devices/``%s``:``%s``/", vendor, product); settings = g_settings_new_with_path (DEVICE_SCHEMA, path); g_free (path); return settings; }
Properties
- class Device
-
- props.direction: Direction
The direction of the current layout.
This is only relevant for keyboard devices.
- props.has_bidi_layouts: bool
Whether the device has both right-to-left and left-to-right layouts.
This is only relevant for keyboard devices.
- props.modifier_state: ModifierType
The current modifier state of the device.
This is only relevant for keyboard devices.
- props.num_touches: int
The maximal number of concurrent touches on a touch device.
Will be 0 if the device is not a touch device or if the number of touches is unknown.
- props.product_id: str
Product ID of this device.
See
get_product_id
.
- props.scroll_lock_state: bool
Whether Scroll Lock is on.
This is only relevant for keyboard devices.
- props.source: InputSource
Source type for the device.
- props.tool: DeviceTool
The
GdkDeviceTool
that is currently used with this device.
- props.vendor_id: str
Vendor ID of this device.
See
get_vendor_id
.
Signals
- class Device.signals
- changed() None
Emitted either when the number of either axes or keys changes.
On X11 this will normally happen when the physical device routing events through the logical device changes (for example, user switches from the USB mouse to a tablet); in that case the logical device will change to reflect the axes and keys on the new physical device.
- tool_changed(tool: DeviceTool) None
Emitted on pen/eraser devices whenever tools enter or leave proximity.
- Parameters:
tool – The new current tool