Comment 18 for bug 297428

Revision history for this message
Bogdan Butnaru (bogdanb) wrote :

Hello Bryce,

Like you said, I'd very much like to have an “official” way of using custom keyboard configurations. Manually editing X's config files after each update is tiresome, and occasionally problematic*.

However, I'm not sure if this is a feature for X11 devs or for Gnome itself. AFAIK it's possible to set a keyboard layout that isn't in the {base|evdev}.{xml|lst} index files. (I don't remember exactly how, it involved piping output from xkbcomp to setxkbmap.)

So, technically X11/XKB supports custom keyboard layouts out of the box, it's Ubuntu that doesn't offer any option to do it. Adding it would imply modifying, at least, Gnome's keyboard layout applet (and probably the KDE equivalent), and whatever uses /etc/default/console-setup.

Since this is kind of a power-user feature, it doesn't even need any UI changes, just some way of setting the option in console-setup and GConf without confusing updates and causing a mess. It may be even possible to get away with just an Ubuntu-specific change to xkb-data, so that it merges some user-specified file (eg, /local/share/X11/xkb/...) in the /usr/share/X11/xkb/... ones on updates. This seems easier than adding a custom config file for XKB; even if that happened I think the aforementioned apps would still need updating to use it.

(* Funny anecdote: During at least one Ubuntu release update my custom keyboard config was lost, and the update scripts decided to replace my system-wide keyboard layout with some kind of Arabic (I suppose it was the first in some alphabetical ordering). Since I can't type my password in Arabic, and for some reason I couldn't change the login layout in that version of GDM, It took me a while to log-in again and fix it; I had to halt the init process at the step just before setting the keyboard layout...)

Gabor, do you apply that patch manually on each update? If there were a way to just apply it automatically on updates I wouldn't have any trouble with this bug anymore.