dwww Home | Manual pages | Find package

XkbChangeControls(3)             XKB FUNCTIONS             XkbChangeControls(3)

NAME
       XkbChangeControls - Provides a flexible method for updating the controls
       in a server to match those in the changed keyboard description

SYNOPSIS

       Bool XkbChangeControls (Display *dpy, XkbDescPtr xkb, XkbControlsChange-
              sPtr changes);

ARGUMENTS
       dpy    connection to X server

       xkb    keyboard description with changed xkb->ctrls

       changes
              which parts of xkb->ctrls have changed

DESCRIPTION
       The XkbControlsChangesRec structure allows applications to track modifi-
       cations  to an XkbControlsRec structure and thereby reduce the amount of
       traffic sent to the server. The same XkbControlsChangesRec structure may
       be used in several successive modifications to the  same  XkbControlsRec
       structure,  then subsequently used to cause all of the changes, and only
       the changes, to be propagated to the server.

       The changed_ctrls field is a mask specifying which logical sets of  data
       in  the controls structure have been modified. In this context, modified
       means set, that is, if a value is set to the same  value  it  previously
       contained,  it  has  still been modified, and is noted as changed. Valid
       values for changed_ctrls are any combination of the masks listed in  Ta-
       ble  1 that have "ok" in the changed_ctrls column. Setting a bit implies
       the corresponding data fields from  the  "Relevant  XkbControlsRec  Data
       Fields"  column in Table 1 have been modified. The enabled_ctrls_changes
       field specifies which bits in the enabled_ctrls field have  changed.  If
       the  number of keyboard groups has changed, the num_groups_changed field
       is set to True.

       Table 1 shows the actual values for the individual mask bits used to se-
       lect controls for modification and to enable and  disable  the  control.
       Note  that the same mask bit is used to specify general modifications to
       the parameters used to configure the control (which), and to enable  and
       disable the control (enabled_ctrls). The anomalies in the table (no "ok"
       in  column)  are  for controls that have no configurable attributes; and
       for controls that are not boolean controls and therefore cannot  be  en-
       abled or disabled.

                                     Table 1 Xkb Controls
       ──────────────────────────────────────────────────────────────────────────────────
       Control           Control
                         Selection         Relevant
                         Mask (which       XkbControlsRec    Boolean Control
                         parameter)        DataFields        enabled_ctrls bit   Section
       ──────────────────────────────────────────────────────────────────────────────────
       AccessXFeedback   XkbAccessX-       ax_options:       XkbAccessX-         10.6.3
                         FeedbackMask        XkbAX_*FBMask   FeedbackMask
       AccessXKeys                                           XkbAccessXKeys-     10.6.1
                                                             Mask
       AccessXTimeout    XkbAccessX-       ax_timeout        XkbAccessX-         10.6.2
                         TimeoutMask       axt_opts_mask     TimeoutMask
                                           axt_opts_values
                                           axt_ctrls_mask
                                           axt_ctrls_val-
                                           ues
       AudibleBell                                           XkbAudibleBell-     9.2
                                                             Mask
       AutoReset                                                                 10.1.2
       BounceKeys        XkbBounce-        debounce_delay    XkbBounceKeysMask   10.6.7
                         KeysMask
       Detectable-                                                               10.3.3
       Autorepeat
       EnabledControls   XkbControls-      enabled_ctrls     Non-Boolean         10.1.1
                         EnabledMask                         Control
       GroupsWrap        XkbGroupsWrap-    groups_wrap       Non-Boolean         10.7.1
                         Mask                                Control
       IgnoreGroupLock                                       XkbIgnore-          10.7.3
                                                             GroupLockMask
       IgnoreLockMods    XkbIgnore-        ignore_lock       Non-Boolean         5.1
                         LockModsMask                        Control
       InternalMods      XkbInternal-      internal          Non-Boolean         5.1
                         ModsMask                            Control
       MouseKeys         Xkb-              mk_dflt_btn       XkbMouseKeysMask    10.5.1
                         MouseKeysMask
       MouseKeysAccel    XkbMouseKeys-     mk_delay mk_in-   XkbMouseKeys-       10.5.2
                         AccelMask         terval            AccelMask
                                           mk_time_to_max
                                           mk_max_speed
                                           mk_curve
       Overlay1                                              XkbOverlay1Mask     10.4
       Overlay2                                              XkbOverlay2Mask     10.4
       PerKeyRepeat      XkbPerKey-        per_key_repeat    Non-Boolean         10.3.1
                         RepeatMask                          Control
       RepeatKeys        XkbRepeatKeys-    repeat_delay      XkbRepeatKeysMask   10.3
                         Mask
                                                             repeat_interval
       SlowKeys          XkbSlowKeysMask   slow_keys_delay   XkbSlowKeysMask     10.6.6
       StickyKeys        XkbStickyKeys-    ax_options:       XkbStickyKeysMask   10.6.8
                         Mask                Xk-
                                           bAX_TwoKeysMask
                                             XkbAX_Latch-
                                           ToLockMask

       Table 2 shows the actual values for the individual mask bits used to se-
       lect  controls  for  modification and to enable and disable the control.
       Note that the same mask bit is used to specify general modifications  to
       the parameters
        used  to  configure  the control (which), and to enable and disable the
       control (enabled_ctrls). The anomalies in the table (no "ok" in  column)
       are  for controls that have no configurable attributes; and for controls
       that are not boolean controls and therefore cannot be  enabled  or  dis-
       abled.

                            Table 2 Controls Mask Bits
       ──────────────────────────────────────────────────────────────────────
       Mask Bit                 which or             Value
                                changed    enabled
                                _ctrls     _ctrls
       ──────────────────────────────────────────────────────────────────────
       XkbRepeatKeysMask        ok         ok        (1L<<0)
       XkbSlowKeysMask          ok         ok        (1L<<1)
       XkbBounceKeysMask        ok         ok        (1L<<2)
       XkbStickyKeysMask        ok         ok        (1L<<3)
       XkbMouseKeysMask         ok         ok        (1L<<4)
       XkbMouseKeysAccelMask    ok         ok        (1L<<5)
       XkbAccessXKeysMask       ok         ok        (1L<<6)
       XkbAccessXTimeoutMask    ok         ok        (1L<<7)
       XkbAccessXFeedbackMask   ok         ok        (1L<<8)
       XkbAudibleBellMask                  ok        (1L<<9)
       XkbOverlay1Mask                     ok        (1L<<10)
       XkbOverlay2Mask                     ok        (1L<<11)
       XkbIgnoreGroupLockMask              ok        (1L<<12)
       XkbGroupsWrapMask        ok                   (1L<<27)
       XkbInternalModsMask      ok                   (1L<<28)
       XkbIgnoreLockModsMask    ok                   (1L<<29)
       XkbPerKeyRepeatMask      ok                   (1L<<30)
       XkbControlsEnabledMask   ok                   (1L<<31)
       XkbAccessXOptionsMask    ok         ok        (XkbStickyKeysMask |
                                                     XkbAccessXFeedbackMask)
       XkbAllBooleanCtrlsMask              ok        (0x00001FFF)
       XkbAllControlsMask       ok                   (0xF8001FFF)

       If you have an Xkb description with controls that have been modified and
       an XkbControlsChangesRec that describes the changes that have been made,
       the  XkbChangeControls  function provides a flexible method for updating
       the controls in a server to match those in the changed keyboard descrip-
       tion.

       XkbChangeControls copies any controls fields specified by  changes  from
       the  keyboard  description controls structure, xkb->ctrls, to the server
       specified by dpy.

STRUCTURES
       The XkbControlsChangesRec structure is defined as follows:

       typedef struct _XkbControlsChanges {
           unsigned int  changed_ctrls;         /* bits indicating changed control data */
           unsigned int  enabled_ctrls_changes; /* bits indicating enabled/disabled controls */
           Bool          num_groups_changed;    /* True if number of keyboard groups changed */
       } XkbControlsChangesRec,*XkbControlsChangesPtr;

SEE ALSO
       XkbChangeControls(3),    XkbChangeDeviceInfo(3),    XkbChangeEnabledCon-
       trols(3), XkbChangeMap(3), XkbChangeNames(3), XkbChangeTypesOfKey(3)

X Version 11                     libX11 1.8.12             XkbChangeControls(3)

Generated by dwww version 1.16 on Sat Oct 3 04:26:03 CEST 2026.