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 (which XkbControlsRec Boolean Control
56 parameter) DataFields enabled_ctrls bit Section
57 ──────────────────────────────────────────────────────────────────────────────────
58 AccessXFeedback XkbAccessX‐ ax_options: XkbAccessX‐ 10.6.3
59 FeedbackMask XkbAX_*FBMask FeedbackMask
60 AccessXKeys XkbAccessXKeys‐ 10.6.1
61 Mask
62
63
64
65
66
67 AccessXTimeout XkbAccessX‐ ax_timeout XkbAccessX‐ 10.6.2
68 TimeoutMask axt_opts_mask TimeoutMask
69 axt_opts_values
70 axt_ctrls_mask
71 axt_ctrls_val‐
72 ues
73 AudibleBell XkbAudibleBell‐ 9.2
74 Mask
75 AutoReset 10.1.2
76 BounceKeys XkbBounce‐ debounce_delay XkbBounceKeysMask 10.6.7
77 KeysMask
78 Detectable- 10.3.3
79 Autorepeat
80 EnabledControls XkbControls‐ enabled_ctrls Non-Boolean 10.1.1
81 EnabledMask Control
82 GroupsWrap XkbGroupsWrap‐ groups_wrap Non-Boolean 10.7.1
83 Mask Control
84 IgnoreGroupLock XkbIgnore‐ 10.7.3
85 GroupLockMask
86 IgnoreLockMods XkbIgnore‐ ignore_lock Non-Boolean 5.1
87 LockModsMask Control
88 InternalMods XkbInternal‐ internal Non-Boolean 5.1
89 ModsMask Control
90 MouseKeys Xkb‐ mk_dflt_btn XkbMouseKeysMask 10.5.1
91 MouseKeysMask
92 MouseKeysAccel XkbMouseKeys‐ mk_delay mk_in‐ XkbMouseKeys‐ 10.5.2
93 AccelMask terval AccelMask
94 mk_time_to_max
95 mk_max_speed
96 mk_curve
97 Overlay1 XkbOverlay1Mask 10.4
98 Overlay2 XkbOverlay2Mask 10.4
99 PerKeyRepeat XkbPerKey‐ per_key_repeat Non-Boolean 10.3.1
100 RepeatMask Control
101 RepeatKeys XkbRepeatKeys‐ repeat_delay XkbRepeatKeysMask 10.3
102 Mask
103 repeat_interval
104 SlowKeys XkbSlowKeysMask slow_keys_delay XkbSlowKeysMask 10.6.6
105 StickyKeys XkbStickyKeys‐ ax_options: XkbStickyKeysMask 10.6.8
106 Mask Xk‐
107 bAX_TwoKeysMask
108 XkbAX_Latch‐
109 ToLockMask
110
111 Table 2 shows the actual values for the individual mask bits used to
112 select controls for modification and to enable and disable the control.
113 Note that the same mask bit is used to specify general modifications to
114 the parameters used to configure the control (which), and to enable and
115 disable the control (enabled_ctrls). The anomalies in the table (no
116 "ok" in column) are for controls that have no configurable attributes;
117 and for controls that are not boolean controls and therefore cannot be
118 enabled or disabled.
119
120
121 Table 2 Controls Mask Bits
122 ──────────────────────────────────────────────────────────────────────
123 Mask Bit which or Value
124 changed enabled
125 _ctrls _ctrls
126 ──────────────────────────────────────────────────────────────────────
127 XkbRepeatKeysMask ok ok (1L<<0)
128 XkbSlowKeysMask ok ok (1L<<1)
129 XkbBounceKeysMask ok ok (1L<<2)
130 XkbStickyKeysMask ok ok (1L<<3)
131 XkbMouseKeysMask ok ok (1L<<4)
132
133 XkbMouseKeysAccelMask ok ok (1L<<5)
134 XkbAccessXKeysMask ok ok (1L<<6)
135 XkbAccessXTimeoutMask ok ok (1L<<7)
136 XkbAccessXFeedbackMask ok ok (1L<<8)
137 XkbAudibleBellMask ok (1L<<9)
138 XkbOverlay1Mask ok (1L<<10)
139 XkbOverlay2Mask ok (1L<<11)
140 XkbIgnoreGroupLockMask ok (1L<<12)
141 XkbGroupsWrapMask ok (1L<<27)
142 XkbInternalModsMask ok (1L<<28)
143 XkbIgnoreLockModsMask ok (1L<<29)
144 XkbPerKeyRepeatMask ok (1L<<30)
145 XkbControlsEnabledMask ok (1L<<31)
146 XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
147 XkbAccessXFeedbackMask)
148 XkbAllBooleanCtrlsMask ok (0x00001FFF)
149 XkbAllControlsMask ok (0xF8001FFF)
150
151
152
153
154 If you have an Xkb description with controls that have been modified
155 and an XkbControlsChangesRec that describes the changes that have been
156 made, the XkbChangeControls function provides a flexible method for up‐
157 dating the controls in a server to match those in the changed keyboard
158 description.
159
160 XkbChangeControls copies any controls fields specified by changes from
161 the keyboard description controls structure, xkb->ctrls, to the server
162 specified by dpy.
163
165 The XkbControlsChangesRec structure is defined as follows:
166
167 typedef struct _XkbControlsChanges {
168 unsigned int changed_ctrls; /∗ bits indicating changed control data
169 */
170 unsigned int enabled_ctrls_changes; /∗ bits indicating enabled/disabled
171 controls */
172 Bool num_groups_changed; /∗ True if number of keyboard groups
173 changed */
174 } XkbControlsChangesRec,*XkbControlsChangesPtr;
175
176
177
178
179X Version 11 libX11 1.7.0 XkbChangeControls(3)