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