glossary.xml revision e9fcaa8a
1e9fcaa8aSmrg<glossary id='glossary'>
2e9fcaa8aSmrg<title>Glossary</title>
3e9fcaa8aSmrg<glossentry>
4e9fcaa8aSmrg  <glossterm>Allocator</glossterm>
5e9fcaa8aSmrg  <glossdef>
6e9fcaa8aSmrg    <para>
7e9fcaa8aSmrgXkb provides functions, known as allocators, to create and initialize Xkb data
8e9fcaa8aSmrgstructures.
9e9fcaa8aSmrg    </para>
10e9fcaa8aSmrg  </glossdef>
11e9fcaa8aSmrg</glossentry>
12e9fcaa8aSmrg<glossentry>
13e9fcaa8aSmrg  <glossterm>Audible Bell</glossterm>
14e9fcaa8aSmrg  <glossdef>
15e9fcaa8aSmrg    <para>
16e9fcaa8aSmrgAn audible bell is the sound generated by whatever bell is associated with the
17e9fcaa8aSmrgkeyboard or input extension device, as opposed to any other audible sound
18e9fcaa8aSmrggenerated elsewhere in the system.
19e9fcaa8aSmrg    </para>
20e9fcaa8aSmrg  </glossdef>
21e9fcaa8aSmrg</glossentry>
22e9fcaa8aSmrg<glossentry>
23e9fcaa8aSmrg  <glossterm>Autoreset Controls</glossterm>
24e9fcaa8aSmrg  <glossdef>
25e9fcaa8aSmrg    <para>
26e9fcaa8aSmrgThe autoreset controls configure the boolean controls to automatically be
27e9fcaa8aSmrgenabled or disabled at the time a program exits.
28e9fcaa8aSmrg    </para>
29e9fcaa8aSmrg  </glossdef>
30e9fcaa8aSmrg</glossentry>
31e9fcaa8aSmrg<glossentry>
32e9fcaa8aSmrg  <glossterm>Base Group</glossterm>
33e9fcaa8aSmrg  <glossdef>
34e9fcaa8aSmrg    <para>
35e9fcaa8aSmrgThe group in effect as a result of all actions other than a previous lock or
36e9fcaa8aSmrglatch request; the base group is transient. For example, the user pressing and
37e9fcaa8aSmrgholding a group shift key that shifts to Group2 would result in the base group
38e9fcaa8aSmrgbeing group 2 at that point in time. Initially, base group is always Group1.
39e9fcaa8aSmrg    </para>
40e9fcaa8aSmrg  </glossdef>
41e9fcaa8aSmrg</glossentry>
42e9fcaa8aSmrg<glossentry>
43e9fcaa8aSmrg  <glossterm>Base Modifiers</glossterm>
44e9fcaa8aSmrg  <glossdef>
45e9fcaa8aSmrg    <para>
46e9fcaa8aSmrgModifiers that are turned on as a result of some actions other than previous
47e9fcaa8aSmrglock or latch requests; base modifiers are transient. For example, the user
48e9fcaa8aSmrgpressing and holding a key bound to the Shift modifier would result in Shift
49e9fcaa8aSmrgbeing a base modifier at that point in time.
50e9fcaa8aSmrg    </para>
51e9fcaa8aSmrg  </glossdef>
52e9fcaa8aSmrg</glossentry>
53e9fcaa8aSmrg<glossentry>
54e9fcaa8aSmrg  <glossterm>Base Event Code</glossterm>
55e9fcaa8aSmrg  <glossdef>
56e9fcaa8aSmrg    <para>
57e9fcaa8aSmrgA number assigned by the X server at run time that is assigned to the extension
58e9fcaa8aSmrgto identify events from that extension.
59e9fcaa8aSmrg    </para>
60e9fcaa8aSmrg  </glossdef>
61e9fcaa8aSmrg</glossentry>
62e9fcaa8aSmrg<glossentry>
63e9fcaa8aSmrg  <glossterm>Base State</glossterm>
64e9fcaa8aSmrg  <glossdef>
65e9fcaa8aSmrg    <para>
66e9fcaa8aSmrgThe base group and base modifiers represent keys that are physically or
67e9fcaa8aSmrglogically down; these constitute the base state.
68e9fcaa8aSmrg    </para>
69e9fcaa8aSmrg  </glossdef>
70e9fcaa8aSmrg</glossentry>
71e9fcaa8aSmrg<glossentry>
72e9fcaa8aSmrg  <glossterm>Boolean Controls</glossterm>
73e9fcaa8aSmrg  <glossdef>
74e9fcaa8aSmrg    <para>
75e9fcaa8aSmrgGlobal keyboard controls that may be selectively enabled and disabled under
76e9fcaa8aSmrgprogram control and that may be automatically set to an on or off condition
77e9fcaa8aSmrgupon client program exit.
78e9fcaa8aSmrg    </para>
79e9fcaa8aSmrg  </glossdef>
80e9fcaa8aSmrg</glossentry>
81e9fcaa8aSmrg<glossentry>
82e9fcaa8aSmrg  <glossterm>Canonical Key Types</glossterm>
83e9fcaa8aSmrg  <glossdef>
84e9fcaa8aSmrg    <para>
85e9fcaa8aSmrgThe canonical key types are predefined key types that describe the types of
86e9fcaa8aSmrgkeys available on most keyboards. The definitions for the canonical key types
87e9fcaa8aSmrgare held in the first <emphasis>
88e9fcaa8aSmrgXkbNumRequiredTypes</emphasis>
89e9fcaa8aSmrg entries of the <emphasis>
90e9fcaa8aSmrgtypes</emphasis>
91e9fcaa8aSmrg field of the client map and are indexed using the following constants:
92e9fcaa8aSmrg    </para>
93e9fcaa8aSmrg    <itemizedlist>
94e9fcaa8aSmrg      <listitem>
95e9fcaa8aSmrg        <para>
96e9fcaa8aSmrg<emphasis>XkbOneLevelIndex</emphasis>
97e9fcaa8aSmrg        </para>
98e9fcaa8aSmrg      </listitem>
99e9fcaa8aSmrg      <listitem>
100e9fcaa8aSmrg        <para>
101e9fcaa8aSmrg<emphasis>XkbTwoLevelIndex</emphasis>
102e9fcaa8aSmrg        </para>
103e9fcaa8aSmrg      </listitem>
104e9fcaa8aSmrg      <listitem>
105e9fcaa8aSmrg        <para>
106e9fcaa8aSmrg<emphasis>XkbAlphabeticIndex</emphasis>
107e9fcaa8aSmrg        </para>
108e9fcaa8aSmrg      </listitem>
109e9fcaa8aSmrg      <listitem>
110e9fcaa8aSmrg        <para>
111e9fcaa8aSmrg<emphasis>XkbKeypadIndex</emphasis>
112e9fcaa8aSmrg        </para>
113e9fcaa8aSmrg      </listitem>
114e9fcaa8aSmrg  </itemizedlist>
115e9fcaa8aSmrg  </glossdef>
116e9fcaa8aSmrg</glossentry>
117e9fcaa8aSmrg
118e9fcaa8aSmrg<glossentry>
119e9fcaa8aSmrg  <glossterm>Client Map</glossterm>
120e9fcaa8aSmrg  <glossdef>
121e9fcaa8aSmrg    <para>
122e9fcaa8aSmrgThe key mapping information needed to convert arbitrary keycodes to symbols.
123e9fcaa8aSmrg    </para>
124e9fcaa8aSmrg  </glossdef>
125e9fcaa8aSmrg</glossentry>
126e9fcaa8aSmrg<glossentry>
127e9fcaa8aSmrg  <glossterm>Compat Name</glossterm>
128e9fcaa8aSmrg  <glossdef>
129e9fcaa8aSmrg    <para>
130e9fcaa8aSmrgThe <emphasis>
131e9fcaa8aSmrgcompat</emphasis>
132e9fcaa8aSmrg name is a string that provides some information about the rules used to bind
133e9fcaa8aSmrgactions to keys that are changed using core protocol requests.
134e9fcaa8aSmrg    </para>
135e9fcaa8aSmrg  </glossdef>
136e9fcaa8aSmrg</glossentry>
137e9fcaa8aSmrg<glossentry>
138e9fcaa8aSmrg  <glossterm>Compatibility State</glossterm>
139e9fcaa8aSmrg  <glossdef>
140e9fcaa8aSmrg    <para>
141e9fcaa8aSmrgWhen an Xkb-extended X server connects to an Xkb-unaware client, the
142e9fcaa8aSmrgcompatibility state remaps the keyboard group into a core modifier whenever
143e9fcaa8aSmrgpossible.
144e9fcaa8aSmrg    </para>
145e9fcaa8aSmrg  </glossdef>
146e9fcaa8aSmrg</glossentry>
147e9fcaa8aSmrg<glossentry>
148e9fcaa8aSmrg  <glossterm>Compatibility Grab State</glossterm>
149e9fcaa8aSmrg  <glossdef>
150e9fcaa8aSmrg    <para>
151e9fcaa8aSmrgThe grab state that results from applying the compatibility map to the Xkb grab
152e9fcaa8aSmrgstate.
153e9fcaa8aSmrg    </para>
154e9fcaa8aSmrg  </glossdef>
155e9fcaa8aSmrg</glossentry>
156e9fcaa8aSmrg<glossentry>
157e9fcaa8aSmrg  <glossterm>Compatibility Map</glossterm>
158e9fcaa8aSmrg  <glossdef>
159e9fcaa8aSmrg    <para>
160e9fcaa8aSmrgThe definition of how to map core protocol keyboard state to Xkb keyboard state.
161e9fcaa8aSmrg    </para>
162e9fcaa8aSmrg  </glossdef>
163e9fcaa8aSmrg</glossentry>
164e9fcaa8aSmrg<glossentry>
165e9fcaa8aSmrg  <glossterm>Component Expression</glossterm>
166e9fcaa8aSmrg  <glossdef>
167e9fcaa8aSmrg    <para>
168e9fcaa8aSmrgAn expression used to describe server keyboard database components to be
169e9fcaa8aSmrgloaded. It describes the order in which the components should be loaded and the
170e9fcaa8aSmrgrules by which duplicate attributes should be resolved.
171e9fcaa8aSmrg    </para>
172e9fcaa8aSmrg  </glossdef>
173e9fcaa8aSmrg</glossentry>
174e9fcaa8aSmrg<glossentry>
175e9fcaa8aSmrg  <glossterm>Compose Processing</glossterm>
176e9fcaa8aSmrg  <glossdef>
177e9fcaa8aSmrg    <para>
178e9fcaa8aSmrgThe process of mapping a series of keysyms to a string is known as compose
179e9fcaa8aSmrgprocessing.
180e9fcaa8aSmrg    </para>
181e9fcaa8aSmrg  </glossdef>
182e9fcaa8aSmrg</glossentry>
183e9fcaa8aSmrg<glossentry>
184e9fcaa8aSmrg  <glossterm>Consumed Modifier</glossterm>
185e9fcaa8aSmrg  <glossdef>
186e9fcaa8aSmrg    <para>
187e9fcaa8aSmrgXkb normally consumes modifiers in determining the appropriate symbol for an
188e9fcaa8aSmrgevent, that is, the modifiers are not considered during any of the later stages
189e9fcaa8aSmrgof event processing. For those rare occasions when a modifier <emphasis>
190e9fcaa8aSmrgshould</emphasis>
191e9fcaa8aSmrg be considered despite having been used to look up a symbol, key types include
192e9fcaa8aSmrgan optional <emphasis>
193e9fcaa8aSmrgpreserve</emphasis>
194e9fcaa8aSmrg field.
195e9fcaa8aSmrg    </para>
196e9fcaa8aSmrg  </glossdef>
197e9fcaa8aSmrg</glossentry>
198e9fcaa8aSmrg<glossentry>
199e9fcaa8aSmrg  <glossterm>Core Event</glossterm>
200e9fcaa8aSmrg  <glossdef>
201e9fcaa8aSmrg    <para>
202e9fcaa8aSmrgAn event created from the core X server.
203e9fcaa8aSmrg    </para>
204e9fcaa8aSmrg  </glossdef>
205e9fcaa8aSmrg</glossentry>
206e9fcaa8aSmrg<glossentry>
207e9fcaa8aSmrg  <glossterm>Detectable Auto-Repeat</glossterm>
208e9fcaa8aSmrg  <glossdef>
209e9fcaa8aSmrg    <para>
210e9fcaa8aSmrgDetectable auto-repeat allows a client to detect an auto-repeating key. If a
211e9fcaa8aSmrgclient requests and the server supports detectable auto-repeat, Xkb generates
212e9fcaa8aSmrg<emphasis>
213e9fcaa8aSmrgKeyRelease</emphasis>
214e9fcaa8aSmrg events only when the key is physically released. Thus the client receives a
215e9fcaa8aSmrgnumber of <emphasis>
216e9fcaa8aSmrgKeyPress</emphasis>
217e9fcaa8aSmrg events for that key without intervening <emphasis>
218e9fcaa8aSmrgKeyRelease</emphasis>
219e9fcaa8aSmrg events until the key is finally released, when a <emphasis>
220e9fcaa8aSmrgKeyRelease</emphasis>
221e9fcaa8aSmrg event is received.
222e9fcaa8aSmrg    </para>
223e9fcaa8aSmrg  </glossdef>
224e9fcaa8aSmrg</glossentry>
225e9fcaa8aSmrg<glossentry>
226e9fcaa8aSmrg  <glossterm>Effective Group</glossterm>
227e9fcaa8aSmrg  <glossdef>
228e9fcaa8aSmrg    <para>
229e9fcaa8aSmrgThe effective group is the arithmetic sum of the locked, latched, and base
230e9fcaa8aSmrggroups. The effective keyboard group is always brought back into range
231e9fcaa8aSmrgdepending on the value of the <emphasis>
232e9fcaa8aSmrgGroupsWrap</emphasis>
233e9fcaa8aSmrg control for the keyboard. If an event occurs with an effective group that is
234e9fcaa8aSmrglegal for the keyboard as a whole, but not for the key in question, the group
235e9fcaa8aSmrg<emphasis>
236e9fcaa8aSmrgfor that event only</emphasis>
237e9fcaa8aSmrg is normalized using the algorithm specified by the <emphasis>
238e9fcaa8aSmrggroup_info</emphasis>
239e9fcaa8aSmrg member of the key symbol map (<emphasis>
240e9fcaa8aSmrgXkbSymMapRec</emphasis>
241e9fcaa8aSmrg).
242e9fcaa8aSmrg    </para>
243e9fcaa8aSmrg  </glossdef>
244e9fcaa8aSmrg</glossentry>
245e9fcaa8aSmrg<glossentry>
246e9fcaa8aSmrg  <glossterm>Effective Mask</glossterm>
247e9fcaa8aSmrg  <glossdef>
248e9fcaa8aSmrg    <para>
249e9fcaa8aSmrgAn Xkb modifier definition consists of a set of bit masks corresponding to the
250e9fcaa8aSmrgeight real modifiers; a similar set of bitmasks corresponding to the 16 named
251e9fcaa8aSmrgvirtual modifiers; and an effective mask. The effective mask represents the set
252e9fcaa8aSmrgof all real modifiers that can logically be set either by setting any of the
253e9fcaa8aSmrgreal modifiers or by setting any of the virtual modifiers in the definition.
254e9fcaa8aSmrg    </para>
255e9fcaa8aSmrg  </glossdef>
256e9fcaa8aSmrg</glossentry>
257e9fcaa8aSmrg<glossentry>
258e9fcaa8aSmrg  <glossterm>Effective Modifier</glossterm>
259e9fcaa8aSmrg  <glossdef>
260e9fcaa8aSmrg    <para>
261e9fcaa8aSmrgThe effective modifiers are the bitwise union of the base, latched and locked
262e9fcaa8aSmrgmodifiers.
263e9fcaa8aSmrg    </para>
264e9fcaa8aSmrg  </glossdef>
265e9fcaa8aSmrg</glossentry>
266e9fcaa8aSmrg<glossentry>
267e9fcaa8aSmrg  <glossterm>Extension Device</glossterm>
268e9fcaa8aSmrg  <glossdef>
269e9fcaa8aSmrg    <para>
270e9fcaa8aSmrgAny keyboard or other input device recognized by the X input extension.
271e9fcaa8aSmrg    </para>
272e9fcaa8aSmrg  </glossdef>
273e9fcaa8aSmrg</glossentry>
274e9fcaa8aSmrg<glossentry>
275e9fcaa8aSmrg  <glossterm>Global Keyboard Controls</glossterm>
276e9fcaa8aSmrg  <glossdef>
277e9fcaa8aSmrg    <para>
278e9fcaa8aSmrgControls that affect the way Xkb generates key events. The controls affect all
279e9fcaa8aSmrgkeys, as opposed to per-key controls that are for a single key. Global controls
280e9fcaa8aSmrginclude
281e9fcaa8aSmrg    </para>
282e9fcaa8aSmrg    <itemizedlist>
283e9fcaa8aSmrg    <listitem>
284e9fcaa8aSmrg      <para>RepeatKeys Control</para>
285e9fcaa8aSmrg    </listitem>
286e9fcaa8aSmrg    <listitem>
287e9fcaa8aSmrg      <para>DetectableAuto-repeat</para>
288e9fcaa8aSmrg    </listitem>
289e9fcaa8aSmrg    <listitem>
290e9fcaa8aSmrg      <para>SlowKeys</para>
291e9fcaa8aSmrg    </listitem>
292e9fcaa8aSmrg    <listitem>
293e9fcaa8aSmrg      <para>BounceKeys</para>
294e9fcaa8aSmrg    </listitem>
295e9fcaa8aSmrg    <listitem>
296e9fcaa8aSmrg      <para>StickyKeys</para>
297e9fcaa8aSmrg    </listitem>
298e9fcaa8aSmrg    <listitem>
299e9fcaa8aSmrg      <para>MouseKeys</para>
300e9fcaa8aSmrg    </listitem>
301e9fcaa8aSmrg    <listitem>
302e9fcaa8aSmrg      <para>MouseKeysAccel</para>
303e9fcaa8aSmrg    </listitem>
304e9fcaa8aSmrg    <listitem>
305e9fcaa8aSmrg      <para>AccessXKeys</para>
306e9fcaa8aSmrg    </listitem>
307e9fcaa8aSmrg    <listitem>
308e9fcaa8aSmrg      <para>AccessXTimeout</para>
309e9fcaa8aSmrg    </listitem>
310e9fcaa8aSmrg    <listitem>
311e9fcaa8aSmrg      <para>AccessXFeedback</para>
312e9fcaa8aSmrg    </listitem>
313e9fcaa8aSmrg    <listitem>
314e9fcaa8aSmrg      <para>Overlay1</para>
315e9fcaa8aSmrg    </listitem>
316e9fcaa8aSmrg    <listitem>
317e9fcaa8aSmrg      <para>Overlay2</para>
318e9fcaa8aSmrg    </listitem>
319e9fcaa8aSmrg    <listitem>
320e9fcaa8aSmrg      <para>EnabledControls</para>
321e9fcaa8aSmrg    </listitem>
322e9fcaa8aSmrg    </itemizedlist>
323e9fcaa8aSmrg  </glossdef>
324e9fcaa8aSmrg</glossentry>
325e9fcaa8aSmrg<glossentry>
326e9fcaa8aSmrg  <glossterm>Grab State</glossterm>
327e9fcaa8aSmrg  <glossdef>
328e9fcaa8aSmrg    <para>
329e9fcaa8aSmrgThe grab state is the state used when matching events to passive grabs. It
330e9fcaa8aSmrgconsists of the grab group and the grab modifiers.
331e9fcaa8aSmrg    </para>
332e9fcaa8aSmrg  </glossdef>
333e9fcaa8aSmrg</glossentry>
334e9fcaa8aSmrg<glossentry>
335e9fcaa8aSmrg  <glossterm>Group</glossterm>
336e9fcaa8aSmrg  <glossdef>
337e9fcaa8aSmrg    <para>See Keysym Group</para>
338e9fcaa8aSmrg  </glossdef>
339e9fcaa8aSmrg</glossentry>
340e9fcaa8aSmrg<glossentry>
341e9fcaa8aSmrg  <glossterm>Group Index</glossterm>
342e9fcaa8aSmrg  <glossdef>
343e9fcaa8aSmrg    <para>
344e9fcaa8aSmrgA number used as the internal representation for a group number. Group1 through
345e9fcaa8aSmrgGroup 4 have indices of 0 through 3.
346e9fcaa8aSmrg    </para>
347e9fcaa8aSmrg  </glossdef>
348e9fcaa8aSmrg</glossentry>
349e9fcaa8aSmrg<glossentry>
350e9fcaa8aSmrg  <glossterm>Groups Wrap Control</glossterm>
351e9fcaa8aSmrg  <glossdef>
352e9fcaa8aSmrg    <para>
353e9fcaa8aSmrgIf a group index exceeds the maximum number of groups permitted for the
354e9fcaa8aSmrgspecified keyboard, it is wrapped or truncated back into range as specified by
355e9fcaa8aSmrgthe global <emphasis>GroupsWrap</emphasis> control. <emphasis>
356e9fcaa8aSmrgGroupsWrap</emphasis> can have the following values:
357e9fcaa8aSmrg    </para>
358e9fcaa8aSmrg    <literallayout>
359e9fcaa8aSmrg          <emphasis>WrapIntoRange</emphasis>
360e9fcaa8aSmrg          <emphasis>ClampIntoRange</emphasis>
361e9fcaa8aSmrg          <emphasis>RedirectIntoRange</emphasis>
362e9fcaa8aSmrg    </literallayout>
363e9fcaa8aSmrg  </glossdef>
364e9fcaa8aSmrg</glossentry>
365e9fcaa8aSmrg
366e9fcaa8aSmrg<glossentry>
367e9fcaa8aSmrg  <glossterm>Key Type</glossterm>
368e9fcaa8aSmrg  <glossdef>
369e9fcaa8aSmrg    <para>
370e9fcaa8aSmrgAn attribute of a key that identifies which modifiers affect the shift level of
371e9fcaa8aSmrga key and the number of groups on the key.
372e9fcaa8aSmrg    </para>
373e9fcaa8aSmrg  </glossdef>
374e9fcaa8aSmrg</glossentry>
375e9fcaa8aSmrg<glossentry>
376e9fcaa8aSmrg  <glossterm>Key Width</glossterm>
377e9fcaa8aSmrg  <glossdef>
378e9fcaa8aSmrg    <para>
379e9fcaa8aSmrgThe maximum number of shift levels in any group for the key type associated
380e9fcaa8aSmrgwith a key.
381e9fcaa8aSmrg    </para>
382e9fcaa8aSmrg  </glossdef>
383e9fcaa8aSmrg</glossentry>
384e9fcaa8aSmrg<glossentry>
385e9fcaa8aSmrg  <glossterm>Keysym Group</glossterm>
386e9fcaa8aSmrg  <glossdef>
387e9fcaa8aSmrg    <para>
388e9fcaa8aSmrgA keysym group is a logical state of the keyboard providing access to a
389e9fcaa8aSmrgcollection of characters. A group usually contains a set of characters that
390e9fcaa8aSmrglogically belong together and that may be arranged on several shift levels
391e9fcaa8aSmrgwithin that group. For example, Group1 could be the English alphabet, and
392e9fcaa8aSmrgGroup2 could be Greek. Xkb supports up to four different groups for an input
393e9fcaa8aSmrgdevice or keyboard. Groups are in the range 1-4 (Group1 - Group4), and are
394e9fcaa8aSmrgoften referred to as G1 - G4 and indexed as 0 - 3.
395e9fcaa8aSmrg    </para>
396e9fcaa8aSmrg  </glossdef>
397e9fcaa8aSmrg</glossentry>
398e9fcaa8aSmrg<glossentry>
399e9fcaa8aSmrg  <glossterm>Indicator</glossterm>
400e9fcaa8aSmrg  <glossdef>
401e9fcaa8aSmrg    <para>
402e9fcaa8aSmrgAn indicator is a feedback mechanism such as an LED on an input device. Using
403e9fcaa8aSmrgXkb, a client application can determine the names of the various indicators,
404e9fcaa8aSmrgdetermine and control the way that the individual indicators should be updated
405e9fcaa8aSmrgto reflect keyboard changes, and determine which of the 32 keyboard indicators
406e9fcaa8aSmrgreported by the protocol are actually present on the keyboard.
407e9fcaa8aSmrg    </para>
408e9fcaa8aSmrg  </glossdef>
409e9fcaa8aSmrg</glossentry>
410e9fcaa8aSmrg<glossentry>
411e9fcaa8aSmrg  <glossterm>Indicator Feedback</glossterm>
412e9fcaa8aSmrg  <glossdef>
413e9fcaa8aSmrg    <para>
414e9fcaa8aSmrgAn indicator feedback describes the state of a bank of up to 32 lights. It has
415e9fcaa8aSmrga mask where each bit corresponds to a light and an associated value mask that
416e9fcaa8aSmrgspecifies which lights are on or off.
417e9fcaa8aSmrg    </para>
418e9fcaa8aSmrg  </glossdef>
419e9fcaa8aSmrg</glossentry>
420e9fcaa8aSmrg<glossentry>
421e9fcaa8aSmrg  <glossterm>Indicator Map</glossterm>
422e9fcaa8aSmrg  <glossdef>
423e9fcaa8aSmrg    <para>
424e9fcaa8aSmrgAn indicator has its own set of attributes that specify whether clients can
425e9fcaa8aSmrgexplicitly set its state and whether it tracks the keyboard state. The
426e9fcaa8aSmrgindicator map is the collection of these attributes for each indicator and is
427e9fcaa8aSmrgheld in the <emphasis>
428e9fcaa8aSmrgmaps</emphasis>
429e9fcaa8aSmrg array, which is an array of <emphasis>
430e9fcaa8aSmrgXkbIndicatorRec</emphasis>
431e9fcaa8aSmrg structures.
432e9fcaa8aSmrg    </para>
433e9fcaa8aSmrg  </glossdef>
434e9fcaa8aSmrg</glossentry>
435e9fcaa8aSmrg<glossentry>
436e9fcaa8aSmrg  <glossterm>Input Extension</glossterm>
437e9fcaa8aSmrg  <glossdef>
438e9fcaa8aSmrg    <para>
439e9fcaa8aSmrgAn extension to the core X protocol that allows an X server to support multiple
440e9fcaa8aSmrgkeyboards, as well as other input devices, in addition to the core X keyboard
441e9fcaa8aSmrgand pointer. Other types of devices supported by the input extension include,
442e9fcaa8aSmrgbut are not limited to: mice, tablets, touchscreens, barcode readers, button
443e9fcaa8aSmrgboxes, trackballs, identifier devices, data gloves, and eye trackers.
444e9fcaa8aSmrg    </para>
445e9fcaa8aSmrg  </glossdef>
446e9fcaa8aSmrg</glossentry>
447e9fcaa8aSmrg<glossentry>
448e9fcaa8aSmrg  <glossterm>Key Action</glossterm>
449e9fcaa8aSmrg  <glossdef>
450e9fcaa8aSmrg    <para>
451e9fcaa8aSmrgA key action consists of an operator and some optional data. Once the server
452e9fcaa8aSmrghas applied the global controls and per-key behavior and has decided to process
453e9fcaa8aSmrga key event, it applies key actions to determine the effects of the key on the
454e9fcaa8aSmrginternal state of the server. Xkb supports actions that do the following:
455e9fcaa8aSmrg    </para>
456e9fcaa8aSmrg    <itemizedlist>
457e9fcaa8aSmrg    <listitem>
458e9fcaa8aSmrg      <para>
459e9fcaa8aSmrgChange base, latched, or locked modifiers or group
460e9fcaa8aSmrg      </para>
461e9fcaa8aSmrg    </listitem>
462e9fcaa8aSmrg    <listitem>
463e9fcaa8aSmrg      <para>
464e9fcaa8aSmrgMove the core pointer or simulate core pointer button events
465e9fcaa8aSmrg      </para>
466e9fcaa8aSmrg    </listitem>
467e9fcaa8aSmrg    <listitem>
468e9fcaa8aSmrg      <para>
469e9fcaa8aSmrgChange most aspects of keyboard behavior
470e9fcaa8aSmrg      </para>
471e9fcaa8aSmrg    </listitem>
472e9fcaa8aSmrg    <listitem>
473e9fcaa8aSmrg      <para>
474e9fcaa8aSmrgTerminate or suspend the server
475e9fcaa8aSmrg      </para>
476e9fcaa8aSmrg    </listitem>
477e9fcaa8aSmrg    <listitem>
478e9fcaa8aSmrg      <para>
479e9fcaa8aSmrgSend a message to interested clients
480e9fcaa8aSmrg      </para>
481e9fcaa8aSmrg    </listitem>
482e9fcaa8aSmrg    <listitem>
483e9fcaa8aSmrg      <para>
484e9fcaa8aSmrgSimulate events on other keys
485e9fcaa8aSmrg      </para>
486e9fcaa8aSmrg    </listitem>
487e9fcaa8aSmrg    </itemizedlist>
488e9fcaa8aSmrg  </glossdef>
489e9fcaa8aSmrg</glossentry>
490e9fcaa8aSmrg
491e9fcaa8aSmrg<glossentry>
492e9fcaa8aSmrg  <glossterm>Key Alias</glossterm>
493e9fcaa8aSmrg  <glossdef>
494e9fcaa8aSmrg    <para>
495e9fcaa8aSmrgA key alias is a symbolic name for a specific physical key. Key aliases allow
496e9fcaa8aSmrgthe keyboard layout designer to assign multiple key names to a single key. This
497e9fcaa8aSmrgallows the keyboard layout designer to refer to keys using either their
498e9fcaa8aSmrgposition or their "function." Key aliases can be specified both in the symbolic
499e9fcaa8aSmrgnames component and in the keyboard geometry. Both sets of aliases are always
500e9fcaa8aSmrgvalid, but key alias definitions in the keyboard geometry have priority; if
501e9fcaa8aSmrgboth symbolic names and geometry include aliases, you should consider the
502e9fcaa8aSmrgdefinitions from the geometry before considering the definitions from the
503e9fcaa8aSmrgsymbolic names section.
504e9fcaa8aSmrg    </para>
505e9fcaa8aSmrg  </glossdef>
506e9fcaa8aSmrg</glossentry>
507e9fcaa8aSmrg<glossentry>
508e9fcaa8aSmrg  <glossterm>Key Behavior</glossterm>
509e9fcaa8aSmrg  <glossdef>
510e9fcaa8aSmrg    <para>
511e9fcaa8aSmrgThe <emphasis>
512e9fcaa8aSmrgbehaviors</emphasis>
513e9fcaa8aSmrg field of the server map is an array of <emphasis>
514e9fcaa8aSmrgXkbBehavior</emphasis>
515e9fcaa8aSmrg, indexed by keycode, and contains the behavior for each key. The X server uses
516e9fcaa8aSmrgkey behavior to determine whether to process or filter out any given key event;
517e9fcaa8aSmrgkey behavior is independent of keyboard modifier or group state. Each key has
518e9fcaa8aSmrgexactly one behavior.
519e9fcaa8aSmrg    </para>
520e9fcaa8aSmrg    <para>Key behaviors include:</para>
521e9fcaa8aSmrg    <itemizedlist>
522e9fcaa8aSmrg    <listitem>
523e9fcaa8aSmrg      <para>XkbKB_Default</para>
524e9fcaa8aSmrg    </listitem>
525e9fcaa8aSmrg    <listitem>
526e9fcaa8aSmrg      <para>XkbKB_Lock</para>
527e9fcaa8aSmrg    </listitem>
528e9fcaa8aSmrg    <listitem>
529e9fcaa8aSmrg      <para>XkbKB_RadioGroup</para>
530e9fcaa8aSmrg    </listitem>
531e9fcaa8aSmrg    <listitem>
532e9fcaa8aSmrg      <para>XkbKB_Overlay1</para>
533e9fcaa8aSmrg    </listitem>
534e9fcaa8aSmrg    <listitem>
535e9fcaa8aSmrg      <para>XkbKB_Overlay2</para>
536e9fcaa8aSmrg    </listitem>
537e9fcaa8aSmrg    </itemizedlist>
538e9fcaa8aSmrg  </glossdef>
539e9fcaa8aSmrg</glossentry>
540e9fcaa8aSmrg<glossentry>
541e9fcaa8aSmrg  <glossterm>Key Symbol Map</glossterm>
542e9fcaa8aSmrg  <glossdef>
543e9fcaa8aSmrg    <para>
544e9fcaa8aSmrgA key symbol map describes the symbols bound to a key and the rules to be used
545e9fcaa8aSmrgto interpret those symbols. It is an array of <emphasis>
546e9fcaa8aSmrgXkbSymMapRec</emphasis>
547e9fcaa8aSmrg structures indexed by keycode.
548e9fcaa8aSmrg    </para>
549e9fcaa8aSmrg  </glossdef>
550e9fcaa8aSmrg</glossentry>
551e9fcaa8aSmrg<glossentry>
552e9fcaa8aSmrg  <glossterm>Key Type</glossterm>
553e9fcaa8aSmrg  <glossdef>
554e9fcaa8aSmrg    <para>
555e9fcaa8aSmrgKey types are used to determine the shift level of a key given the current
556e9fcaa8aSmrgstate of the keyboard. There is one key type for each group for a key. Key
557e9fcaa8aSmrgtypes are defined using the <emphasis>
558e9fcaa8aSmrgXkbKeyTypeRec</emphasis>
559e9fcaa8aSmrg and <emphasis>
560e9fcaa8aSmrgXkbKTMapEntryRec</emphasis>
561e9fcaa8aSmrg structures. Xkb allows up to <emphasis>
562e9fcaa8aSmrgXkbMaxKeyTypes</emphasis>
563e9fcaa8aSmrg (255) key types to be defined, but requires at least <emphasis>
564e9fcaa8aSmrgXkbNumRequiredTypes</emphasis>
565e9fcaa8aSmrg (4) predefined types to be in a key map.
566e9fcaa8aSmrg    </para>
567e9fcaa8aSmrg  </glossdef>
568e9fcaa8aSmrg</glossentry>
569e9fcaa8aSmrg<glossentry>
570e9fcaa8aSmrg  <glossterm>Keyboard Bells</glossterm>
571e9fcaa8aSmrg  <glossdef>
572e9fcaa8aSmrg    <para>
573e9fcaa8aSmrgThe sound the default bell makes when rung is the system bell or the default
574e9fcaa8aSmrgkeyboard bell. Some input devices may have more than one bell, identified by
575e9fcaa8aSmrg<emphasis>bell_class</emphasis> and <emphasis>bell_id</emphasis>.
576e9fcaa8aSmrg    </para>
577e9fcaa8aSmrg  </glossdef>
578e9fcaa8aSmrg</glossentry>
579e9fcaa8aSmrg<glossentry>
580e9fcaa8aSmrg  <glossterm>Keyboard Components</glossterm>
581e9fcaa8aSmrg  <glossdef>
582e9fcaa8aSmrg    <para>
583e9fcaa8aSmrgThere are five types of components stored in the X server database of keyboard
584e9fcaa8aSmrgcomponents. They correspond to the <emphasis>
585e9fcaa8aSmrgsymbols, geometry, keycodes, compat, </emphasis>
586e9fcaa8aSmrgand<emphasis>
587e9fcaa8aSmrg types</emphasis>
588e9fcaa8aSmrg symbolic names associated with a keyboard.
589e9fcaa8aSmrg    </para>
590e9fcaa8aSmrg  </glossdef>
591e9fcaa8aSmrg</glossentry>
592e9fcaa8aSmrg<glossentry>
593e9fcaa8aSmrg  <glossterm>Keyboard Feedback</glossterm>
594e9fcaa8aSmrg  <glossdef>
595e9fcaa8aSmrg    <para>
596e9fcaa8aSmrgA keyboard feedback includes the following:
597e9fcaa8aSmrg    </para>
598e9fcaa8aSmrg<literallayout>
599e9fcaa8aSmrg      Keyclick volume
600e9fcaa8aSmrg      Bell volume
601e9fcaa8aSmrg      Bell pitch
602e9fcaa8aSmrg      Bell duration
603e9fcaa8aSmrg      Global auto-repeat
604e9fcaa8aSmrg      Per key auto-repeat
605e9fcaa8aSmrg      32 LEDs
606e9fcaa8aSmrg</literallayout>
607e9fcaa8aSmrg  </glossdef>
608e9fcaa8aSmrg</glossentry>
609e9fcaa8aSmrg
610e9fcaa8aSmrg<glossentry>
611e9fcaa8aSmrg  <glossterm>Key Width, Key Type Width</glossterm>
612e9fcaa8aSmrg  <glossdef>
613e9fcaa8aSmrg    <para>
614e9fcaa8aSmrgThe maximum number of shift levels for a type is referred to as the width of a
615e9fcaa8aSmrgkey type.
616e9fcaa8aSmrg    </para>
617e9fcaa8aSmrg  </glossdef>
618e9fcaa8aSmrg</glossentry>
619e9fcaa8aSmrg<glossentry>
620e9fcaa8aSmrg  <glossterm>Keyboard Geometry</glossterm>
621e9fcaa8aSmrg  <glossdef>
622e9fcaa8aSmrg    <para>
623e9fcaa8aSmrgKeyboard geometry describes the physical appearance of the keyboard, including
624e9fcaa8aSmrgthe shape, location, and color of all keyboard keys or other visible keyboard
625e9fcaa8aSmrgcomponents such as indicators and is stored in a <emphasis>
626e9fcaa8aSmrgXkbGeometryRec</emphasis>
627e9fcaa8aSmrg structure. The information contained in a keyboard geometry is sufficient to
628e9fcaa8aSmrgallow a client program to draw an accurate two-dimensional image of the
629e9fcaa8aSmrgkeyboard.
630e9fcaa8aSmrg    </para>
631e9fcaa8aSmrg  </glossdef>
632e9fcaa8aSmrg</glossentry>
633e9fcaa8aSmrg<glossentry>
634e9fcaa8aSmrg  <glossterm>Keyboard Geometry Name</glossterm>
635e9fcaa8aSmrg  <glossdef>
636e9fcaa8aSmrg    <para>
637e9fcaa8aSmrgThe keyboard geometry name describes the physical location, size, and shape of
638e9fcaa8aSmrgthe various keys on the keyboard and is part of the <emphasis>
639e9fcaa8aSmrgXkbNamesRec</emphasis>
640e9fcaa8aSmrg structure.
641e9fcaa8aSmrg    </para>
642e9fcaa8aSmrg  </glossdef>
643e9fcaa8aSmrg</glossentry>
644e9fcaa8aSmrg<glossentry>
645e9fcaa8aSmrg  <glossterm>Keyboard State</glossterm>
646e9fcaa8aSmrg  <glossdef>
647e9fcaa8aSmrg    <para>
648e9fcaa8aSmrgKeyboard state encompasses all of the transitory information necessary to map a
649e9fcaa8aSmrgphysical key press or release to an appropriate event.
650e9fcaa8aSmrg    </para>
651e9fcaa8aSmrg  </glossdef>
652e9fcaa8aSmrg</glossentry>
653e9fcaa8aSmrg<glossentry>
654e9fcaa8aSmrg  <glossterm>Keycode</glossterm>
655e9fcaa8aSmrg  <glossdef>
656e9fcaa8aSmrg    <para>
657e9fcaa8aSmrgA numeric value returned to the X server when a key on a keyboard is pressed or
658e9fcaa8aSmrgreleased, indicating which key is being modulated. Keycode numbers are in the
659e9fcaa8aSmrgrange 1 &lt;= keycode &lt;= max, where max is the number of physical keys on
660e9fcaa8aSmrgthe device.
661e9fcaa8aSmrg    </para>
662e9fcaa8aSmrg  </glossdef>
663e9fcaa8aSmrg</glossentry>
664e9fcaa8aSmrg<glossentry>
665e9fcaa8aSmrg  <glossterm>Keycode Name</glossterm>
666e9fcaa8aSmrg  <glossdef>
667e9fcaa8aSmrg    <para>
668e9fcaa8aSmrgThe keycode name describes the range and meaning of the keycodes returned by
669e9fcaa8aSmrgthe keyboard and is part of the <emphasis>
670e9fcaa8aSmrgXkbNamesRec</emphasis>
671e9fcaa8aSmrg structure.
672e9fcaa8aSmrg    </para>
673e9fcaa8aSmrg  </glossdef>
674e9fcaa8aSmrg</glossentry>
675e9fcaa8aSmrg<glossentry>
676e9fcaa8aSmrg  <glossterm>Latched Group</glossterm>
677e9fcaa8aSmrg  <glossdef>
678e9fcaa8aSmrg    <para>
679e9fcaa8aSmrgA latched group is a group index that is combined with the base and locked
680e9fcaa8aSmrggroup to form the effective group. It applies only to the next key event that
681e9fcaa8aSmrgdoes not change the keyboard state. The latched group can be changed by
682e9fcaa8aSmrgkeyboard activity or via Xkb extension library functions.
683e9fcaa8aSmrg    </para>
684e9fcaa8aSmrg  </glossdef>
685e9fcaa8aSmrg</glossentry>
686e9fcaa8aSmrg<glossentry>
687e9fcaa8aSmrg  <glossterm>Latched Modifier</glossterm>
688e9fcaa8aSmrg  <glossdef>
689e9fcaa8aSmrg    <para>
690e9fcaa8aSmrgLatched modifiers are the set of modifiers that are combined with the base
691e9fcaa8aSmrgmodifiers and the locked modifiers to form the effective modifiers. It applies
692e9fcaa8aSmrgonly to the next key event that does not change the keyboard state.
693e9fcaa8aSmrg    </para>
694e9fcaa8aSmrg  </glossdef>
695e9fcaa8aSmrg</glossentry>
696e9fcaa8aSmrg<glossentry>
697e9fcaa8aSmrg  <glossterm>LED</glossterm>
698e9fcaa8aSmrg  <glossdef>
699e9fcaa8aSmrg    <para>
700e9fcaa8aSmrgA light emitting diode. However, for the purposes of the X keyboard extension
701e9fcaa8aSmrgspecification, a LED is any form of visual two-state indicator that is either
702e9fcaa8aSmrgon or off.
703e9fcaa8aSmrg    </para>
704e9fcaa8aSmrg  </glossdef>
705e9fcaa8aSmrg</glossentry>
706e9fcaa8aSmrg<glossentry>
707e9fcaa8aSmrg  <glossterm>Locked Group</glossterm>
708e9fcaa8aSmrg  <glossdef>
709e9fcaa8aSmrg    <para>
710e9fcaa8aSmrgA locked group is a group index that is combined with the base and latched
711e9fcaa8aSmrggroup to form the effective group. When a group is locked, it supersedes any
712e9fcaa8aSmrgprevious locked group and remains the locked group for all future key events,
713e9fcaa8aSmrguntil a new group is locked. The locked group can be changed by keyboard
714e9fcaa8aSmrgactivity or via Xkb extension library functions.
715e9fcaa8aSmrg    </para>
716e9fcaa8aSmrg  </glossdef>
717e9fcaa8aSmrg</glossentry>
718e9fcaa8aSmrg<glossentry>
719e9fcaa8aSmrg  <glossterm>Locked Modifiers</glossterm>
720e9fcaa8aSmrg  <glossdef>
721e9fcaa8aSmrg    <para>
722e9fcaa8aSmrgLocked modifiers are the set of modifiers that are combined with the base
723e9fcaa8aSmrgmodifiers and the latched modifiers to form the effective modifiers. A locked
724e9fcaa8aSmrgmodifier applies to all future key events until it is explicitly unlocked.
725e9fcaa8aSmrg    </para>
726e9fcaa8aSmrg  </glossdef>
727e9fcaa8aSmrg</glossentry>
728e9fcaa8aSmrg<glossentry>
729e9fcaa8aSmrg  <glossterm>Lookup State      </glossterm>
730e9fcaa8aSmrg  <glossdef>
731e9fcaa8aSmrg    <para>
732e9fcaa8aSmrgThe lookup state is composed of the lookup group and the lookup modifiers, and
733e9fcaa8aSmrgit is the state an Xkb-capable or Xkb-aware client should use to map a keycode
734e9fcaa8aSmrgto a keysym.
735e9fcaa8aSmrg    </para>
736e9fcaa8aSmrg  </glossdef>
737e9fcaa8aSmrg</glossentry>
738e9fcaa8aSmrg<glossentry>
739e9fcaa8aSmrg  <glossterm>Modifier</glossterm>
740e9fcaa8aSmrg  <glossdef>
741e9fcaa8aSmrg    <para>
742e9fcaa8aSmrgA modifier is a logical condition that is either set or unset. The modifiers
743e9fcaa8aSmrgcontrol the Shift Level selected when a key event occurs. Xkb supports the core
744e9fcaa8aSmrgprotocol eight modifiers (<emphasis>
745e9fcaa8aSmrgShift</emphasis>
746e9fcaa8aSmrg, <emphasis>
747e9fcaa8aSmrgLock</emphasis>
748e9fcaa8aSmrg, <emphasis>
749e9fcaa8aSmrgControl</emphasis>
750e9fcaa8aSmrg, and <emphasis>
751e9fcaa8aSmrgMod1</emphasis>
752e9fcaa8aSmrg through <emphasis>
753e9fcaa8aSmrgMod5</emphasis>
754e9fcaa8aSmrg), called the <emphasis>
755e9fcaa8aSmrgreal</emphasis>
756e9fcaa8aSmrg modifiers. In addition, Xkb extends modifier flexibility by providing a set of
757e9fcaa8aSmrgsixteen named virtual modifiers, each of which can be bound to any set of the
758e9fcaa8aSmrgeight real modifiers.
759e9fcaa8aSmrg    </para>
760e9fcaa8aSmrg  </glossdef>
761e9fcaa8aSmrg</glossentry>
762e9fcaa8aSmrg<glossentry>
763e9fcaa8aSmrg  <glossterm>Modifier Key</glossterm>
764e9fcaa8aSmrg  <glossdef>
765e9fcaa8aSmrg    <para>
766e9fcaa8aSmrgA modifier key is a key whose operation has no immediate effect, but that, for
767e9fcaa8aSmrgas long as it is held down, modifies the effect of other keys. A modifier key
768e9fcaa8aSmrgmay be, for example, a shift key or a control key.
769e9fcaa8aSmrg    </para>
770e9fcaa8aSmrg  </glossdef>
771e9fcaa8aSmrg</glossentry>
772e9fcaa8aSmrg<glossentry>
773e9fcaa8aSmrg  <glossterm>Modifier Definition</glossterm>
774e9fcaa8aSmrg  <glossdef>
775e9fcaa8aSmrg    <para>
776e9fcaa8aSmrgAn Xkb modifier definition, held in an <emphasis>
777e9fcaa8aSmrgXkbModsRec</emphasis>
778e9fcaa8aSmrg, consists of a set of real modifiers, a set of virtual modifiers, and an
779e9fcaa8aSmrgeffective mask. The mask is the union of the real modifiers and the set of real
780e9fcaa8aSmrgmodifiers to which the virtual modifiers map; the mask cannot be explicitly
781e9fcaa8aSmrgchanged.
782e9fcaa8aSmrg    </para>
783e9fcaa8aSmrg  </glossdef>
784e9fcaa8aSmrg</glossentry>
785e9fcaa8aSmrg<glossentry>
786e9fcaa8aSmrg  <glossterm>Nonkeyboard Extension Device      </glossterm>
787e9fcaa8aSmrg  <glossdef>
788e9fcaa8aSmrg    <para>
789e9fcaa8aSmrgAn input extension device that is not a keyboard. Other types of devices
790e9fcaa8aSmrgsupported by the input extension include, but are not limited to: mice,
791e9fcaa8aSmrgtablets, touchscreens, barcode readers, button boxes, trackballs, identifier
792e9fcaa8aSmrgdevices, data gloves, and eye trackers.
793e9fcaa8aSmrg    </para>
794e9fcaa8aSmrg  </glossdef>
795e9fcaa8aSmrg</glossentry>
796e9fcaa8aSmrg<glossentry>
797e9fcaa8aSmrg  <glossterm>Outlines</glossterm>
798e9fcaa8aSmrg  <glossdef>
799e9fcaa8aSmrg    <para>
800e9fcaa8aSmrgAn outline is a list of one or more points that describes a single closed
801e9fcaa8aSmrgpolygon, used in the geometry specification for a keyboard.
802e9fcaa8aSmrg    </para>
803e9fcaa8aSmrg  </glossdef>
804e9fcaa8aSmrg</glossentry>
805e9fcaa8aSmrg<glossentry>
806e9fcaa8aSmrg  <glossterm>Physical Indicator Mask</glossterm>
807e9fcaa8aSmrg  <glossdef>
808e9fcaa8aSmrg    <para>
809e9fcaa8aSmrgThe physical indicator mask is a field in the <emphasis>
810e9fcaa8aSmrgXkbIndicatorRec</emphasis>
811e9fcaa8aSmrg that indicates which indicators are bound to physical LEDs on the keyboard; if
812e9fcaa8aSmrga bit is set in <emphasis>
813e9fcaa8aSmrgphys_indicators</emphasis>
814e9fcaa8aSmrg, then the associated indicator has a physical LED associated with it. This
815e9fcaa8aSmrgfield is necessary because some indicators may not have corresponding physical
816e9fcaa8aSmrgLEDs on the keyboard.
817e9fcaa8aSmrg    </para>
818e9fcaa8aSmrg  </glossdef>
819e9fcaa8aSmrg</glossentry>
820e9fcaa8aSmrg<glossentry>
821e9fcaa8aSmrg  <glossterm>Physical Symbol Keyboard Name</glossterm>
822e9fcaa8aSmrg  <glossdef>
823e9fcaa8aSmrg    <para>
824e9fcaa8aSmrgThe <emphasis>
825e9fcaa8aSmrgsymbols</emphasis>
826e9fcaa8aSmrg keyboard name identifies the symbols logically bound to the keys. The symbols
827e9fcaa8aSmrgname is a human or application-readable description of the intended locale or
828e9fcaa8aSmrgusage of the keyboard with these symbols. The <emphasis>
829e9fcaa8aSmrgphys_symbols</emphasis>
830e9fcaa8aSmrg keyboard name, on the other hand, identifies the symbols actually engraved on
831e9fcaa8aSmrgthe keyboard.
832e9fcaa8aSmrg    </para>
833e9fcaa8aSmrg  </glossdef>
834e9fcaa8aSmrg</glossentry>
835e9fcaa8aSmrg<glossentry>
836e9fcaa8aSmrg  <glossterm>Preserved Modifier</glossterm>
837e9fcaa8aSmrg  <glossdef>
838e9fcaa8aSmrg    <para>
839e9fcaa8aSmrgXkb normally consumes modifiers in determining the appropriate symbol for an
840e9fcaa8aSmrgevent, that is, the modifiers are not considered during any of the later stages
841e9fcaa8aSmrgof event processing. For those rare occasions when a modifier <emphasis>
842e9fcaa8aSmrgshould</emphasis>
843e9fcaa8aSmrg be considered despite having been used to look up a symbol, key types include
844e9fcaa8aSmrgan optional <emphasis>
845e9fcaa8aSmrgpreserve</emphasis>
846e9fcaa8aSmrg field. If a modifier is present in the <emphasis>
847e9fcaa8aSmrgpreserve</emphasis>
848e9fcaa8aSmrg list, it is a preserved modifier.
849e9fcaa8aSmrg    </para>
850e9fcaa8aSmrg  </glossdef>
851e9fcaa8aSmrg</glossentry>
852e9fcaa8aSmrg<glossentry>
853e9fcaa8aSmrg  <glossterm>Radio Group</glossterm>
854e9fcaa8aSmrg  <glossdef>
855e9fcaa8aSmrg    <para>
856e9fcaa8aSmrgA radio group is a set of keys whose behavior simulates a set of radio buttons.
857e9fcaa8aSmrgOnce a key in a radio group is pressed, it stays logically depressed until
858e9fcaa8aSmrganother key in the group is pressed, at which point the previously depressed
859e9fcaa8aSmrgkey is logically released. Consequently, at most one key in a radio group can
860e9fcaa8aSmrgbe logically depressed at one time.
861e9fcaa8aSmrg    </para>
862e9fcaa8aSmrg  </glossdef>
863e9fcaa8aSmrg</glossentry>
864e9fcaa8aSmrg<glossentry>
865e9fcaa8aSmrg  <glossterm>Real Modifier</glossterm>
866e9fcaa8aSmrg  <glossdef>
867e9fcaa8aSmrg    <para>
868e9fcaa8aSmrgXkb supports the eight core protocol modifiers (<emphasis>
869e9fcaa8aSmrgShift</emphasis>
870e9fcaa8aSmrg, <emphasis>
871e9fcaa8aSmrgLock</emphasis>
872e9fcaa8aSmrg, <emphasis>
873e9fcaa8aSmrgControl</emphasis>
874e9fcaa8aSmrg, and <emphasis>
875e9fcaa8aSmrgMod1</emphasis>
876e9fcaa8aSmrg through <emphasis>
877e9fcaa8aSmrgMod5</emphasis>
878e9fcaa8aSmrg); these are called the <emphasis>
879e9fcaa8aSmrgreal</emphasis>
880e9fcaa8aSmrg modifiers, as opposed to the set of sixteen named virtual modifiers that can
881e9fcaa8aSmrgbe bound to any set of the eight real modifiers.
882e9fcaa8aSmrg    </para>
883e9fcaa8aSmrg  </glossdef>
884e9fcaa8aSmrg</glossentry>
885e9fcaa8aSmrg<glossentry>
886e9fcaa8aSmrg  <glossterm>Server Internal Modifiers</glossterm>
887e9fcaa8aSmrg  <glossdef>
888e9fcaa8aSmrg    <para>
889e9fcaa8aSmrgModifiers that the server uses to determine the appropriate symbol for an
890e9fcaa8aSmrgevent; internal modifiers are normally consumed by the server.
891e9fcaa8aSmrg    </para>
892e9fcaa8aSmrg  </glossdef>
893e9fcaa8aSmrg</glossentry>
894e9fcaa8aSmrg<glossentry>
895e9fcaa8aSmrg  <glossterm>Shift Level</glossterm>
896e9fcaa8aSmrg  <glossdef>
897e9fcaa8aSmrg    <para>
898e9fcaa8aSmrgOne of several states (normally 2 or 3) governing which graphic character is
899e9fcaa8aSmrgproduced when a key is actuated.
900e9fcaa8aSmrg    </para>
901e9fcaa8aSmrg  </glossdef>
902e9fcaa8aSmrg</glossentry>
903e9fcaa8aSmrg<glossentry>
904e9fcaa8aSmrg  <glossterm>Symbol Keyboard Name</glossterm>
905e9fcaa8aSmrg  <glossdef>
906e9fcaa8aSmrg    <para>
907e9fcaa8aSmrgThe <emphasis>
908e9fcaa8aSmrgsymbols</emphasis>
909e9fcaa8aSmrg keyboard name identifies the symbols logically bound to the keys. The symbols
910e9fcaa8aSmrgname is a human or application-readable description of the intended locale or
911e9fcaa8aSmrgusage of the keyboard with these symbols. The <emphasis>
912e9fcaa8aSmrgphys_symbols</emphasis>
913e9fcaa8aSmrg keyboard name, on the other hand, identifies the symbols actually engraved on
914e9fcaa8aSmrgthe keyboard.
915e9fcaa8aSmrg    </para>
916e9fcaa8aSmrg  </glossdef>
917e9fcaa8aSmrg</glossentry>
918e9fcaa8aSmrg<glossentry>
919e9fcaa8aSmrg  <glossterm>Symbolic Name</glossterm>
920e9fcaa8aSmrg  <glossdef>
921e9fcaa8aSmrg    <para>
922e9fcaa8aSmrgXkb supports symbolic names for most components of the keyboard extension. Most
923e9fcaa8aSmrgof these symbolic names are grouped into the <emphasis>
924e9fcaa8aSmrgnames</emphasis>
925e9fcaa8aSmrg component of the keyboard description.
926e9fcaa8aSmrg    </para>
927e9fcaa8aSmrg  </glossdef>
928e9fcaa8aSmrg</glossentry>
929e9fcaa8aSmrg<glossentry>
930e9fcaa8aSmrg  <glossterm>State Field</glossterm>
931e9fcaa8aSmrg  <glossdef>
932e9fcaa8aSmrg    <para>
933e9fcaa8aSmrgThe portion of a client-side core protocol event that holds the modifier,
934e9fcaa8aSmrggroup, and button state information pertaining to the event.
935e9fcaa8aSmrg    </para>
936e9fcaa8aSmrg  </glossdef>
937e9fcaa8aSmrg</glossentry>
938e9fcaa8aSmrg<glossentry>
939e9fcaa8aSmrg  <glossterm>Types Name</glossterm>
940e9fcaa8aSmrg  <glossdef>
941e9fcaa8aSmrg    <para>
942e9fcaa8aSmrgThe <emphasis>
943e9fcaa8aSmrgtypes</emphasis>
944e9fcaa8aSmrg name provides some information about the set of key types that can be
945e9fcaa8aSmrgassociated with the keyboard. In addition, each key type can have a name, and
946e9fcaa8aSmrgeach shift level of a type can have a name.
947e9fcaa8aSmrg    </para>
948e9fcaa8aSmrg  </glossdef>
949e9fcaa8aSmrg</glossentry>
950e9fcaa8aSmrg<glossentry>
951e9fcaa8aSmrg  <glossterm>Valuator</glossterm>
952e9fcaa8aSmrg  <glossdef>
953e9fcaa8aSmrg    <para>
954e9fcaa8aSmrgA valuator reports a range of values for some entity, like a mouse axis, a
955e9fcaa8aSmrgslider, or a dial.
956e9fcaa8aSmrg    </para>
957e9fcaa8aSmrg  </glossdef>
958e9fcaa8aSmrg</glossentry>
959e9fcaa8aSmrg<glossentry>
960e9fcaa8aSmrg  <glossterm>Virtual Modifier</glossterm>
961e9fcaa8aSmrg  <glossdef>
962e9fcaa8aSmrg    <para>
963e9fcaa8aSmrgXkb provides a set of sixteen named virtual modifiers that can be bound to any
964e9fcaa8aSmrgset of the eight real modifiers. Each virtual modifier can be bound to any set
965e9fcaa8aSmrgof the real modifiers (<emphasis>
966e9fcaa8aSmrgShift</emphasis>
967e9fcaa8aSmrg, <emphasis>
968e9fcaa8aSmrgLock</emphasis>
969e9fcaa8aSmrg, <emphasis>
970e9fcaa8aSmrgControl,</emphasis>
971e9fcaa8aSmrg and <emphasis>
972e9fcaa8aSmrgMod1</emphasis>
973e9fcaa8aSmrg-<emphasis>
974e9fcaa8aSmrgMod5</emphasis>
975e9fcaa8aSmrg).
976e9fcaa8aSmrg    </para>
977e9fcaa8aSmrg  </glossdef>
978e9fcaa8aSmrg</glossentry>
979e9fcaa8aSmrg<glossentry>
980e9fcaa8aSmrg  <glossterm>Virtual Modifier Mapping</glossterm>
981e9fcaa8aSmrg  <glossdef>
982e9fcaa8aSmrg    <para>
983e9fcaa8aSmrgXkb maintains a virtual modifier mapping, which lists the virtual modifiers
984e9fcaa8aSmrgassociated with each key.
985e9fcaa8aSmrg    </para>
986e9fcaa8aSmrg  </glossdef>
987e9fcaa8aSmrg</glossentry>
988e9fcaa8aSmrg<glossentry>
989e9fcaa8aSmrg  <glossterm>Xkb-aware Client</glossterm>
990e9fcaa8aSmrg  <glossdef>
991e9fcaa8aSmrg    <para>
992e9fcaa8aSmrgA client application that initializes Xkb extension and is consequently bound
993e9fcaa8aSmrgto an Xlib that includes the Xkb extension.
994e9fcaa8aSmrg    </para>
995e9fcaa8aSmrg  </glossdef>
996e9fcaa8aSmrg</glossentry>
997e9fcaa8aSmrg<glossentry>
998e9fcaa8aSmrg  <glossterm>Xkb-capable Client</glossterm>
999e9fcaa8aSmrg  <glossdef>
1000e9fcaa8aSmrg    <para>
1001e9fcaa8aSmrgA client application that makes no Xkb extension Xlib calls but is bound to an
1002e9fcaa8aSmrgXlib that includes the Xkb extension.
1003e9fcaa8aSmrg    </para>
1004e9fcaa8aSmrg  </glossdef>
1005e9fcaa8aSmrg</glossentry>
1006e9fcaa8aSmrg<glossentry>
1007e9fcaa8aSmrg  <glossterm>Xkb-unaware Client</glossterm>
1008e9fcaa8aSmrg  <glossdef>
1009e9fcaa8aSmrg    <para>
1010e9fcaa8aSmrgA client application that makes no Xkb extension Xlib calls and is bound to an
1011e9fcaa8aSmrgXlib that does not include the Xkb extension.
1012e9fcaa8aSmrg    </para>
1013e9fcaa8aSmrg  </glossdef>
1014e9fcaa8aSmrg</glossentry>
1015e9fcaa8aSmrg
1016e9fcaa8aSmrg</glossary>
1017