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 XkbMouseKeys‐ 10.5.2
93 AccelMask mk_interval 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 XkbAX_TwoKeysMask
107 XkbAX_Latch‐
108 ToLockMask
109
110 Table 2 shows the actual values for the individual mask bits used to
111 select controls for modification and to enable and disable the control.
112 Note that the same mask bit is used to specify general modifications to
113 the parameters used to configure the control (which), and to enable and
114 disable the control (enabled_ctrls). The anomalies in the table (no
115 "ok" in column) are for controls that have no configurable attributes;
116 and for controls that are not boolean controls and therefore cannot be
117 enabled or disabled.
118
119
120 Table 2 Controls Mask Bits
121 ──────────────────────────────────────────────────────────────────────
122 Mask Bit which or Value
123 changed enabled
124 _ctrls _ctrls
125 ──────────────────────────────────────────────────────────────────────
126 XkbRepeatKeysMask ok ok (1L<<0)
127 XkbSlowKeysMask ok ok (1L<<1)
128 XkbBounceKeysMask ok ok (1L<<2)
129 XkbStickyKeysMask ok ok (1L<<3)
130 XkbMouseKeysMask ok ok (1L<<4)
131 XkbMouseKeysAccelMask ok ok (1L<<5)
132
133 XkbAccessXKeysMask ok ok (1L<<6)
134 XkbAccessXTimeoutMask ok ok (1L<<7)
135 XkbAccessXFeedbackMask ok ok (1L<<8)
136 XkbAudibleBellMask ok (1L<<9)
137 XkbOverlay1Mask ok (1L<<10)
138 XkbOverlay2Mask ok (1L<<11)
139 XkbIgnoreGroupLockMask ok (1L<<12)
140 XkbGroupsWrapMask ok (1L<<27)
141 XkbInternalModsMask ok (1L<<28)
142 XkbIgnoreLockModsMask ok (1L<<29)
143 XkbPerKeyRepeatMask ok (1L<<30)
144 XkbControlsEnabledMask ok (1L<<31)
145 XkbAccessXOptionsMask ok ok (XkbStickyKeysMask |
146 XkbAccessXFeedbackMask)
147 XkbAllBooleanCtrlsMask ok (0x00001FFF)
148 XkbAllControlsMask ok (0xF8001FFF)
149
150
151
152
153 If you have an Xkb description with controls that have been modified
154 and an XkbControlsChangesRec that describes the changes that have been
155 made, the XkbChangeControls function provides a flexible method for
156 updating the controls in a server to match those in the changed key‐
157 board description.
158
159 XkbChangeControls copies any controls fields specified by changes from
160 the keyboard description controls structure, xkb->ctrls, to the server
161 specified by dpy.
162
164 The XkbControlsChangesRec structure is defined as follows:
165
166 typedef struct _XkbControlsChanges {
167 unsigned int changed_ctrls; /∗ bits indicating changed control data
168 */
169 unsigned int enabled_ctrls_changes; /∗ bits indicating enabled/disabled
170 controls */
171 Bool num_groups_changed; /∗ True if number of keyboard groups
172 changed */
173 } XkbControlsChangesRec,*XkbControlsChangesPtr;
174
175
176
177
178X Version 11 libX11 1.6.7 XkbChangeControls(3)