Library Specification
X Version 11, Release 7.7
Copyright © 1995, 1996 X Consortium Inc., Silicon Graphics Inc., Hewlett-Packard Company, Digital Equipment Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the names of the X Consortium, Silicon Graphics Inc., Hewlett-Packard Company, and Digital Equipment Corporation shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization.
Table of Contents
- Acknowledgement
- 1. Overview
- 2. Initialization and General Programming Information
- 3. Data Structures
- 4. Xkb Events
- 5. Keyboard State
- 6. Complete Keyboard Description
- 7. Virtual Modifiers
- 8. Indicators
- 9. Bells
- 10. Keyboard Controls
- Controls that Enable and Disable Other Controls
- Control for Bell Behavior
- Controls for Repeat Key Behavior
- Controls for Keyboard Overlays (Overlay1 and Overlay2 Controls)
- Controls for Using the Mouse from the Keyboard
- Controls for Better Keyboard Access by Physically Impaired Persons
- Controls for General Keyboard Mapping
- The XkbControlsRec Structure
- Querying Controls
- Changing Controls
- Tracking Changes to Keyboard Controls
- Allocating and Freeing an XkbControlsRec
- The Miscellaneous Per-client Controls
- 11. X Library Controls
- 12. Interpreting Key Events
- 13. Keyboard Geometry
- 14. Xkb Keyboard Mapping
- 15. Xkb Client Keyboard Mapping
- 16. Xkb Server Keyboard Mapping
- Key Actions
- The XkbAction Structure
- The XkbAnyAction Structure
- Actions for Changing Modifiers’ State
- Actions for Changing Group State
- Actions for Moving the Pointer
- Actions for Simulating Pointer Button Press and Release
- Actions for Changing the Pointer Button Simulated
- Actions for Locking Modifiers and Group
- Actions for Changing the Active Screen
- Actions for Changing Boolean Controls State
- Actions for Generating Messages
- Actions for Generating a Different Keycode
- Actions for Generating DeviceButtonPress and DeviceButtonRelease
- Actions for Simulating Events from Device Valuators
- Obtaining Key Actions for Keys from the Server
- Changing the Number of Actions Bound to a Key
- Key Behavior
- Explicit Components—Avoiding Automatic Remapping by the Server
- Virtual Modifier Mapping
- 17. The Xkb Compatibility Map
- 18. Symbolic Names
- 19. Replacing a Keyboard "On the Fly"
- 20. Server Database of Keyboard Components
- 21. Attaching Xkb Actions to X Input Extension Devices
- 22. Debugging Aids
- Glossary
List of Tables
- 1.1. Function Error Returns Due to Extension Problems
- 2.1. Xkb Protocol Errors
- 2.2. BadKeyboard Protocol Error resource_id Values
- 4.1. Xkb Event Types
- 4.2. XkbSelectEvents Mask Constants
- 5.1. Real Modifier Masks
- 5.2. Symbolic Group Names
- 5.3. XkbStateNotify Event Detail Masks
- 6.1. XkbDescRec Component References
- 6.2. Mask Bits for XkbDescRec
- 8.1. XkbIndicatorMapRec flags Field
- 8.2. XkbIndicatorMapRec which_groups and groups, Keyboard Drives Indicator
- 8.3. XkbIndicatorMapRec which_groups and groups, Indicator Drives Keyboard
- 8.4. XkbIndicatorMapRec which_mods and mods, Keyboard Drives Indicator
- 8.5. XkbIndicatorMapRec which_mods and mods, Indicator Drives Keyboard
- 9.1. Predefined Bells
- 9.2. Bell Sounding and Bell Event Generating
- 10.1. Xkb Keyboard Controls
- 10.2. MouseKeysAccel Fields
- 10.3. AccessXFeedback Masks
- 10.4. AccessXNotify Events
- 10.5. AccessXNotify Event Details
- 10.6. Xkb Controls
- 10.7. Controls Mask Bits
- 10.8. GroupsWrap options (groups_wrap field)
- 10.9. Access X Enable/Disable Bits (ax_options field)
- 11.1. Library Control Masks
- 13.1. Doodad Types
- 14.1. Xkb Mapping Component Masks and Convenience Functions
- 14.2. XkbMapChangesRec Masks
- 14.3. XkbAllocClientMap Masks
- 14.4. XkbAllocServerMap Masks
- 15.1. Example Key Type
- 15.2. group_info Range Normalization
- 15.3. Group Index Constants
- 16.1. Action Types
- 16.2. Modifier Action Types
- 16.3. Modifier Action Flags
- 16.4. Group Action Types
- 16.5. Group Action Flags
- 16.6. Pointer Action Types
- 16.7. Pointer Button Action Types
- 16.8. Pointer Button Action Flags
- 16.9. Pointer Default Flags
- 16.10. ISO Action Flags when XkbSA_ISODfltIsGroup is Set
- 16.11. ISO Action Flags when XkbSA_ISODfltIsGroup is Not Set
- 16.12. ISO Action Affect Field Values
- 16.13. Switch Screen Action Flags
- 16.14. Controls Action Types
- 16.15. Control Action Flags
- 16.16. Message Action Flags
- 16.17. Device Button Action Types
- 16.18. Device Button Action Flags
- 16.19. Device Valuator v<n>_what High Bits Values
- 16.20. Key Behaviors
- 16.21. Explicit Component Masks
- 17.1. Symbol Interpretation Match Criteria
- 17.2. Compatibility Map Component Masks
- 18.1. Symbolic Names Masks
- 18.2. XkbNameChanges Fields
- 19.1. XkbNewKeyboardNotifyEvent Details
- 20.1. Server Database Keyboard Components
- 20.2. XkbComponentNameRec Flags Bits
- 20.3. Want and Need Mask Bits and Required Names Components
- 20.4. XkbDescRec Components Returned for Values of Want & Needs
- 21.1. XkbDeviceInfoRec Mask Bits
- 22.1. Debug Control Masks