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 <= keycode <= 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