~ubuntu-branches/ubuntu/wily/libx11/wily-proposed

« back to all changes in this revision

Viewing changes to specs/XKB/glossary.xml

  • Committer: Bazaar Package Importer
  • Author(s): Timo Aaltonen
  • Date: 2011-02-24 12:02:14 UTC
  • mfrom: (1.1.12 upstream) (2.1.12 sid)
  • Revision ID: james.westby@ubuntu.com-20110224120214-a86d0lv48wk8itl6
Tags: 2:1.4.1-5ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Add Latin locale.
  - Add Klingon locale.
  - Add 102_double_arrows_Compose.patch: compose keys for double arrows
    (LP: 680143)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<glossary id='glossary'>
 
2
<title>Glossary</title>
 
3
<glossentry>
 
4
  <glossterm>Allocator</glossterm>
 
5
  <glossdef>
 
6
    <para>
 
7
Xkb provides functions, known as allocators, to create and initialize Xkb data
 
8
structures.
 
9
    </para>
 
10
  </glossdef>
 
11
</glossentry>
 
12
<glossentry>
 
13
  <glossterm>Audible Bell</glossterm>
 
14
  <glossdef>
 
15
    <para>
 
16
An audible bell is the sound generated by whatever bell is associated with the
 
17
keyboard or input extension device, as opposed to any other audible sound
 
18
generated elsewhere in the system.
 
19
    </para>
 
20
  </glossdef>
 
21
</glossentry>
 
22
<glossentry>
 
23
  <glossterm>Autoreset Controls</glossterm>
 
24
  <glossdef>
 
25
    <para>
 
26
The autoreset controls configure the boolean controls to automatically be
 
27
enabled 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>
 
35
The group in effect as a result of all actions other than a previous lock or
 
36
latch request; the base group is transient. For example, the user pressing and
 
37
holding a group shift key that shifts to Group2 would result in the base group
 
38
being 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>
 
46
Modifiers that are turned on as a result of some actions other than previous
 
47
lock or latch requests; base modifiers are transient. For example, the user
 
48
pressing and holding a key bound to the Shift modifier would result in Shift
 
49
being 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>
 
57
A number assigned by the X server at run time that is assigned to the extension
 
58
to identify events from that extension.
 
59
    </para>
 
60
  </glossdef>
 
61
</glossentry>
 
62
<glossentry>
 
63
  <glossterm>Base State</glossterm>
 
64
  <glossdef>
 
65
    <para>
 
66
The base group and base modifiers represent keys that are physically or
 
67
logically down; these constitute the base state.
 
68
    </para>
 
69
  </glossdef>
 
70
</glossentry>
 
71
<glossentry>
 
72
  <glossterm>Boolean Controls</glossterm>
 
73
  <glossdef>
 
74
    <para>
 
75
Global keyboard controls that may be selectively enabled and disabled under
 
76
program control and that may be automatically set to an on or off condition
 
77
upon client program exit.
 
78
    </para>
 
79
  </glossdef>
 
80
</glossentry>
 
81
<glossentry>
 
82
  <glossterm>Canonical Key Types</glossterm>
 
83
  <glossdef>
 
84
    <para>
 
85
The canonical key types are predefined key types that describe the types of
 
86
keys available on most keyboards. The definitions for the canonical key types
 
87
are held in the first <emphasis>
 
88
XkbNumRequiredTypes</emphasis>
 
89
 entries of the <emphasis>
 
90
types</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>
 
122
The 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>
 
130
The <emphasis>
 
131
compat</emphasis>
 
132
 name is a string that provides some information about the rules used to bind
 
133
actions 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>
 
141
When an Xkb-extended X server connects to an Xkb-unaware client, the
 
142
compatibility state remaps the keyboard group into a core modifier whenever
 
143
possible.
 
144
    </para>
 
145
  </glossdef>
 
146
</glossentry>
 
147
<glossentry>
 
148
  <glossterm>Compatibility Grab State</glossterm>
 
149
  <glossdef>
 
150
    <para>
 
151
The grab state that results from applying the compatibility map to the Xkb grab
 
152
state.
 
153
    </para>
 
154
  </glossdef>
 
155
</glossentry>
 
156
<glossentry>
 
157
  <glossterm>Compatibility Map</glossterm>
 
158
  <glossdef>
 
159
    <para>
 
160
The 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>
 
168
An expression used to describe server keyboard database components to be
 
169
loaded. It describes the order in which the components should be loaded and the
 
170
rules by which duplicate attributes should be resolved.
 
171
    </para>
 
172
  </glossdef>
 
173
</glossentry>
 
174
<glossentry>
 
175
  <glossterm>Compose Processing</glossterm>
 
176
  <glossdef>
 
177
    <para>
 
178
The process of mapping a series of keysyms to a string is known as compose
 
179
processing.
 
180
    </para>
 
181
  </glossdef>
 
182
</glossentry>
 
183
<glossentry>
 
184
  <glossterm>Consumed Modifier</glossterm>
 
185
  <glossdef>
 
186
    <para>
 
187
Xkb normally consumes modifiers in determining the appropriate symbol for an
 
188
event, that is, the modifiers are not considered during any of the later stages
 
189
of event processing. For those rare occasions when a modifier <emphasis>
 
190
should</emphasis>
 
191
 be considered despite having been used to look up a symbol, key types include
 
192
an optional <emphasis>
 
193
preserve</emphasis>
 
194
 field.
 
195
    </para>
 
196
  </glossdef>
 
197
</glossentry>
 
198
<glossentry>
 
199
  <glossterm>Core Event</glossterm>
 
200
  <glossdef>
 
201
    <para>
 
202
An 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>
 
210
Detectable auto-repeat allows a client to detect an auto-repeating key. If a
 
211
client requests and the server supports detectable auto-repeat, Xkb generates
 
212
<emphasis>
 
213
KeyRelease</emphasis>
 
214
 events only when the key is physically released. Thus the client receives a
 
215
number of <emphasis>
 
216
KeyPress</emphasis>
 
217
 events for that key without intervening <emphasis>
 
218
KeyRelease</emphasis>
 
219
 events until the key is finally released, when a <emphasis>
 
220
KeyRelease</emphasis>
 
221
 event is received.
 
222
    </para>
 
223
  </glossdef>
 
224
</glossentry>
 
225
<glossentry>
 
226
  <glossterm>Effective Group</glossterm>
 
227
  <glossdef>
 
228
    <para>
 
229
The effective group is the arithmetic sum of the locked, latched, and base
 
230
groups. The effective keyboard group is always brought back into range
 
231
depending on the value of the <emphasis>
 
232
GroupsWrap</emphasis>
 
233
 control for the keyboard. If an event occurs with an effective group that is
 
234
legal for the keyboard as a whole, but not for the key in question, the group
 
235
<emphasis>
 
236
for that event only</emphasis>
 
237
 is normalized using the algorithm specified by the <emphasis>
 
238
group_info</emphasis>
 
239
 member of the key symbol map (<emphasis>
 
240
XkbSymMapRec</emphasis>
 
241
).
 
242
    </para>
 
243
  </glossdef>
 
244
</glossentry>
 
245
<glossentry>
 
246
  <glossterm>Effective Mask</glossterm>
 
247
  <glossdef>
 
248
    <para>
 
249
An Xkb modifier definition consists of a set of bit masks corresponding to the
 
250
eight real modifiers; a similar set of bitmasks corresponding to the 16 named
 
251
virtual modifiers; and an effective mask. The effective mask represents the set
 
252
of all real modifiers that can logically be set either by setting any of the
 
253
real 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>
 
261
The effective modifiers are the bitwise union of the base, latched and locked
 
262
modifiers.
 
263
    </para>
 
264
  </glossdef>
 
265
</glossentry>
 
266
<glossentry>
 
267
  <glossterm>Extension Device</glossterm>
 
268
  <glossdef>
 
269
    <para>
 
270
Any 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>
 
278
Controls that affect the way Xkb generates key events. The controls affect all
 
279
keys, as opposed to per-key controls that are for a single key. Global controls
 
280
include
 
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>
 
329
The grab state is the state used when matching events to passive grabs. It
 
330
consists 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>
 
344
A number used as the internal representation for a group number. Group1 through
 
345
Group 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>
 
353
If a group index exceeds the maximum number of groups permitted for the
 
354
specified keyboard, it is wrapped or truncated back into range as specified by
 
355
the global <emphasis>GroupsWrap</emphasis> control. <emphasis>
 
356
GroupsWrap</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>
 
370
An attribute of a key that identifies which modifiers affect the shift level of
 
371
a 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>
 
379
The maximum number of shift levels in any group for the key type associated
 
380
with a key.
 
381
    </para>
 
382
  </glossdef>
 
383
</glossentry>
 
384
<glossentry>
 
385
  <glossterm>Keysym Group</glossterm>
 
386
  <glossdef>
 
387
    <para>
 
388
A keysym group is a logical state of the keyboard providing access to a
 
389
collection of characters. A group usually contains a set of characters that
 
390
logically belong together and that may be arranged on several shift levels
 
391
within that group. For example, Group1 could be the English alphabet, and
 
392
Group2 could be Greek. Xkb supports up to four different groups for an input
 
393
device or keyboard. Groups are in the range 1-4 (Group1 - Group4), and are
 
394
often 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>
 
402
An indicator is a feedback mechanism such as an LED on an input device. Using
 
403
Xkb, a client application can determine the names of the various indicators,
 
404
determine and control the way that the individual indicators should be updated
 
405
to reflect keyboard changes, and determine which of the 32 keyboard indicators
 
406
reported 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>
 
414
An indicator feedback describes the state of a bank of up to 32 lights. It has
 
415
a mask where each bit corresponds to a light and an associated value mask that
 
416
specifies which lights are on or off.
 
417
    </para>
 
418
  </glossdef>
 
419
</glossentry>
 
420
<glossentry>
 
421
  <glossterm>Indicator Map</glossterm>
 
422
  <glossdef>
 
423
    <para>
 
424
An indicator has its own set of attributes that specify whether clients can
 
425
explicitly set its state and whether it tracks the keyboard state. The
 
426
indicator map is the collection of these attributes for each indicator and is
 
427
held in the <emphasis>
 
428
maps</emphasis>
 
429
 array, which is an array of <emphasis>
 
430
XkbIndicatorRec</emphasis>
 
431
 structures.
 
432
    </para>
 
433
  </glossdef>
 
434
</glossentry>
 
435
<glossentry>
 
436
  <glossterm>Input Extension</glossterm>
 
437
  <glossdef>
 
438
    <para>
 
439
An extension to the core X protocol that allows an X server to support multiple
 
440
keyboards, as well as other input devices, in addition to the core X keyboard
 
441
and pointer. Other types of devices supported by the input extension include,
 
442
but are not limited to: mice, tablets, touchscreens, barcode readers, button
 
443
boxes, 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>
 
451
A key action consists of an operator and some optional data. Once the server
 
452
has applied the global controls and per-key behavior and has decided to process
 
453
a key event, it applies key actions to determine the effects of the key on the
 
454
internal state of the server. Xkb supports actions that do the following:
 
455
    </para>
 
456
    <itemizedlist>
 
457
    <listitem>
 
458
      <para>
 
459
Change base, latched, or locked modifiers or group
 
460
      </para>
 
461
    </listitem>
 
462
    <listitem>
 
463
      <para>
 
464
Move the core pointer or simulate core pointer button events
 
465
      </para>
 
466
    </listitem>
 
467
    <listitem>
 
468
      <para>
 
469
Change most aspects of keyboard behavior
 
470
      </para>
 
471
    </listitem>
 
472
    <listitem>
 
473
      <para>
 
474
Terminate or suspend the server
 
475
      </para>
 
476
    </listitem>
 
477
    <listitem>
 
478
      <para>
 
479
Send a message to interested clients
 
480
      </para>
 
481
    </listitem>
 
482
    <listitem>
 
483
      <para>
 
484
Simulate 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>
 
495
A key alias is a symbolic name for a specific physical key. Key aliases allow
 
496
the keyboard layout designer to assign multiple key names to a single key. This
 
497
allows the keyboard layout designer to refer to keys using either their
 
498
position or their "function." Key aliases can be specified both in the symbolic
 
499
names component and in the keyboard geometry. Both sets of aliases are always
 
500
valid, but key alias definitions in the keyboard geometry have priority; if
 
501
both symbolic names and geometry include aliases, you should consider the
 
502
definitions from the geometry before considering the definitions from the
 
503
symbolic names section.
 
504
    </para>
 
505
  </glossdef>
 
506
</glossentry>
 
507
<glossentry>
 
508
  <glossterm>Key Behavior</glossterm>
 
509
  <glossdef>
 
510
    <para>
 
511
The <emphasis>
 
512
behaviors</emphasis>
 
513
 field of the server map is an array of <emphasis>
 
514
XkbBehavior</emphasis>
 
515
, indexed by keycode, and contains the behavior for each key. The X server uses
 
516
key behavior to determine whether to process or filter out any given key event;
 
517
key behavior is independent of keyboard modifier or group state. Each key has
 
518
exactly 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>
 
544
A key symbol map describes the symbols bound to a key and the rules to be used
 
545
to interpret those symbols. It is an array of <emphasis>
 
546
XkbSymMapRec</emphasis>
 
547
 structures indexed by keycode.
 
548
    </para>
 
549
  </glossdef>
 
550
</glossentry>
 
551
<glossentry>
 
552
  <glossterm>Key Type</glossterm>
 
553
  <glossdef>
 
554
    <para>
 
555
Key types are used to determine the shift level of a key given the current
 
556
state of the keyboard. There is one key type for each group for a key. Key
 
557
types are defined using the <emphasis>
 
558
XkbKeyTypeRec</emphasis>
 
559
 and <emphasis>
 
560
XkbKTMapEntryRec</emphasis>
 
561
 structures. Xkb allows up to <emphasis>
 
562
XkbMaxKeyTypes</emphasis>
 
563
 (255) key types to be defined, but requires at least <emphasis>
 
564
XkbNumRequiredTypes</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>
 
573
The sound the default bell makes when rung is the system bell or the default
 
574
keyboard 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>
 
583
There are five types of components stored in the X server database of keyboard
 
584
components. They correspond to the <emphasis>
 
585
symbols, geometry, keycodes, compat, </emphasis>
 
586
and<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>
 
596
A 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>
 
614
The maximum number of shift levels for a type is referred to as the width of a
 
615
key type.
 
616
    </para>
 
617
  </glossdef>
 
618
</glossentry>
 
619
<glossentry>
 
620
  <glossterm>Keyboard Geometry</glossterm>
 
621
  <glossdef>
 
622
    <para>
 
623
Keyboard geometry describes the physical appearance of the keyboard, including
 
624
the shape, location, and color of all keyboard keys or other visible keyboard
 
625
components such as indicators and is stored in a <emphasis>
 
626
XkbGeometryRec</emphasis>
 
627
 structure. The information contained in a keyboard geometry is sufficient to
 
628
allow a client program to draw an accurate two-dimensional image of the
 
629
keyboard.
 
630
    </para>
 
631
  </glossdef>
 
632
</glossentry>
 
633
<glossentry>
 
634
  <glossterm>Keyboard Geometry Name</glossterm>
 
635
  <glossdef>
 
636
    <para>
 
637
The keyboard geometry name describes the physical location, size, and shape of
 
638
the various keys on the keyboard and is part of the <emphasis>
 
639
XkbNamesRec</emphasis>
 
640
 structure.
 
641
    </para>
 
642
  </glossdef>
 
643
</glossentry>
 
644
<glossentry>
 
645
  <glossterm>Keyboard State</glossterm>
 
646
  <glossdef>
 
647
    <para>
 
648
Keyboard state encompasses all of the transitory information necessary to map a
 
649
physical key press or release to an appropriate event.
 
650
    </para>
 
651
  </glossdef>
 
652
</glossentry>
 
653
<glossentry>
 
654
  <glossterm>Keycode</glossterm>
 
655
  <glossdef>
 
656
    <para>
 
657
A numeric value returned to the X server when a key on a keyboard is pressed or
 
658
released, indicating which key is being modulated. Keycode numbers are in the
 
659
range 1 &lt;= keycode &lt;= max, where max is the number of physical keys on
 
660
the device.
 
661
    </para>
 
662
  </glossdef>
 
663
</glossentry>
 
664
<glossentry>
 
665
  <glossterm>Keycode Name</glossterm>
 
666
  <glossdef>
 
667
    <para>
 
668
The keycode name describes the range and meaning of the keycodes returned by
 
669
the keyboard and is part of the <emphasis>
 
670
XkbNamesRec</emphasis>
 
671
 structure.
 
672
    </para>
 
673
  </glossdef>
 
674
</glossentry>
 
675
<glossentry>
 
676
  <glossterm>Latched Group</glossterm>
 
677
  <glossdef>
 
678
    <para>
 
679
A latched group is a group index that is combined with the base and locked
 
680
group to form the effective group. It applies only to the next key event that
 
681
does not change the keyboard state. The latched group can be changed by
 
682
keyboard activity or via Xkb extension library functions.
 
683
    </para>
 
684
  </glossdef>
 
685
</glossentry>
 
686
<glossentry>
 
687
  <glossterm>Latched Modifier</glossterm>
 
688
  <glossdef>
 
689
    <para>
 
690
Latched modifiers are the set of modifiers that are combined with the base
 
691
modifiers and the locked modifiers to form the effective modifiers. It applies
 
692
only 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>
 
700
A light emitting diode. However, for the purposes of the X keyboard extension
 
701
specification, a LED is any form of visual two-state indicator that is either
 
702
on or off.
 
703
    </para>
 
704
  </glossdef>
 
705
</glossentry>
 
706
<glossentry>
 
707
  <glossterm>Locked Group</glossterm>
 
708
  <glossdef>
 
709
    <para>
 
710
A locked group is a group index that is combined with the base and latched
 
711
group to form the effective group. When a group is locked, it supersedes any
 
712
previous locked group and remains the locked group for all future key events,
 
713
until a new group is locked. The locked group can be changed by keyboard
 
714
activity or via Xkb extension library functions.
 
715
    </para>
 
716
  </glossdef>
 
717
</glossentry>
 
718
<glossentry>
 
719
  <glossterm>Locked Modifiers</glossterm>
 
720
  <glossdef>
 
721
    <para>
 
722
Locked modifiers are the set of modifiers that are combined with the base
 
723
modifiers and the latched modifiers to form the effective modifiers. A locked
 
724
modifier 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>
 
732
The lookup state is composed of the lookup group and the lookup modifiers, and
 
733
it is the state an Xkb-capable or Xkb-aware client should use to map a keycode
 
734
to a keysym.
 
735
    </para>
 
736
  </glossdef>
 
737
</glossentry>
 
738
<glossentry>
 
739
  <glossterm>Modifier</glossterm>
 
740
  <glossdef>
 
741
    <para>
 
742
A modifier is a logical condition that is either set or unset. The modifiers
 
743
control the Shift Level selected when a key event occurs. Xkb supports the core
 
744
protocol eight modifiers (<emphasis>
 
745
Shift</emphasis>
 
746
, <emphasis>
 
747
Lock</emphasis>
 
748
, <emphasis>
 
749
Control</emphasis>
 
750
, and <emphasis>
 
751
Mod1</emphasis>
 
752
 through <emphasis>
 
753
Mod5</emphasis>
 
754
), called the <emphasis>
 
755
real</emphasis>
 
756
 modifiers. In addition, Xkb extends modifier flexibility by providing a set of
 
757
sixteen named virtual modifiers, each of which can be bound to any set of the
 
758
eight real modifiers.
 
759
    </para>
 
760
  </glossdef>
 
761
</glossentry>
 
762
<glossentry>
 
763
  <glossterm>Modifier Key</glossterm>
 
764
  <glossdef>
 
765
    <para>
 
766
A modifier key is a key whose operation has no immediate effect, but that, for
 
767
as long as it is held down, modifies the effect of other keys. A modifier key
 
768
may 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>
 
776
An Xkb modifier definition, held in an <emphasis>
 
777
XkbModsRec</emphasis>
 
778
, consists of a set of real modifiers, a set of virtual modifiers, and an
 
779
effective mask. The mask is the union of the real modifiers and the set of real
 
780
modifiers to which the virtual modifiers map; the mask cannot be explicitly
 
781
changed.
 
782
    </para>
 
783
  </glossdef>
 
784
</glossentry>
 
785
<glossentry>
 
786
  <glossterm>Nonkeyboard Extension Device      </glossterm>
 
787
  <glossdef>
 
788
    <para>
 
789
An input extension device that is not a keyboard. Other types of devices
 
790
supported by the input extension include, but are not limited to: mice,
 
791
tablets, touchscreens, barcode readers, button boxes, trackballs, identifier
 
792
devices, data gloves, and eye trackers.
 
793
    </para>
 
794
  </glossdef>
 
795
</glossentry>
 
796
<glossentry>
 
797
  <glossterm>Outlines</glossterm>
 
798
  <glossdef>
 
799
    <para>
 
800
An outline is a list of one or more points that describes a single closed
 
801
polygon, 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>
 
809
The physical indicator mask is a field in the <emphasis>
 
810
XkbIndicatorRec</emphasis>
 
811
 that indicates which indicators are bound to physical LEDs on the keyboard; if
 
812
a bit is set in <emphasis>
 
813
phys_indicators</emphasis>
 
814
, then the associated indicator has a physical LED associated with it. This
 
815
field is necessary because some indicators may not have corresponding physical
 
816
LEDs on the keyboard.
 
817
    </para>
 
818
  </glossdef>
 
819
</glossentry>
 
820
<glossentry>
 
821
  <glossterm>Physical Symbol Keyboard Name</glossterm>
 
822
  <glossdef>
 
823
    <para>
 
824
The <emphasis>
 
825
symbols</emphasis>
 
826
 keyboard name identifies the symbols logically bound to the keys. The symbols
 
827
name is a human or application-readable description of the intended locale or
 
828
usage of the keyboard with these symbols. The <emphasis>
 
829
phys_symbols</emphasis>
 
830
 keyboard name, on the other hand, identifies the symbols actually engraved on
 
831
the keyboard.
 
832
    </para>
 
833
  </glossdef>
 
834
</glossentry>
 
835
<glossentry>
 
836
  <glossterm>Preserved Modifier</glossterm>
 
837
  <glossdef>
 
838
    <para>
 
839
Xkb normally consumes modifiers in determining the appropriate symbol for an
 
840
event, that is, the modifiers are not considered during any of the later stages
 
841
of event processing. For those rare occasions when a modifier <emphasis>
 
842
should</emphasis>
 
843
 be considered despite having been used to look up a symbol, key types include
 
844
an optional <emphasis>
 
845
preserve</emphasis>
 
846
 field. If a modifier is present in the <emphasis>
 
847
preserve</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>
 
856
A radio group is a set of keys whose behavior simulates a set of radio buttons.
 
857
Once a key in a radio group is pressed, it stays logically depressed until
 
858
another key in the group is pressed, at which point the previously depressed
 
859
key is logically released. Consequently, at most one key in a radio group can
 
860
be logically depressed at one time.
 
861
    </para>
 
862
  </glossdef>
 
863
</glossentry>
 
864
<glossentry>
 
865
  <glossterm>Real Modifier</glossterm>
 
866
  <glossdef>
 
867
    <para>
 
868
Xkb supports the eight core protocol modifiers (<emphasis>
 
869
Shift</emphasis>
 
870
, <emphasis>
 
871
Lock</emphasis>
 
872
, <emphasis>
 
873
Control</emphasis>
 
874
, and <emphasis>
 
875
Mod1</emphasis>
 
876
 through <emphasis>
 
877
Mod5</emphasis>
 
878
); these are called the <emphasis>
 
879
real</emphasis>
 
880
 modifiers, as opposed to the set of sixteen named virtual modifiers that can
 
881
be 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>
 
889
Modifiers that the server uses to determine the appropriate symbol for an
 
890
event; 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>
 
898
One of several states (normally 2 or 3) governing which graphic character is
 
899
produced when a key is actuated.
 
900
    </para>
 
901
  </glossdef>
 
902
</glossentry>
 
903
<glossentry>
 
904
  <glossterm>Symbol Keyboard Name</glossterm>
 
905
  <glossdef>
 
906
    <para>
 
907
The <emphasis>
 
908
symbols</emphasis>
 
909
 keyboard name identifies the symbols logically bound to the keys. The symbols
 
910
name is a human or application-readable description of the intended locale or
 
911
usage of the keyboard with these symbols. The <emphasis>
 
912
phys_symbols</emphasis>
 
913
 keyboard name, on the other hand, identifies the symbols actually engraved on
 
914
the keyboard.
 
915
    </para>
 
916
  </glossdef>
 
917
</glossentry>
 
918
<glossentry>
 
919
  <glossterm>Symbolic Name</glossterm>
 
920
  <glossdef>
 
921
    <para>
 
922
Xkb supports symbolic names for most components of the keyboard extension. Most
 
923
of these symbolic names are grouped into the <emphasis>
 
924
names</emphasis>
 
925
 component of the keyboard description.
 
926
    </para>
 
927
  </glossdef>
 
928
</glossentry>
 
929
<glossentry>
 
930
  <glossterm>State Field</glossterm>
 
931
  <glossdef>
 
932
    <para>
 
933
The portion of a client-side core protocol event that holds the modifier,
 
934
group, 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>
 
942
The <emphasis>
 
943
types</emphasis>
 
944
 name provides some information about the set of key types that can be
 
945
associated with the keyboard. In addition, each key type can have a name, and
 
946
each 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>
 
954
A valuator reports a range of values for some entity, like a mouse axis, a
 
955
slider, or a dial.
 
956
    </para>
 
957
  </glossdef>
 
958
</glossentry>
 
959
<glossentry>
 
960
  <glossterm>Virtual Modifier</glossterm>
 
961
  <glossdef>
 
962
    <para>
 
963
Xkb provides a set of sixteen named virtual modifiers that can be bound to any
 
964
set of the eight real modifiers. Each virtual modifier can be bound to any set
 
965
of the real modifiers (<emphasis>
 
966
Shift</emphasis>
 
967
, <emphasis>
 
968
Lock</emphasis>
 
969
, <emphasis>
 
970
Control,</emphasis>
 
971
 and <emphasis>
 
972
Mod1</emphasis>
 
973
-<emphasis>
 
974
Mod5</emphasis>
 
975
).
 
976
    </para>
 
977
  </glossdef>
 
978
</glossentry>
 
979
<glossentry>
 
980
  <glossterm>Virtual Modifier Mapping</glossterm>
 
981
  <glossdef>
 
982
    <para>
 
983
Xkb maintains a virtual modifier mapping, which lists the virtual modifiers
 
984
associated with each key.
 
985
    </para>
 
986
  </glossdef>
 
987
</glossentry>
 
988
<glossentry>
 
989
  <glossterm>Xkb-aware Client</glossterm>
 
990
  <glossdef>
 
991
    <para>
 
992
A client application that initializes Xkb extension and is consequently bound
 
993
to 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>
 
1001
A client application that makes no Xkb extension Xlib calls but is bound to an
 
1002
Xlib that includes the Xkb extension.
 
1003
    </para>
 
1004
  </glossdef>
 
1005
</glossentry>
 
1006
<glossentry>
 
1007
  <glossterm>Xkb-unaware Client</glossterm>
 
1008
  <glossdef>
 
1009
    <para>
 
1010
A client application that makes no Xkb extension Xlib calls and is bound to an
 
1011
Xlib that does not include the Xkb extension.
 
1012
    </para>
 
1013
  </glossdef>
 
1014
</glossentry>
 
1015
 
 
1016
</glossary>