The X Keyboard Extension:The X Keyboard Extension:
AcknowledgementAcknowledgement
OverviewChapter 1, Overview
Core X Protocol Support for Keyboardsthe section called “Core X Protocol Support for Keyboards”
Xkb Keyboard Extension Support for Keyboardsthe section called “Xkb Keyboard Extension Support for Keyboards”
Xkb Extension Componentsthe section called “Xkb Extension Components”Overall Xkb StructureFigure 1.1, “Overall Xkb Structure”???TITLE???the section called “Xkb Extension Components”
Groups and Shift Levelsthe section called “Groups and Shift Levels”
Radio Groupsthe section called “Radio Groups”
Client Typesthe section called “Client Types”
Compatibility With the Core Protocolthe section called “Compatibility With the Core Protocol”
Additional Protocol Errorsthe section called “Additional Protocol Errors”
Extension Library Functionsthe section called “Extension Library Functions”
Error Indicationsthe section called “Error Indications”Function Error Returns Due to Extension ProblemsTable 1.1, “Function Error Returns Due to Extension Problems”
Initialization and General Programming InformationChapter 2, Initialization and General Programming Information
Extension Header Filesthe section called “Extension Header Files”
Extension Namethe section called “Extension Name”
Determining Library Compatibilitythe section called “Determining Library Compatibility”???TITLE???XkbLibraryVersion
Initializing the Keyboard Extensionthe section called “Initializing the Keyboard Extension”???TITLE???XkbQueryExtension???TITLE???XkbOpenDisplay
Disabling the Keyboard Extensionthe section called “Disabling the Keyboard Extension”???TITLE???XkbIgnoreExtension
Protocol Errorsthe section called “Protocol Errors”Xkb Protocol ErrorsTable 2.1, “Xkb Protocol Errors”???TITLE???the section called “Protocol Errors”BadKeyboard Protocol Error resource_id ValuesTable 2.2, “BadKeyboard Protocol Error resource_id Values”
Display and Device Specifications in Function Callsthe section called “Display and Device Specifications in Function Calls”???TITLE???the section called “Display and Device Specifications in Function Calls”
Data StructuresChapter 3, Data Structures
Allocating Xkb Data Structuresthe section called “Allocating Xkb Data Structures”
Adding Data and Editing Data Structuresthe section called “Adding Data and Editing Data Structures”
Making Changes to the Server’s Keyboard Descriptionthe section called “Making Changes to the Server’s Keyboard Description”
Tracking Keyboard Changes in the Serverthe section called “Tracking Keyboard Changes in the Server”
Freeing Data Structuresthe section called “Freeing Data Structures”
Xkb EventsChapter 4, Xkb Events
Xkb Event Typesthe section called “Xkb Event Types”Xkb Event TypesTable 4.1, “Xkb Event Types”
Xkb Event Data Structuresthe section called “Xkb Event Data Structures”???TITLE???the section called “Xkb Event Data Structures”
Selecting Xkb Eventsthe section called “Selecting Xkb Events”???TITLE???XkbSelectEvents???TITLE???XkbSelectEventDetails
Event Masksthe section called “Event Masks”XkbSelectEvents Mask ConstantsTable 4.2, “XkbSelectEvents Mask Constants”
Unified Xkb Event Typethe section called “Unified Xkb Event Type”
Keyboard StateChapter 5, Keyboard StateXkb StateFigure 5.1, “Xkb State”
Keyboard State Descriptionthe section called “Keyboard State Description”???TITLE???the section called “Keyboard State Description”???TITLE???the section called “Keyboard State Description”???TITLE???the section called “Keyboard State Description”???TITLE???the section called “Keyboard State Description”???TITLE???the section called “Keyboard State Description”???TITLE???the section called “Keyboard State Description”???TITLE???the section called “Keyboard State Description”???TITLE???the section called “Keyboard State Description”
Changing the Keyboard Statethe section called “Changing the Keyboard State”
Changing Modifiersthe section called “Changing Modifiers”Real Modifier MasksTable 5.1, “Real Modifier Masks”???TITLE???XkbLockModifiers???TITLE???XkbLatchModifiers
Changing Groupsthe section called “Changing Groups”Symbolic Group NamesTable 5.2, “Symbolic Group Names”???TITLE???XkbLockGroup???TITLE???XkbLatchGroup
Determining Keyboard Statethe section called “Determining Keyboard State”???TITLE???XkbGetState
Tracking Keyboard Statethe section called “Tracking Keyboard State”XkbStateNotify Event Detail MasksTable 5.3, “XkbStateNotify Event Detail Masks”
Complete Keyboard DescriptionChapter 6, Complete Keyboard Description
The XkbDescRec Structurethe section called “The XkbDescRec Structure”XkbDescRec Component ReferencesTable 6.1, “XkbDescRec Component References”Mask Bits for XkbDescRecTable 6.2, “Mask Bits for XkbDescRec”
Obtaining a Keyboard Description from the Serverthe section called “Obtaining a Keyboard Description from the Server”???TITLE???XkbGetKeyboard
Tracking Changes to the Keyboard Description in the Serverthe section called “Tracking Changes to the Keyboard Description in the Server”
Allocating and Freeing a Keyboard Descriptionthe section called “Allocating and Freeing a Keyboard Description”???TITLE???XkbAllocKeyboard???TITLE???XkbFreeKeyboard
Virtual ModifiersChapter 7, Virtual Modifiers
Virtual Modifier Names and Masksthe section called “Virtual Modifier Names and Masks”
Modifier Definitionsthe section called “Modifier Definitions”
Binding Virtual Modifiers to Real Modifiersthe section called “Binding Virtual Modifiers to Real Modifiers”
Virtual Modifier Key Mappingthe section called “Virtual Modifier Key Mapping”???TITLE???XkbVirtualModsToReal
Inactive Modifier Setsthe section called “Inactive Modifier Sets”
Conventionsthe section called “Conventions”
Examplethe section called “Example”
IndicatorsChapter 8, Indicators
Indicator Namesthe section called “Indicator Names”
Indicator Data Structuresthe section called “Indicator Data Structures”
XkbIndicatorRecthe section called “XkbIndicatorRec”
XkbIndicatorMapRecthe section called “XkbIndicatorMapRec”
XkbIndicatorMapRec flags fieldthe section called “XkbIndicatorMapRec flags field”XkbIndicatorMapRec flags FieldTable 8.1, “XkbIndicatorMapRec flags Field”
XkbIndicatorMapRec which_groups and groups fieldsthe section called “XkbIndicatorMapRec which_groups and groups fields”XkbIndicatorMapRec which_groups and groups, Keyboard Drives IndicatorTable 8.2, “XkbIndicatorMapRec which_groups and groups, Keyboard Drives Indicator”XkbIndicatorMapRec which_groups and groups, Indicator Drives KeyboardTable 8.3, “XkbIndicatorMapRec which_groups and groups, Indicator Drives Keyboard”
XkbIndicatorMapRec which_mods and mods fieldsthe section called “XkbIndicatorMapRec which_mods and mods fields”XkbIndicatorMapRec which_mods and mods, Keyboard Drives IndicatorTable 8.4, “XkbIndicatorMapRec which_mods and mods, Keyboard Drives Indicator”XkbIndicatorMapRec which_mods and mods, Indicator Drives KeyboardTable 8.5, “XkbIndicatorMapRec which_mods and mods, Indicator Drives Keyboard”
XkbIndicatorMapRec ctrls fieldthe section called “XkbIndicatorMapRec ctrls field”
Getting Information About Indicatorsthe section called “Getting Information About Indicators”
Getting Indicator Statethe section called “Getting Indicator State”???TITLE???XkbGetIndicatorState
Getting Indicator Information by Indexthe section called “Getting Indicator Information by Index”???TITLE???XkbGetIndicatorMap
Getting Indicator Information by Namethe section called “Getting Indicator Information by Name”???TITLE???XkbGetNamedDeviceIndicator???TITLE???XkbGetNamedIndicator
Changing Indicator Maps and Statethe section called “Changing Indicator Maps and State”
Effects of Explicit Changes on Indicatorsthe section called “Effects of Explicit Changes on Indicators”
Changing Indicator Maps by Indexthe section called “Changing Indicator Maps by Index”???TITLE???XkbSetIndicatorMap
Changing Indicator Maps by Namethe section called “Changing Indicator Maps by Name”???TITLE???XkbSetNamedDeviceIndicator???TITLE???XkbSetNamedIndicator
The XkbIndicatorChangesRec Structurethe section called “The XkbIndicatorChangesRec Structure”???TITLE???XkbChangeIndicators
Tracking Changes to Indicator State or Mapthe section called “Tracking Changes to Indicator State or Map”???TITLE???XkbNoteIndicatorChanges???TITLE???XkbGetIndicatorChanges
Allocating and Freeing Indicator Mapsthe section called “Allocating and Freeing Indicator Maps”???TITLE???XkbAllocIndicatorMaps???TITLE???XkbFreeIndicatorMaps
BellsChapter 9, Bells
Bell Namesthe section called “Bell Names”Predefined BellsTable 9.1, “Predefined Bells”
Audible Bellsthe section called “Audible Bells”
Bell Functionsthe section called “Bell Functions”Bell Sounding and Bell Event GeneratingTable 9.2, “Bell Sounding and Bell Event Generating”
Generating Named Bellsthe section called “Generating Named Bells”???TITLE???XkbDeviceBell???TITLE???XkbBell
Generating Named Bell Eventsthe section called “Generating Named Bell Events”???TITLE???XkbDeviceBellEvent???TITLE???XkbBellEvent
Forcing a Server-Generated Bellthe section called “Forcing a Server-Generated Bell”???TITLE???XkbForceDeviceBell???TITLE???XkbForceBell
Detecting Bellsthe section called “Detecting Bells”
Keyboard ControlsChapter 10, Keyboard ControlsXkb Keyboard ControlsTable 10.1, “Xkb Keyboard Controls”
Controls that Enable and Disable Other Controlsthe section called “Controls that Enable and Disable Other Controls”
The EnabledControls Controlthe section called “The EnabledControls Control”???TITLE???XkbChangeEnabledControls
The AutoReset Controlthe section called “The AutoReset Control”???TITLE???XkbGetAutoResetControls???TITLE???XkbSetAutoResetControls
Control for Bell Behaviorthe section called “Control for Bell Behavior”
The AudibleBell Controlthe section called “The AudibleBell Control”
Controls for Repeat Key Behaviorthe section called “Controls for Repeat Key Behavior”
The PerKeyRepeat Controlthe section called “The PerKeyRepeat Control”
The RepeatKeys Controlthe section called “The RepeatKeys Control”???TITLE???XkbGetAutoRepeatRate???TITLE???XkbSetAutoRepeatRate
The DetectableAutorepeat Controlthe section called “The DetectableAutorepeat Control”???TITLE???XkbGetDetectableAutorepeat???TITLE???XkbSetDetectableAutorepeat
Controls for Keyboard Overlays (Overlay1 and Overlay2 Controls)the section called “Controls for Keyboard Overlays (Overlay1 and Overlay2 Controls)”
Controls for Using the Mouse from the Keyboardthe section called “Controls for Using the Mouse from the Keyboard”
The MouseKeys Controlthe section called “The MouseKeys Control”
The MouseKeysAccel Controlthe section called “The MouseKeysAccel Control”MouseKeysAccel FieldsTable 10.2, “MouseKeysAccel Fields”
Absolute Pointer Motionthe section called “Absolute Pointer Motion”
Relative Pointer Motionthe section called “Relative Pointer Motion”MouseKeys AccelerationFigure 10.1, “MouseKeys Acceleration”
Controls for Better Keyboard Access by Physically Impaired Personsthe section called “Controls for Better Keyboard Access by Physically Impaired Persons”
The AccessXKeys Controlthe section called “The AccessXKeys Control”
The AccessXTimeout Controlthe section called “The AccessXTimeout Control”???TITLE???XkbGetAccessXTimeout???TITLE???XkbSetAccessXTimeout
The AccessXFeedback Controlthe section called “The AccessXFeedback Control”AccessXFeedback MasksTable 10.3, “AccessXFeedback Masks”
AccessXNotify Eventsthe section called “AccessXNotify Events”AccessXNotify EventsTable 10.4, “AccessXNotify Events”
Selecting for AccessX Eventsthe section called “Selecting for AccessX Events”AccessXNotify Event DetailsTable 10.5, “AccessXNotify Event Details”
StickyKeys, RepeatKeys, and MouseKeys Eventsthe section called “StickyKeys, RepeatKeys, and MouseKeys Events”
The SlowKeys Controlthe section called “The SlowKeys Control”???TITLE???XkbGetSlowKeysDelay???TITLE???XkbSetSlowKeysDelay
The BounceKeys Controlthe section called “The BounceKeys Control”???TITLE???XkbGetBounceKeysDelay???TITLE???XkbSetBounceKeysDelay
The StickyKeys Controlthe section called “The StickyKeys Control”
StickyKeys Optionsthe section called “StickyKeys Options”???TITLE???XkbGetStickyKeysOptions???TITLE???XkbSetStickyKeysOptions
Controls for General Keyboard Mappingthe section called “Controls for General Keyboard Mapping”
The GroupsWrap Controlthe section called “The GroupsWrap Control”
The IgnoreLockMods Controlthe section called “The IgnoreLockMods Control”???TITLE???XkbSetIgnoreLockMods
The IgnoreGroupLock Controlthe section called “The IgnoreGroupLock Control”
The InternalMods Controlthe section called “The InternalMods Control”???TITLE???XkbSetServerInternalMods
The XkbControlsRec Structurethe section called “The XkbControlsRec Structure”Xkb ControlsTable 10.6, “Xkb Controls”Controls Mask BitsTable 10.7, “Controls Mask Bits”
the section called “”
mk_dflt_btnthe section called “mk_dflt_btn”
num_groupsthe section called “num_groups”
groups_wrapthe section called “groups_wrap”GroupsWrap options (groups_wrap field)Table 10.8, “GroupsWrap options (groups_wrap field)”
internalthe section called “internal”
ignore_lockthe section called “ignore_lock”
enabled_ctrlsthe section called “enabled_ctrls”
repeat_delay and repeat_intervalthe section called “repeat_delay and repeat_interval”
slow_keys_delaythe section called “slow_keys_delay”
debounce_delaythe section called “debounce_delay”
mk_delay, mk_interval, mk_time_to_max, mk_max_speed, and mk_curvethe section called “mk_delay, mk_interval, mk_time_to_max, mk_max_speed, and mk_curve”
ax_optionsthe section called “ax_options”Access X Enable/Disable Bits (ax_options field)Table 10.9, “Access X Enable/Disable Bits (ax_options field)”
ax_timeout, axt_opts_mask, axt_opts_values, axt_ctrls_mask, and axt_ctrls_valuesthe section called “ax_timeout, axt_opts_mask, axt_opts_values, axt_ctrls_mask, and axt_ctrls_values”
per_key_repeatthe section called “per_key_repeat”
Querying Controlsthe section called “Querying Controls”???TITLE???XkbGetControls
Changing Controlsthe section called “Changing Controls”???TITLE???XkbSetControls
The XkbControlsChangesRec Structurethe section called “The XkbControlsChangesRec Structure”???TITLE???XkbChangeControls
Tracking Changes to Keyboard Controlsthe section called “Tracking Changes to Keyboard Controls”???TITLE???XkbNoteControlsChanges???TITLE???XkbGetControlsChanges
Allocating and Freeing an XkbControlsRecthe section called “Allocating and Freeing an XkbControlsRec”???TITLE???XkbAllocControls???TITLE???XkbFreeControls
The Miscellaneous Per-client Controlsthe section called “The Miscellaneous Per-client Controls”???TITLE???XkbGetPerClientControls???TITLE???XkbSetPerClientControls
X Library ControlsChapter 11, X Library Controls
Controls Affecting Keycode-to-String Translationthe section called “Controls Affecting Keycode-to-String Translation”
ForceLatin1Lookupthe section called “ForceLatin1Lookup”
ConsumeLookupModsthe section called “ConsumeLookupMods”
AlwaysConsumeShiftAndLockthe section called “AlwaysConsumeShiftAndLock”
Controls Affecting Compose Processingthe section called “Controls Affecting Compose Processing”
ConsumeKeysOnComposeFailthe section called “ConsumeKeysOnComposeFail”
ComposeLEDthe section called “ComposeLED”
BeepOnComposeFailthe section called “BeepOnComposeFail”
Controls Effecting Event Deliverythe section called “Controls Effecting Event Delivery”
IgnoreNewKeyboardsthe section called “IgnoreNewKeyboards”
Manipulating the Library Controlsthe section called “Manipulating the Library Controls”Library Control MasksTable 11.1, “Library Control Masks”
Determining Which Library Controls are Implementedthe section called “Determining Which Library Controls are Implemented”???TITLE???XkbXlibControlsImplemented
Determining the State of the Library Controlsthe section called “Determining the State of the Library Controls”???TITLE???XkbGetXlibControls
Changing the State of the Library Controlsthe section called “Changing the State of the Library Controls”???TITLE???XkbSetXlibControls
Interpreting Key EventsChapter 12, Interpreting Key Events
Effects of Xkb on the Core X Librarythe section called “Effects of Xkb on the Core X Library”
Effects of Xkb on Event Statethe section called “Effects of Xkb on Event State”
Effects of Xkb on MappingNotify Eventsthe section called “Effects of Xkb on MappingNotify Events”
X Library Functions Affected by Xkbthe section called “X Library Functions Affected by Xkb”???TITLE???the section called “X Library Functions Affected by Xkb”???TITLE???the section called “X Library Functions Affected by Xkb”???TITLE???the section called “X Library Functions Affected by Xkb”???TITLE???the section called “X Library Functions Affected by Xkb”???TITLE???the section called “X Library Functions Affected by Xkb”???TITLE???the section called “X Library Functions Affected by Xkb”
Xkb Event and Keymap Functionsthe section called “Xkb Event and Keymap Functions”???TITLE???XkbKeycodeToKeysym???TITLE???XkbKeysymToModifiers???TITLE???XkbLookupKeySym???TITLE???XkbLookupKeyBinding???TITLE???XkbTranslateKeySym???TITLE???XkbRefreshKeyboardMapping???TITLE???XkbTranslateKeyCode
Keyboard GeometryChapter 13, Keyboard GeometryRotated Keyboard SectionsFigure 13.1, “Rotated Keyboard Sections”???TITLE???Chapter 13, Keyboard GeometryKeyboard with Four SectionsFigure 13.2, “Keyboard with Four Sections”
Shapes and Outlinesthe section called “Shapes and Outlines”
Sectionsthe section called “Sections”Rows in a SectionFigure 13.3, “Rows in a Section”
Rows and Keysthe section called “Rows and Keys”
Doodadsthe section called “Doodads”Doodad TypesTable 13.1, “Doodad Types”
Overlay Rows and Overlay Keysthe section called “Overlay Rows and Overlay Keys”
Drawing a Keyboard Representationthe section called “Drawing a Keyboard Representation”
Geometry Data Structuresthe section called “Geometry Data Structures”Xkb Geometry Data StructuresFigure 13.4, “Xkb Geometry Data Structures”Xkb Geometry Data Structures (Doodads)Figure 13.5, “Xkb Geometry Data Structures (Doodads)”Xkb Geometry Data Structures (Overlays)Figure 13.6, “Xkb Geometry Data Structures (Overlays)”
DoodadRec Structuresthe section called “DoodadRec Structures”
Getting Keyboard Geometry From the Serverthe section called “Getting Keyboard Geometry From the Server”???TITLE???XkbGetGeometry???TITLE???XkbGetNamedGeometry
Using Keyboard Geometrythe section called “Using Keyboard Geometry”Key Surface, Shape Outlines, and Bounding BoxFigure 13.7, “Key Surface, Shape Outlines, and Bounding Box”???TITLE???XkbComputeShapeTop???TITLE???XkbComputeShapeBounds???TITLE???XkbComputeRowBounds???TITLE???XkbComputeSectionBounds???TITLE???XkbFindOverlayForKey
Adding Elements to a Keyboard Geometrythe section called “Adding Elements to a Keyboard Geometry”???TITLE???XkbAddGeomProperty???TITLE???XkbAddGeomKeyAlias???TITLE???XkbAddGeomColor???TITLE???XkbAddGeomOutline???TITLE???XkbAddGeomShape???TITLE???XkbAddGeomKey???TITLE???XkbAddGeomSection???TITLE???XkbAddGeomRow???TITLE???XkbAddGeomDoodad???TITLE???XkbAddGeomOverlay???TITLE???XkbAddGeomOverlayRow???TITLE???XkbAddGeomOverlayKey
Allocating and Freeing Geometry Componentsthe section called “Allocating and Freeing Geometry Components”???TITLE???XkbAllocGeomOutlines???TITLE???XkbFreeGeomOutlines???TITLE???XkbAllocGeomKeys???TITLE???XkbFreeGeomKeys???TITLE???XkbAllocGeomProps???TITLE???XkbFreeGeomProperties???TITLE???XkbAllocGeomKeyAliases???TITLE???XkbFreeGeomKeyAliases???TITLE???XkbAllocGeomColors???TITLE???XkbFreeGeomColors???TITLE???XkbAllocGeomPoints???TITLE???XkbFreeGeomPoints???TITLE???XkbAllocGeomShapes???TITLE???XkbFreeGeomShapes???TITLE???XkbAllocGeomSections???TITLE???XkbFreeGeomSections???TITLE???XkbAllocGeomRows???TITLE???XkbFreeGeomRows???TITLE???XkbAllocGeomOverlays???TITLE???XkbFreeGeomOverlays???TITLE???XkbAllocGeomOverlayRows???TITLE???XkbFreeGeomOverlayRows???TITLE???XkbAllocGeomOverlayKeys???TITLE???XkbFreeGeomOverlayKeys???TITLE???XkbAllocGeomDoodads???TITLE???XkbAllocGeomSectionDoodads???TITLE???XkbFreeGeomDoodads???TITLE???XkbAllocGeometry???TITLE???XkbFreeGeometry
Xkb Keyboard MappingChapter 14, Xkb Keyboard Mapping
Notation and Terminologythe section called “Notation and Terminology”Shift Levels and GroupsFigure 14.1, “Shift Levels and Groups”
Core Implementationthe section called “Core Implementation”
Xkb Implementationthe section called “Xkb Implementation”
Getting Map Components from the Serverthe section called “Getting Map Components from the Server”???TITLE???XkbGetMapXkb Mapping Component Masks and Convenience FunctionsTable 14.1, “Xkb Mapping Component Masks and Convenience Functions”???TITLE???XkbGetUpdatedMap
Changing Map Components in the Serverthe section called “Changing Map Components in the Server”???TITLE???XkbSetMap
The XkbMapChangesRec Structurethe section called “The XkbMapChangesRec Structure”XkbMapChangesRec MasksTable 14.2, “XkbMapChangesRec Masks”???TITLE???XkbChangeMap
Tracking Changes to Map Componentsthe section called “Tracking Changes to Map Components”
Allocating and Freeing Client and Server Mapsthe section called “Allocating and Freeing Client and Server Maps”
Allocating an Empty Client Mapthe section called “Allocating an Empty Client Map”???TITLE???XkbAllocClientMapXkbAllocClientMap MasksTable 14.3, “XkbAllocClientMap Masks”
Freeing a Client Mapthe section called “Freeing a Client Map”???TITLE???XkbFreeClientMap
Allocating an Empty Server Mapthe section called “Allocating an Empty Server Map”???TITLE???XkbAllocServerMapXkbAllocServerMap MasksTable 14.4, “XkbAllocServerMap Masks”
Freeing a Server Mapthe section called “Freeing a Server Map”???TITLE???XkbFreeServerMap
Xkb Client Keyboard MappingChapter 15, Xkb Client Keyboard MappingXkb Client MapFigure 15.1, “Xkb Client Map”
The XkbClientMapRec Structurethe section called “The XkbClientMapRec Structure”
Key Typesthe section called “Key Types”Example Key TypeTable 15.1, “Example Key Type”
The Canonical Key Typesthe section called “The Canonical Key Types”
ONE_LEVELthe section called “ONE_LEVEL”
TWO_LEVELthe section called “TWO_LEVEL”
ALPHABETICthe section called “ALPHABETIC”
KEYPADthe section called “KEYPAD”
Initializing the Canonical Key Types in a New Client Mapthe section called “Initializing the Canonical Key Types in a New Client Map”???TITLE???XkbInitCanonicalKeyTypes
Getting Key Types from the Serverthe section called “Getting Key Types from the Server”???TITLE???XkbGetKeyTypes
Changing the Number of Levels in a Key Typethe section called “Changing the Number of Levels in a Key Type”???TITLE???XkbResizeKeyType
Copying Key Typesthe section called “Copying Key Types”???TITLE???XkbCopyKeyType???TITLE???XkbCopyKeyTypes
Key Symbol Mapthe section called “Key Symbol Map”
Per-Key Key Type Indicesthe section called “Per-Key Key Type Indices”???TITLE???XkbKeyTypeIndex???TITLE???XkbKeyType
Per-Key Group Informationthe section called “Per-Key Group Information”group_info Range NormalizationTable 15.2, “group_info Range Normalization”???TITLE???XkbKeyNumGroups???TITLE???XkbKeyGroupInfo???TITLE???XkbOutOfRangeGroupInfo???TITLE???XkbOutOfRangeGroupNumber
Key Widththe section called “Key Width”
Offset in to the Symbol Mapthe section called “Offset in to the Symbol Map”???TITLE???XkbKeyGroupsWidth???TITLE???XkbKeyGroupWidth???TITLE???XkbKeySymsOffset???TITLE???XkbKeyNumSyms???TITLE???XkbKeySymsPtr???TITLE???XkbKeySymEntry
Getting the Symbol Map for Keys from the Serverthe section called “Getting the Symbol Map for Keys from the Server”???TITLE???XkbGetKeySyms
Changing the Number of Groups and Types Bound to a Keythe section called “Changing the Number of Groups and Types Bound to a Key”???TITLE???XkbChangeTypesOfKeyGroup Index ConstantsTable 15.3, “Group Index Constants”
Changing the Number of Symbols Bound to a Keythe section called “Changing the Number of Symbols Bound to a Key”???TITLE???XkbResizeKeySyms
The Per-Key Modifier Mapthe section called “The Per-Key Modifier Map”
Getting the Per-Key Modifier Map from the Serverthe section called “Getting the Per-Key Modifier Map from the Server”???TITLE???XkbGetKeyModifierMap
Xkb Server Keyboard MappingChapter 16, Xkb Server Keyboard MappingServer Map RelationshipsFigure 16.1, “Server Map Relationships”???TITLE???Chapter 16, Xkb Server Keyboard Mapping
Key Actionsthe section called “Key Actions”???TITLE???XkbKeyHasActions???TITLE???XkbKeyNumActions???TITLE???XkbKeyActionsPtr???TITLE???XkbKeyAction???TITLE???XkbKeyActionEntry
The XkbAction Structurethe section called “The XkbAction Structure”
The XkbAnyAction Structurethe section called “The XkbAnyAction Structure”Action TypesTable 16.1, “Action Types”
Actions for Changing Modifiers’ Statethe section called “Actions for Changing Modifiers’ State”Modifier Action TypesTable 16.2, “Modifier Action Types”Modifier Action FlagsTable 16.3, “Modifier Action Flags”???TITLE???XkbModActionVMods???TITLE???XkbSetModActionVMods
Actions for Changing Group Statethe section called “Actions for Changing Group State”Group Action TypesTable 16.4, “Group Action Types”Group Action FlagsTable 16.5, “Group Action Flags”???TITLE???XkbSAGroup???TITLE???XkbSASetGroup
Actions for Moving the Pointerthe section called “Actions for Moving the Pointer”Pointer Action TypesTable 16.6, “Pointer Action Types”???TITLE???XkbPtrActionX???TITLE???XkbPtrActionY???TITLE???XkbSetPtrActionX???TITLE???XkbSetPtrActionY
Actions for Simulating Pointer Button Press and Releasethe section called “Actions for Simulating Pointer Button Press and Release”Pointer Button Action TypesTable 16.7, “Pointer Button Action Types”Pointer Button Action FlagsTable 16.8, “Pointer Button Action Flags”
Actions for Changing the Pointer Button Simulatedthe section called “Actions for Changing the Pointer Button Simulated”Pointer Default FlagsTable 16.9, “Pointer Default Flags”???TITLE???XkbSAPtrDfltValue???TITLE???XkbSASetPtrDfltValue
Actions for Locking Modifiers and Groupthe section called “Actions for Locking Modifiers and Group”ISO Action Flags when XkbSA_ISODfltIsGroup is SetTable 16.10, “ISO Action Flags when XkbSA_ISODfltIsGroup is Set”ISO Action Flags when XkbSA_ISODfltIsGroup is Not SetTable 16.11, “ISO Action Flags when XkbSA_ISODfltIsGroup is Not Set”ISO Action Affect Field ValuesTable 16.12, “ISO Action Affect Field Values”
Actions for Changing the Active Screenthe section called “Actions for Changing the Active Screen”Switch Screen Action FlagsTable 16.13, “Switch Screen Action Flags”???TITLE???XkbSAScreen???TITLE???XkbSASetScreen
Actions for Changing Boolean Controls Statethe section called “Actions for Changing Boolean Controls State”Controls Action TypesTable 16.14, “Controls Action Types”Control Action FlagsTable 16.15, “Control Action Flags”???TITLE???XkbActionCtrls???TITLE???XkbSAActionSetCtrls
Actions for Generating Messagesthe section called “Actions for Generating Messages”Message Action FlagsTable 16.16, “Message Action Flags”
Detecting Key Action Messagesthe section called “Detecting Key Action Messages”
Actions for Generating a Different Keycodethe section called “Actions for Generating a Different Keycode”???TITLE???XkbSARedirectVModsMask???TITLE???XkbSARedirectSetVModsMask???TITLE???XkbSARedirectVMods???TITLE???XkbSARedirectSetVMods
Actions for Generating DeviceButtonPress and DeviceButtonReleasethe section called “Actions for Generating DeviceButtonPress and DeviceButtonRelease”Device Button Action TypesTable 16.17, “Device Button Action Types”Device Button Action FlagsTable 16.18, “Device Button Action Flags”
Actions for Simulating Events from Device Valuatorsthe section called “Actions for Simulating Events from Device Valuators”Device Valuator v<n>_what High Bits ValuesTable 16.19, “Device Valuator v<n>_what High Bits Values”
Obtaining Key Actions for Keys from the Serverthe section called “Obtaining Key Actions for Keys from the Server”???TITLE???XkbGetKeyActions
Changing the Number of Actions Bound to a Keythe section called “Changing the Number of Actions Bound to a Key”???TITLE???XkbResizeKeyActions
Key Behaviorthe section called “Key Behavior”
Radio Groupsthe section called “Radio Groups”
The XkbBehavior Structurethe section called “The XkbBehavior Structure”Key BehaviorsTable 16.20, “Key Behaviors”
Obtaining Key Behaviors for Keys from the Serverthe section called “Obtaining Key Behaviors for Keys from the Server”???TITLE???XkbGetKeyBehaviors
Explicit Components—Avoiding Automatic Remapping by the Serverthe section called “Explicit Components—Avoiding Automatic Remapping by the Server”Explicit Component MasksTable 16.21, “Explicit Component Masks”
Obtaining Explicit Components for Keys from the Serverthe section called “Obtaining Explicit Components for Keys from the Server”???TITLE???XkbGetKeyExplicitComponents
Virtual Modifier Mappingthe section called “Virtual Modifier Mapping”Virtual Modifier RelationshipsFigure 16.2, “Virtual Modifier Relationships”
Obtaining Virtual Modifier Bindings from the Serverthe section called “Obtaining Virtual Modifier Bindings from the Server”???TITLE???XkbGetVirtualMods
Obtaining Per-Key Virtual Modifier Mappings from the Serverthe section called “Obtaining Per-Key Virtual Modifier Mappings from the Server”???TITLE???XkbGetKeyVirtualModMap
The Xkb Compatibility MapChapter 17, The Xkb Compatibility MapServer Interaction with Types of ClientsFigure 17.1, “Server Interaction with Types of Clients”Server Derivation of State and Keyboard Mapping ComponentsFigure 17.2, “Server Derivation of State and Keyboard Mapping Components”
The XkbCompatMap Structurethe section called “The XkbCompatMap Structure”Xkb Compatibility Data StructuresFigure 17.3, “Xkb Compatibility Data Structures”
Xkb State to Core Protocol State Transformationthe section called “Xkb State to Core Protocol State Transformation”
Core Keyboard Mapping to Xkb Keyboard Mapping Transformationthe section called “Core Keyboard Mapping to Xkb Keyboard Mapping Transformation”
Symbol Interpretations — the XkbSymInterpretRec Structurethe section called “Symbol Interpretations — the XkbSymInterpretRec Structure”Symbol Interpretation Match CriteriaTable 17.1, “Symbol Interpretation Match Criteria”
Xkb Keyboard Mapping to Core Keyboard Mapping Transformationsthe section called “Xkb Keyboard Mapping to Core Keyboard Mapping Transformations”
Getting Compatibility Map Components From the Serverthe section called “Getting Compatibility Map Components From the Server”???TITLE???XkbGetCompatMapCompatibility Map Component MasksTable 17.2, “Compatibility Map Component Masks”
Using the Compatibility Mapthe section called “Using the Compatibility Map”???TITLE???XkbUpdateMapFromCore???TITLE???XkbKeyTypesForCoreSymbols???TITLE???XkbApplyCompatMapToKey
Changing the Server’s Compatibility Mapthe section called “Changing the Server’s Compatibility Map”???TITLE???XkbSetCompatMap???TITLE???XkbAddSymInterpret
Tracking Changes to the Compatibility Mapthe section called “Tracking Changes to the Compatibility Map”
Allocating and Freeing the Compatibility Mapthe section called “Allocating and Freeing the Compatibility Map”???TITLE???XkbAllocCompatMap???TITLE???XkbFreeCompatMap
Symbolic NamesChapter 18, Symbolic Names
The XkbNamesRec Structurethe section called “The XkbNamesRec Structure”
Symbolic Names Masksthe section called “Symbolic Names Masks”Symbolic Names MasksTable 18.1, “Symbolic Names Masks”
Getting Symbolic Names From the Serverthe section called “Getting Symbolic Names From the Server”???TITLE???XkbGetNames
Changing Symbolic Names on the Serverthe section called “Changing Symbolic Names on the Server”???TITLE???XkbSetNames
the section called “”
The XkbNameChangesRec Structurethe section called “The XkbNameChangesRec Structure”XkbNameChanges FieldsTable 18.2, “XkbNameChanges Fields”???TITLE???XkbChangeNames
Tracking Name Changesthe section called “Tracking Name Changes”???TITLE???XkbNoteNameChanges???TITLE???XkbGetNameChanges
Allocating and Freeing Symbolic Namesthe section called “Allocating and Freeing Symbolic Names”???TITLE???XkbAllocNames???TITLE???XkbFreeNames
Replacing a Keyboard On the FlyChapter 19, Replacing a Keyboard On the FlyXkbNewKeyboardNotifyEvent DetailsTable 19.1, “XkbNewKeyboardNotifyEvent Details”
Server Database of Keyboard ComponentsChapter 20, Server Database of Keyboard ComponentsServer Database Keyboard ComponentsTable 20.1, “Server Database Keyboard Components”
Component Namesthe section called “Component Names”
Listing the Known Keyboard Componentsthe section called “Listing the Known Keyboard Components”???TITLE???XkbListComponents???TITLE???the section called “Listing the Known Keyboard Components”???TITLE???the section called “Listing the Known Keyboard Components”???TITLE???XkbFreeComponentList
Component Hintsthe section called “Component Hints”XkbComponentNameRec Flags BitsTable 20.2, “XkbComponentNameRec Flags Bits”
Building a Keyboard Description Using the Server Databasethe section called “Building a Keyboard Description Using the Server Database”???TITLE???XkbGetKeyboardByNameWant and Need Mask Bits and Required Names ComponentsTable 20.3, “Want and Need Mask Bits and Required Names Components”Building a New Keyboard Description from the Server DatabaseFigure 20.1, “Building a New Keyboard Description from the Server Database”XkbDescRec Components Returned for Values of Want & NeedsTable 20.4, “XkbDescRec Components Returned for Values of Want & Needs”???TITLE???XkbGetKeyboard
Attaching Xkb Actions to X Input Extension DevicesChapter 21, Attaching Xkb Actions to X Input Extension Devices
XkbDeviceInfoRecthe section called “XkbDeviceInfoRec”XkbDeviceInfoRec Mask BitsTable 21.1, “XkbDeviceInfoRec Mask Bits”
Querying Xkb Features for Non-KeyClass Input Extension Devicesthe section called “Querying Xkb Features for Non-KeyClass Input Extension Devices”???TITLE???XkbGetDeviceInfo???TITLE???XkbGetDeviceButtonActions???TITLE???XkbGetDeviceLedInfo
Allocating, Initializing, and Freeing the XkbDeviceInfoRec Structurethe section called “Allocating, Initializing, and Freeing the XkbDeviceInfoRec Structure”???TITLE???XkbAllocDeviceInfo???TITLE???XkbAllocDeviceLedInfo???TITLE???XkbAddDeviceLedInfo???TITLE???XkbResizeDeviceButtonActions???TITLE???XkbFreeDeviceInfo
Setting Xkb Features for Non-KeyClass Input Extension Devicesthe section called “Setting Xkb Features for Non-KeyClass Input Extension Devices”???TITLE???XkbSetDeviceInfo???TITLE???XkbSetDeviceButtonActions
XkbExtensionDeviceNotify Eventthe section called “XkbExtensionDeviceNotify Event”
Tracking Changes to Extension Devicesthe section called “Tracking Changes to Extension Devices”???TITLE???XkbNoteDeviceChanges???TITLE???XkbGetDeviceInfoChanges???TITLE???XkbChangeDeviceInfo
Debugging AidsChapter 22, Debugging Aids???TITLE???XkbSetDebuggingFlagsDebug Control MasksTable 22.1, “Debug Control Masks”
GlossaryGlossaryIndexIndex