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