summaryrefslogtreecommitdiff
path: root/man/XGetDeviceModifierMapping.txt
diff options
context:
space:
mode:
Diffstat (limited to 'man/XGetDeviceModifierMapping.txt')
-rw-r--r--man/XGetDeviceModifierMapping.txt118
1 files changed, 118 insertions, 0 deletions
diff --git a/man/XGetDeviceModifierMapping.txt b/man/XGetDeviceModifierMapping.txt
new file mode 100644
index 0000000..240f93f
--- /dev/null
+++ b/man/XGetDeviceModifierMapping.txt
@@ -0,0 +1,118 @@
+XGETDEVICEMODIFIERMAPPING(libmansuffix)
+=======================================
+
+NAME
+----
+
+ XGetDeviceModifierMapping, XSetDeviceModifierMapping - query or
+ change device modifier mappings
+
+SYNOPSIS
+--------
+
+ #include <X11/extensions/XInput.h>
+
+ int XSetDeviceModifierMapping( Display *display,
+ XDevice *device,
+ XModifierKeymap *modmap);
+
+ XModifierKeymap *XGetDeviceModifierMapping( Display *display,
+ XDevice *device);
+
+ display
+ Specifies the connection to the X server.
+
+ device
+ Specifies the device whose modifier mapping is to be
+ queried or modified.
+
+ modmap
+ Specifies a pointer to the XModifierKeymap structure.
+
+DESCRIPTION
+-----------
+
+ The XSetDeviceModifierMapping request specifies the KeyCodes of
+ the keys (if any) that are to be used as modifiers for the
+ specified device. If it succeeds, the X server generates a
+ DeviceMappingNotify event, and XSetDeviceModifierMapping
+ returns MappingSuccess. X permits at most eight modifier keys.
+ If more than eight are specified in the XModifierKeymap
+ structure, a BadLength error results.
+
+ The modifiermap member of the XModifierKeymap structure
+ contains eight sets of max_keypermod KeyCodes, one for each
+ modifier in the order Shift, Lock, Control, Mod1, Mod2, Mod3,
+ Mod4, and Mod5. Only nonzero KeyCodes have meaning in each set,
+ and zero KeyCodes are ignored. In addition, all of the nonzero
+ KeyCodes must be in the range specified by min_keycode and
+ max_keycode as returned by XListInputDevices, or a BadValue
+ error results. No KeyCode may appear twice in the entire map,
+ or a BadValue error results.
+
+ An X server can impose restrictions on how modifiers can be
+ changed, for example, if certain keys do not generate up
+ transitions in hardware, if auto-repeat cannot be disabled on
+ certain keys, or if multiple modifier keys are not supported.
+ If some such restriction is violated, the status reply is
+ MappingFailed, and none of the modifiers are changed. If the
+ new KeyCodes specified for a modifier differ from those
+ currently defined and any (current or new) keys for that
+ modifier are in the logically down state,
+ XSetDeviceModifierMapping returns MappingBusy, and none of the
+ modifiers is changed.
+
+ XSetDeviceModifierMapping can generate BadLength, BadDevice,
+ BadMatch, BadAlloc, and BadValue errors.
+
+ The XGetDeviceModifierMapping request returns a pointer to a
+ newly created XModifierKeymap structure that contains the keys
+ being used as modifiers. The structure should be freed after
+ use by calling XFreeModifierMapping . If only zero values
+ appear in the set for any modifier, that modifier is disabled.
+
+ XGetDeviceModifierMapping can generate BadDevice and BadMatch
+ errors.
+
+Structures
+
+ The XModifierKeymap structure contains:
+
+ typedef struct {
+ int max_keypermod;
+ KeyCode *modifiermap;
+ } XModifierKeymap;
+
+DIAGNOSTICS
+-----------
+
+ BadLength
+ More than eight keys were specified in the
+ XModifierKeymap structure.
+
+ BadAlloc
+ The server failed to allocate the requested resource or
+ server memory.
+
+ BadDevice
+ An invalid device was specified. The specified device
+ does not exist or has not been opened by this client via
+ XOpenInputDevice. This error may also occur if the
+ specified device is the X keyboard or X pointer device.
+
+ BadMatch
+ This error may occur if an XGetDeviceModifierMapping or
+ XChangeDeviceModifierMapping request was made specifying
+ a device that has no keys.
+
+ BadValue
+ Some numeric value falls outside the range of values
+ accepted by the request. Unless a specific range is
+ specified for an argument, the full range defined by the
+ argument's type is accepted. Any argument defined as a
+ set of alternatives can generate this error.
+
+SEE ALSO
+--------
+
+ XSetDeviceKeyMapping(libmansuffix), XSetDeviceButtonMapping(libmansuffix)