Selection and indication of the XKB keyboards
The selection of an appropriate X keyboard is little messy now. The majority of users changes XF86Config entries to select desired XKB keyboard or uses various configuration programs. There are some disadvantages:
- It is necessary to manually change XF86Config file. I don't know of any widely used distribution that gives the user a complete freedom in selecting the keyboard after he/she has installed the X Window system. If the beginner mixes something up, he/she could end with a broken system that does not allow him to log in.
- The maintainers of XFree86 refuse to add new keyboards to the distribution. E.g. the "czechoslovakian" keyboard is completely broken, but when I tried to push the czech and slovak keyboard into XFree, I didn't even get an answer. The maintainers of various Linux distribution do accept them, but that means to create and maintain patches for all of them.
- The KDE users have kikbd keyboard selector, but without XKB support. The gnome users have XKB support, but the keyboard must already exist in the system.
- I don't know any system that allows simple and configurable switching between more XKB keyboards - e.g. between the US, slovak and slovak programmer one.
- No system I know of allows to define a new keyboard by the user, without the need to modify X11 configuration.
These are the reason why I decided to create a package for selecting and indicating of XKB keyboards, that does not require the user to change X11 configuration and that supports the most used graphical environments (at least partially).
The goals of the design were:
- to relieve the user of the necessity to change files belonging to the X distribution, when a new keyboard is defined
- to provide the same interface for keyboard selection, regardless of whether the keyboard is a part of X distribution or was added in some other way
- to define a method for associating supplementary information with the XKB keyboards, such as commentary, pixmap etc.
- to provide following methods for keyboard selection:
- window manager command (menu, hotkey, ...)
- simple graphical interface
- command line
- to allow automatic keyboard selection depending on the current locale
- to support system and user settings
- and the private goal was to learn a little about Xaw, KDE, Gtk, automake, autoconf etc. and to fill the holiday time, when it rains :-)
The product contains an implementation of the framework for the definition and controlling of the XKB keyboards, defines a way for adding information to XKB files and provides five simple clients - command line, Athena Widgets, Window Maker and dockable applets for KDE and Gnome panels.
Don't expect too much - the package is basically of alpha quality and did received some more thorough testing only by me on RH 6.0/6.2 with glibc 2.1 It could run on glibc 2.0 system too; I doubt someone will have success with libc5. If you try some unusual environments, please, let me know the results.
It is also possible that there will be changes of the configuration file format, names of the maps, there will be some more or less RPM packages etc. If you want a package that remains stable for months, the actual version is probably not (yet) for you.
Binary packages were created on the Red Hat Linux 6.2 system. It is possible that they won't work correctly on older systems. If this is the case, you can recompile the package yourself or use older version.
Existing files
- xkbsel-0.13.tar.gz - classical distribution. Contains a .spec file, so if your rpm supports the -t option, you can rebuild the packages from this file. Read INSTALL and README files - there are some things that must be done after the installation.
- xkbsel-0.13-1.src.rpm - rpm source package
- xkbsel-common-0.13-1.i386.rpm - RH 6.0 binary i386 rpm, containing the basic tools
- xkbsel-kde-0.13-1.i386.rpm - KDE client
- xkbsel-gnome-0.13-1.i386.rpm - Gnome client
- xkbsel-wmaker-0.13-1.i386.rpm - Window Maker client
- xkbsel-devel-0.13-1.i386.rpm - if there is some fool who would like to develop a new client, here are the required files and libraries :-)
As usual, there is NO WARRANTY, I don't provide any support and the next development will probably be very slow. If you have some comments, bugfixes etc., please send them to the address below. Especially the patches allowing to compile the package on more platforms are welcome (I have access only to RH 6.2 and partially to SuSE 6.0).
Bratislava, 9. 4. 2000
Stanislav Medunastano (AT) meduna.org