General info

libxklavier is a library providing high-level API for X Keyboard Extension known as XKB. This library is indended to support XFree86 and other commercial X servers. It is useful for creating XKB-related software (layout indicators etc).

The current features are:

  • Reading XKB configuration registry information (for XFree86)
  • Configuring XKB
  • Application-defined callbacks for many XKB-related events
  • Support for per-window switching etc. Requirements:

  • Proper support of XKB on X server and X client side

  • Any version of X.Org or XFree86 4.3 or above with support of multiple layouts and base.xml/xorg.xml/xfree.xml configuration registry present


The API documentation can be found here.

Short document regarding "Why multiple layouts rock" is recommended for reading - available in PDF format and in OOo format.

Some problems of XKB (and XFree implementation) are listed here: in PDF format and in OOo format.


libxklavier is unmaintained and considered deprecated. The repository is available here:


The released files are located at GNOME web site.

The anonymous CVS repo at

X servers support

The library is designed to be usable with any X server with proper implementation of XKB extenstion. So far, it was only tested on XFree86 XKB implementation. The author is interested in supporting other X servers as well. He would be very grateful for any information/patches/feedback regarding usage of libxklavier on platforms other than XOrg/XFree86.