1XkbChangeControls(3) XKB FUNCTIONS XkbChangeControls(3)
2
3
4
6 XkbChangeControls - Provides a flexible method for updating the con‐
7 trols in a server to match those in the changed keyboard description
8
10 Bool XkbChangeControls (Display *dpy, XkbDescPtr xkb, XkbCon‐
11 trolsChangesPtr changes);
12
14 - dpy connection to X server
15
16 - xkb keyboard description with changed xkb->ctrls
17
18 - changes
19 which parts of xkb->ctrls have changed
20
22 The XkbControlsChangesRec structure allows applications to track modi‐
23 fications to an XkbControlsRec structure and thereby reduce the amount
24 of traffic sent to the server. The same XkbControlsChangesRec structure
25 may be used in several successive modifications to the same XkbControl‐
26 sRec structure, then subsequently used to cause all of the changes, and
27 only the changes, to be propagated to the server.
28
29 The changed_ctrls field is a mask specifying which logical sets of data
30 in the controls structure have been modified. In this context, modified
31 means set, that is, if a value is set to the same value it previously
32 contained, it has still been modified, and is noted as changed. Valid
33 values for changed_ctrls are any combination of the masks listed in Ta‐
34 ble 1 that have "ok" in the changed_ctrls column. Setting a bit implies
35 the corresponding data fields from the "Relevant XkbControlsRec Data
36 Fields" column in Table 1 have been modified. The enabled_ctrls_changes
37 field specifies which bits in the enabled_ctrls field have changed. If
38 the number of keyboard groups has changed, the num_groups_changed field
39 is set to True.
40
41 Table 1 shows the actual values for the individual mask bits used to
42 select controls for modification and to enable and disable the control.
43 Note that the same mask bit is used to specify general modifications to
44 the parameters used to configure the control (which), and to enable and
45 disable the control (enabled_ctrls). The anomalies in the table (no
46 "ok" in column) are for controls that have no configurable attributes;
47 and for controls that are not boolean controls and therefore cannot be
48 enabled or disabled.
49
50
51 Table 1 Xkb Controls
52 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
53 Control Control
54 Selection Relevant
55 Mask XkbControlsRec Boolean Control
56 (which parameter) DataFields enabled_ctrls bit Section
57 ───────────────────────────────────────────────────────────────────────────────────
58 AccessXFeedback XkbAccessXFeed‐ ax_options: XkbAccessXFeedbackMask 10.6.3
59 backMask
60 XkbAX_*FBMask
61 AccessXKeys XkbAccessXKeysMask 10.6.1
62 AccessXTimeout XkbAccessXTime‐ ax_timeout XkbAccessXTimeoutMask 10.6.2
63 outMask
64 axt_opts_mask
65 axt_opts_values
66
67 axt_ctrls_mask
68 axt_ctrls_values
69 AudibleBell XkbAudibleBellMask 9.2
70 AutoReset 10.1.2
71 BounceKeys XkbBounceKeysMask debounce_delay XkbBounceKeysMask 10.6.7
72 Detectable- 10.3.3
73 Autorepeat
74 EnabledControls XkbControlsEn‐ enabled_ctrls Non-Boolean Control 10.1.1
75 abledMask
76 GroupsWrap XkbGroupsWrapMask groups_wrap Non-Boolean Control 10.7.1
77 IgnoreGroupLock XkbIgnoreGroupLockMask 10.7.3
78 IgnoreLockMods XkbIgnoreLock‐ ignore_lock Non-Boolean Control 5.1
79 ModsMask
80 InternalMods XkbInternalMods‐ internal Non-Boolean Control 5.1
81 Mask
82 MouseKeys XkbMouseKeysMask mk_dflt_btn XkbMouseKeysMask 10.5.1
83 MouseKeysAccel XkbMouseKeysAc‐ mk_delay XkbMouseKeysAccelMask 10.5.2
84 celMask
85 mk_interval
86 mk_time_to_max
87 mk_max_speed
88 mk_curve
89 Overlay1 XkbOverlay1Mask 10.4
90 Overlay2 XkbOverlay2Mask 10.4
91 PerKeyRepeat XkbPerKeyRepeat‐ per_key_repeat Non-Boolean Control 10.3.1
92 Mask
93 RepeatKeys XkbRepeatKeysMask repeat_delay XkbRepeatKeysMask 10.3
94 repeat_interval
95 SlowKeys XkbSlowKeysMask slow_keys_delay XkbSlowKeysMask 10.6.6
96 StickyKeys XkbStickyKeysMask ax_options: XkbStickyKeysMask 10.6.8
97 XkbAX_TwoKeysMask
98 XkbAX_LatchToLockMask
99
100 Table 2 shows the actual values for the individual mask bits used to select
101 controls for
102 modification and to enable and disable the control. Note that the same mask bit
103 is used to
104 specify general modifications to the parameters used to configure the control
105 (which), and to
106 enable and disable the control (enabled_ctrls). The anomalies in the table (no
107 "ok" in column)
108 are for controls that have no configurable attributes; and for controls that are
109 not boolean
110 controls and therefore cannot be enabled or disabled.
111
112
113 c s s s
114 l l l l
115 l l l l
116 l l l l.
117 Table 2 Controls Mask Bits
118 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
119 Mask Bit which or enabled Value
120 changed_ctrls _ctrls
121 ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
122 XkbRepeatKeysMask ok ok (1L<<0)
123 XkbSlowKeysMask ok ok (1L<<1)
124 XkbBounceKeysMask ok ok (1L<<2)
125 XkbStickyKeysMask ok ok (1L<<3)
126 XkbMouseKeysMask ok ok (1L<<4)
127 XkbMouseKeysAccelMask ok ok (1L<<5)
128 XkbAccessXKeysMask ok ok (1L<<6)
129 XkbAccessXTimeoutMask ok ok (1L<<7)
130 XkbAccessXFeedbackMask ok ok (1L<<8)
131 XkbAudibleBellMask ok (1L<<9)
132
133 XkbOverlay1Mask ok (1L<<10)
134 XkbOverlay2Mask ok (1L<<11)
135 XkbIgnoreGroupLockMask ok (1L<<12)
136 XkbGroupsWrapMask ok (1L<<27)
137 XkbInternalModsMask ok (1L<<28)
138 XkbIgnoreLockModsMask ok (1L<<29)
139 XkbPerKeyRepeatMask ok (1L<<30)
140 XkbControlsEnabledMask ok (1L<<31)
141 XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
142 XkbAccessXFeedbackMask)
143 XkbAllBooleanCtrlsMask ok (0x00001FFF)
144 XkbAllControlsMask ok (0xF8001FFF)
145
146
147
148
149 If you have an Xkb description with controls that have been modified
150 and an XkbControlsChangesRec that describes the changes that have been
151 made, the XkbChangeControls function provides a flexible method for
152 updating the controls in a server to match those in the changed key‐
153 board description.
154
155 XkbChangeControls copies any controls fields specified by changes from
156 the keyboard description controls structure, xkb->ctrls, to the server
157 specified by dpy.
158
160 The XkbControlsChangesRec structure is defined as follows:
161
162 typedef struct _XkbControlsChanges {
163 unsigned int changed_ctrls; /∗ bits indicating changed control data
164 */
165 unsigned int enabled_ctrls_changes; /∗ bits indicating enabled/disabled
166 controls */
167 Bool num_groups_changed; /∗ True if number of keyboard groups
168 changed */
169 } XkbControlsChangesRec,*XkbControlsChangesPtr;
170
171
172
173
174X Version 11 libX11 1.6.4 XkbChangeControls(3)