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