What is xkb linux

Last updated: April 1, 2026

Quick Answer: XKB (X Keyboard Extension) is a system for managing keyboard layouts and input methods on Linux and Unix systems using the X11 display server. It enables customization of key mappings, keyboard layouts, and input behavior.

Key Facts

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.

Sources

  1. Wikipedia - X Keyboard Extension CC-BY-SA-4.0
  2. FreeDesktop - libxkbcommon CC-BY-SA-3.0