MirBSD manpage: XGetDeviceModifierMapping(3), XSetDeviceModifierMapping(3)



     XGetDeviceModifierMapping, XSetDeviceModifierMapping - query
     or change device modifier mappings


     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


     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 XModifierKey-
     map structure, a BadLength error results.

     The modifiermap member of the XModifierKeymap structure con-
     tains 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 XListInputDev-
     ices, 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 sup-
     ported. 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, XSetDevi-
     ceModifierMapping returns MappingBusy, and none of the
     modifiers is changed.

XFree86                   Version 4.5.0                         1


     XSetDeviceModifierMapping can generate BadLengthP, BadDev-
     ice, 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

     XGetDeviceModifierMapping can generate BadDevice and Bad-
     Match errors.


     The XModifierKeymap structure contains:

     typedef struct {
          int max_keypermod;
          KeyCode *modifiermap;
     } XModifierKeymap;


     BadLength   More than eight keys were specified in the XMo-
                 difierKeymap 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 XGetDeviceModifier-
                 Mapping 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.


     Programming With Xlib

XFree86                   Version 4.5.0                         2

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.