This document describes the procedure for replacing the standard XKB configuration repository shipped with an X Window System implementation. The procedure should work for XFree86 4.3 and higher and X11R7 implementation from X.Org. Any other X server supporting so called "multiple layouts" can be powered with XKeyboardConfig in a similar way (at the moment NO known commercial X Window System implementations support "multiple layouts"). X servers which do not support "multiple layouts" can be used with XKeyboardConfig as well - but users should be aware that only one group will be accessible with each possible XKB configuration.
1. Find your current XKB configuration data directory. In most cases it is /usr/X11R6/lib/X11/xkb. This directory usually contain subdirectores: compat, compiled, geometry, keycodes, keymap, rules, semantics, symbols etc.
2. Backup your current XKB configuration data directory (for example, rename it to xkb.orig) - so you would be able to restore your original configuration in case of troubles.
3. Untar XKeyboardConfiguration tarball (tar -xzvf xkeyboard-config-0.2.tar.gz). Change to the root project directory. Run the configure script with appropriate options. There are several useful options:
--with-xkb-rules-symlink=NAME - this option creates symlinks for the rules and registry files. The default file names are base and base.xml correspondingly. Using this option allows to create symlinks for configuration files compatibility (for example, --with-xkb-rules-symlink=xfree86 creates symlinks xfree86 and xfree86.xml - so users would be able to use rules set "xfree86").
--enable-xkbcomp-symlink - creates symlink from original xkbcomp utility (usually found in /usr/X111R6/bin) to XKB configuration directory (usually it is required by XKB server). By default, this option is enabled - but user can disable it.
4. Run "make" and (as root) "make install". At that point, new /usr/X11R6/lib/X11/xkb should be created.
5. Adjust the configuration files (XF86Config, xorg.conf etc.). If you don't use the symlinks, you should use the rules set "base" (as the "XkbRules" value). If you added --with-xkb-rules-symlink option, you can use either "base" or the name of the rules symlink you created (for example, "xfree86").