What is xkb linux
Last updated: April 1, 2026
Key Facts
- XKB is part of the X11 windowing system and controls keyboard configuration at the operating system level
- It supports multiple keyboard layouts that can be switched between without restarting
- XKB uses configuration files stored in /usr/share/X11/xkb/ to define key mappings and layouts
- Wayland, the modern display server alternative to X11, uses different keyboard handling mechanisms
- XKB allows creation of custom keyboard shortcuts, dead keys, and compose sequences
Overview
XKB, the X Keyboard Extension, is a fundamental component of Linux and Unix systems that manages how keyboards interact with the X11 display server. It provides a flexible framework for handling keyboard input, allowing users to customize keyboard layouts, create new key mappings, and configure complex input sequences without requiring system-level changes.
How XKB Works
XKB operates as a client-server extension to X11, storing keyboard configuration in a database of rules, models, layouts, and variants. When a user logs in, the X server loads the appropriate XKB configuration based on system settings. The system consists of several components: keycodes map physical keys to logical identifiers, types define how key combinations work, symbols assign characters to keys, and geometries describe keyboard physical layouts.
Configuration and Customization
Users can configure XKB through tools like setxkbmap command-line utility or graphical settings in desktop environments. Configuration files are organized hierarchically in /usr/share/X11/xkb/, with subdirectories for rules, keycodes, symbols, types, and compat files. This allows both system-wide and user-specific keyboard customizations. Common use cases include switching between QWERTY, DVORAK, and international layouts, or creating custom key bindings for accessibility.
Modern Alternatives
Wayland, the next-generation display server replacing X11 on many modern Linux distributions, uses libxkbcommon library which maintains compatibility with XKB configuration files while implementing keyboard handling differently. This ensures that most XKB configurations remain functional across both X11 and Wayland sessions, supporting the transition to the newer display protocol.
Related Questions
How do I change keyboard layout in Linux?
You can change keyboard layout using setxkbmap command (e.g., 'setxkbmap us' or 'setxkbmap fr') or through your desktop environment's settings. Most Linux distributions provide graphical keyboard settings in system preferences.
What is the difference between X11 and Wayland?
X11 is the legacy display server protocol used since the 1980s, while Wayland is a modern replacement designed for better security and performance. Wayland handles keyboard input differently but maintains compatibility with XKB configuration formats.
Can I create a custom keyboard layout in Linux?
Yes, you can create custom XKB layouts by editing configuration files in /usr/share/X11/xkb/symbols/ or using tools like xkb-switch. This allows mapping any key to any character or action.
More What Is in Daily Life
Also in Daily Life
More "What Is" Questions
Trending on WhatAnswers
Browse by Topic
Browse by Question Type
Sources
- Wikipedia - X Keyboard ExtensionCC-BY-SA-4.0
- FreeDesktop - libxkbcommonCC-BY-SA-3.0