Glossary
Allocator
Xkb provides functions, known as allocators, to create and initialize Xkb data
structures.
Audible Bell
An audible bell is the sound generated by whatever bell is associated with the
keyboard or input extension device, as opposed to any other audible sound
generated elsewhere in the system.
Autoreset Controls
The autoreset controls configure the boolean controls to automatically be
enabled or disabled at the time a program exits.
Base Group
The group in effect as a result of all actions other than a previous lock or
latch request; the base group is transient. For example, the user pressing and
holding a group shift key that shifts to Group2 would result in the base group
being group 2 at that point in time. Initially, base group is always Group1.
Base Modifiers
Modifiers that are turned on as a result of some actions other than previous
lock or latch requests; base modifiers are transient. For example, the user
pressing and holding a key bound to the Shift modifier would result in Shift
being a base modifier at that point in time.
Base Event Code
A number assigned by the X server at run time that is assigned to the extension
to identify events from that extension.
Base State
The base group and base modifiers represent keys that are physically or
logically down; these constitute the base state.
Boolean Controls
Global keyboard controls that may be selectively enabled and disabled under
program control and that may be automatically set to an on or off condition
upon client program exit.
Canonical Key Types
The canonical key types are predefined key types that describe the types of
keys available on most keyboards. The definitions for the canonical key types
are held in the first
XkbNumRequiredTypes
entries of the
types
field of the client map and are indexed using the following constants:
XkbOneLevelIndex
XkbTwoLevelIndex
XkbAlphabeticIndex
XkbKeypadIndex
Client Map
The key mapping information needed to convert arbitrary keycodes to symbols.
Compat Name
The
compat
name is a string that provides some information about the rules used to bind
actions to keys that are changed using core protocol requests.
Compatibility State
When an Xkb-extended X server connects to an Xkb-unaware client, the
compatibility state remaps the keyboard group into a core modifier whenever
possible.
Compatibility Grab State
The grab state that results from applying the compatibility map to the Xkb grab
state.
Compatibility Map
The definition of how to map core protocol keyboard state to Xkb keyboard state.
Component Expression
An expression used to describe server keyboard database components to be
loaded. It describes the order in which the components should be loaded and the
rules by which duplicate attributes should be resolved.
Compose Processing
The process of mapping a series of keysyms to a string is known as compose
processing.
Consumed Modifier
Xkb normally consumes modifiers in determining the appropriate symbol for an
event, that is, the modifiers are not considered during any of the later stages
of event processing. For those rare occasions when a modifier
should
be considered despite having been used to look up a symbol, key types include
an optional
preserve
field.
Core Event
An event created from the core X server.
Detectable Auto-Repeat
Detectable auto-repeat allows a client to detect an auto-repeating key. If a
client requests and the server supports detectable auto-repeat, Xkb generates
KeyRelease
events only when the key is physically released. Thus the client receives a
number of
KeyPress
events for that key without intervening
KeyRelease
events until the key is finally released, when a
KeyRelease
event is received.
Effective Group
The effective group is the arithmetic sum of the locked, latched, and base
groups. The effective keyboard group is always brought back into range
depending on the value of the
GroupsWrap
control for the keyboard. If an event occurs with an effective group that is
legal for the keyboard as a whole, but not for the key in question, the group
for that event only
is normalized using the algorithm specified by the
group_info
member of the key symbol map (
XkbSymMapRec
).
Effective Mask
An Xkb modifier definition consists of a set of bit masks corresponding to the
eight real modifiers; a similar set of bitmasks corresponding to the 16 named
virtual modifiers; and an effective mask. The effective mask represents the set
of all real modifiers that can logically be set either by setting any of the
real modifiers or by setting any of the virtual modifiers in the definition.
Effective Modifier
The effective modifiers are the bitwise union of the base, latched and locked
modifiers.
Extension Device
Any keyboard or other input device recognized by the X input extension.
Global Keyboard Controls
Controls that affect the way Xkb generates key events. The controls affect all
keys, as opposed to per-key controls that are for a single key. Global controls
include
RepeatKeys Control
DetectableAuto-repeat
SlowKeys
BounceKeys
StickyKeys
MouseKeys
MouseKeysAccel
AccessXKeys
AccessXTimeout
AccessXFeedback
Overlay1
Overlay2
EnabledControls
Grab State
The grab state is the state used when matching events to passive grabs. It
consists of the grab group and the grab modifiers.
Group
See Keysym Group
Group Index
A number used as the internal representation for a group number. Group1 through
Group 4 have indices of 0 through 3.
Groups Wrap Control
If a group index exceeds the maximum number of groups permitted for the
specified keyboard, it is wrapped or truncated back into range as specified by
the global GroupsWrap control.
GroupsWrap can have the following values:
WrapIntoRange
ClampIntoRange
RedirectIntoRange
Key Type
An attribute of a key that identifies which modifiers affect the shift level of
a key and the number of groups on the key.
Key Width
The maximum number of shift levels in any group for the key type associated
with a key.
Keysym Group
A keysym group is a logical state of the keyboard providing access to a
collection of characters. A group usually contains a set of characters that
logically belong together and that may be arranged on several shift levels
within that group. For example, Group1 could be the English alphabet, and
Group2 could be Greek. Xkb supports up to four different groups for an input
device or keyboard. Groups are in the range 1-4 (Group1 - Group4), and are
often referred to as G1 - G4 and indexed as 0 - 3.
Indicator
An indicator is a feedback mechanism such as an LED on an input device. Using
Xkb, a client application can determine the names of the various indicators,
determine and control the way that the individual indicators should be updated
to reflect keyboard changes, and determine which of the 32 keyboard indicators
reported by the protocol are actually present on the keyboard.
Indicator Feedback
An indicator feedback describes the state of a bank of up to 32 lights. It has
a mask where each bit corresponds to a light and an associated value mask that
specifies which lights are on or off.
Indicator Map
An indicator has its own set of attributes that specify whether clients can
explicitly set its state and whether it tracks the keyboard state. The
indicator map is the collection of these attributes for each indicator and is
held in the
maps
array, which is an array of
XkbIndicatorRec
structures.
Input Extension
An extension to the core X protocol that allows an X server to support multiple
keyboards, as well as other input devices, in addition to the core X keyboard
and pointer. Other types of devices supported by the input extension include,
but are not limited to: mice, tablets, touchscreens, barcode readers, button
boxes, trackballs, identifier devices, data gloves, and eye trackers.
Key Action
A key action consists of an operator and some optional data. Once the server
has applied the global controls and per-key behavior and has decided to process
a key event, it applies key actions to determine the effects of the key on the
internal state of the server. Xkb supports actions that do the following:
Change base, latched, or locked modifiers or group
Move the core pointer or simulate core pointer button events
Change most aspects of keyboard behavior
Terminate or suspend the server
Send a message to interested clients
Simulate events on other keys
Key Alias
A key alias is a symbolic name for a specific physical key. Key aliases allow
the keyboard layout designer to assign multiple key names to a single key. This
allows the keyboard layout designer to refer to keys using either their
position or their "function." Key aliases can be specified both in the symbolic
names component and in the keyboard geometry. Both sets of aliases are always
valid, but key alias definitions in the keyboard geometry have priority; if
both symbolic names and geometry include aliases, you should consider the
definitions from the geometry before considering the definitions from the
symbolic names section.
Key Behavior
The
behaviors
field of the server map is an array of
XkbBehavior
, indexed by keycode, and contains the behavior for each key. The X server uses
key behavior to determine whether to process or filter out any given key event;
key behavior is independent of keyboard modifier or group state. Each key has
exactly one behavior.
Key behaviors include:
XkbKB_Default
XkbKB_Lock
XkbKB_RadioGroup
XkbKB_Overlay1
XkbKB_Overlay2
Key Symbol Map
A key symbol map describes the symbols bound to a key and the rules to be used
to interpret those symbols. It is an array of
XkbSymMapRec
structures indexed by keycode.
Key Type
Key types are used to determine the shift level of a key given the current
state of the keyboard. There is one key type for each group for a key. Key
types are defined using the
XkbKeyTypeRec
and
XkbKTMapEntryRec
structures. Xkb allows up to
XkbMaxKeyTypes
(255) key types to be defined, but requires at least
XkbNumRequiredTypes
(4) predefined types to be in a key map.
Keyboard Bells
The sound the default bell makes when rung is the system bell or the default
keyboard bell. Some input devices may have more than one bell, identified by
bell_class and bell_id.
Keyboard Components
There are five types of components stored in the X server database of keyboard
components. They correspond to the
symbols, geometry, keycodes, compat,
and
types
symbolic names associated with a keyboard.
Keyboard Feedback
A keyboard feedback includes the following:
Keyclick volume
Bell volume
Bell pitch
Bell duration
Global auto-repeat
Per key auto-repeat
32 LEDs
Key Width, Key Type Width
The maximum number of shift levels for a type is referred to as the width of a
key type.
Keyboard Geometry
Keyboard geometry describes the physical appearance of the keyboard, including
the shape, location, and color of all keyboard keys or other visible keyboard
components such as indicators and is stored in a
XkbGeometryRec
structure. The information contained in a keyboard geometry is sufficient to
allow a client program to draw an accurate two-dimensional image of the
keyboard.
Keyboard Geometry Name
The keyboard geometry name describes the physical location, size, and shape of
the various keys on the keyboard and is part of the
XkbNamesRec
structure.
Keyboard State
Keyboard state encompasses all of the transitory information necessary to map a
physical key press or release to an appropriate event.
Keycode
A numeric value returned to the X server when a key on a keyboard is pressed or
released, indicating which key is being modulated. Keycode numbers are in the
range 1 <= keycode <= max, where max is the number of physical keys on
the device.
Keycode Name
The keycode name describes the range and meaning of the keycodes returned by
the keyboard and is part of the
XkbNamesRec
structure.
Latched Group
A latched group is a group index that is combined with the base and locked
group to form the effective group. It applies only to the next key event that
does not change the keyboard state. The latched group can be changed by
keyboard activity or via Xkb extension library functions.
Latched Modifier
Latched modifiers are the set of modifiers that are combined with the base
modifiers and the locked modifiers to form the effective modifiers. It applies
only to the next key event that does not change the keyboard state.
LED
A light emitting diode. However, for the purposes of the X keyboard extension
specification, a LED is any form of visual two-state indicator that is either
on or off.
Locked Group
A locked group is a group index that is combined with the base and latched
group to form the effective group. When a group is locked, it supersedes any
previous locked group and remains the locked group for all future key events,
until a new group is locked. The locked group can be changed by keyboard
activity or via Xkb extension library functions.
Locked Modifiers
Locked modifiers are the set of modifiers that are combined with the base
modifiers and the latched modifiers to form the effective modifiers. A locked
modifier applies to all future key events until it is explicitly unlocked.
Lookup State
The lookup state is composed of the lookup group and the lookup modifiers, and
it is the state an Xkb-capable or Xkb-aware client should use to map a keycode
to a keysym.
Modifier
A modifier is a logical condition that is either set or unset. The modifiers
control the Shift Level selected when a key event occurs. Xkb supports the core
protocol eight modifiers (
Shift
,
Lock
,
Control
, and
Mod1
through
Mod5
), called the
real
modifiers. In addition, Xkb extends modifier flexibility by providing a set of
sixteen named virtual modifiers, each of which can be bound to any set of the
eight real modifiers.
Modifier Key
A modifier key is a key whose operation has no immediate effect, but that, for
as long as it is held down, modifies the effect of other keys. A modifier key
may be, for example, a shift key or a control key.
Modifier Definition
An Xkb modifier definition, held in an
XkbModsRec
, consists of a set of real modifiers, a set of virtual modifiers, and an
effective mask. The mask is the union of the real modifiers and the set of real
modifiers to which the virtual modifiers map; the mask cannot be explicitly
changed.
Nonkeyboard Extension Device
An input extension device that is not a keyboard. Other types of devices
supported by the input extension include, but are not limited to: mice,
tablets, touchscreens, barcode readers, button boxes, trackballs, identifier
devices, data gloves, and eye trackers.
Outlines
An outline is a list of one or more points that describes a single closed
polygon, used in the geometry specification for a keyboard.
Physical Indicator Mask
The physical indicator mask is a field in the
XkbIndicatorRec
that indicates which indicators are bound to physical LEDs on the keyboard; if
a bit is set in
phys_indicators
, then the associated indicator has a physical LED associated with it. This
field is necessary because some indicators may not have corresponding physical
LEDs on the keyboard.
Physical Symbol Keyboard Name
The
symbols
keyboard name identifies the symbols logically bound to the keys. The symbols
name is a human or application-readable description of the intended locale or
usage of the keyboard with these symbols. The
phys_symbols
keyboard name, on the other hand, identifies the symbols actually engraved on
the keyboard.
Preserved Modifier
Xkb normally consumes modifiers in determining the appropriate symbol for an
event, that is, the modifiers are not considered during any of the later stages
of event processing. For those rare occasions when a modifier
should
be considered despite having been used to look up a symbol, key types include
an optional
preserve
field. If a modifier is present in the
preserve
list, it is a preserved modifier.
Radio Group
A radio group is a set of keys whose behavior simulates a set of radio buttons.
Once a key in a radio group is pressed, it stays logically depressed until
another key in the group is pressed, at which point the previously depressed
key is logically released. Consequently, at most one key in a radio group can
be logically depressed at one time.
Real Modifier
Xkb supports the eight core protocol modifiers (
Shift
,
Lock
,
Control
, and
Mod1
through
Mod5
); these are called the
real
modifiers, as opposed to the set of sixteen named virtual modifiers that can
be bound to any set of the eight real modifiers.
Server Internal Modifiers
Modifiers that the server uses to determine the appropriate symbol for an
event; internal modifiers are normally consumed by the server.
Shift Level
One of several states (normally 2 or 3) governing which graphic character is
produced when a key is actuated.
Symbol Keyboard Name
The
symbols
keyboard name identifies the symbols logically bound to the keys. The symbols
name is a human or application-readable description of the intended locale or
usage of the keyboard with these symbols. The
phys_symbols
keyboard name, on the other hand, identifies the symbols actually engraved on
the keyboard.
Symbolic Name
Xkb supports symbolic names for most components of the keyboard extension. Most
of these symbolic names are grouped into the
names
component of the keyboard description.
State Field
The portion of a client-side core protocol event that holds the modifier,
group, and button state information pertaining to the event.
Types Name
The
types
name provides some information about the set of key types that can be
associated with the keyboard. In addition, each key type can have a name, and
each shift level of a type can have a name.
Valuator
A valuator reports a range of values for some entity, like a mouse axis, a
slider, or a dial.
Virtual Modifier
Xkb provides a set of sixteen named virtual modifiers that can be bound to any
set of the eight real modifiers. Each virtual modifier can be bound to any set
of the real modifiers (
Shift
,
Lock
,
Control,
and
Mod1
-
Mod5
).
Virtual Modifier Mapping
Xkb maintains a virtual modifier mapping, which lists the virtual modifiers
associated with each key.
Xkb-aware Client
A client application that initializes Xkb extension and is consequently bound
to an Xlib that includes the Xkb extension.
Xkb-capable Client
A client application that makes no Xkb extension Xlib calls but is bound to an
Xlib that includes the Xkb extension.
Xkb-unaware Client
A client application that makes no Xkb extension Xlib calls and is bound to an
Xlib that does not include the Xkb extension.