wtogami ([info]wtogami) wrote,
@ 2008-06-19 16:02:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Keyboard Plan FUDCon Boston 2008 Hackfest
The keyboard configuration in Linux has long been a huge mess of too many different ways of doing the same thing in different places and inconsistencies.  (Please correct me if I have any details wrong.)

* Today there are two sets of keyboard layout data, kbd for the console and xkeyboard-config for X.
* /etc/sysconfig/keyboard configures only the console keyboard layout.
* When X runs, there is no connection of the console layout and X keyboard layout.
* xorg.conf can specify a layout and options to use from xkeyboard-config (an upstream package with tables).  (Fedora/RHEL doesn't use this AFAIK.)
* Or gdm reads a user-configured layout from ~/.dmrc, which can't always work because the home directory is not available in some cases before login.
* After you have logged into GNOME, gnome-settings-daemon reads an optionally configured keyboard from gconf and uses it if available.
* (Do other desktops like KDE have something else entirely?)


keyboard brainstorming

With developers together during FUDCon Boston 2008 Hackfest, Jeremy Katz, Bill Nottingham and Adam Jackson had a chance to brainstorm a plan to improve this confusing mess.

* We need to throw out the entirely separate kbd table.  Console keymap setting needs to happen from the shared xkeyboard-config.  ckbcomp from Debian exists.  Jeremy Katz is looking into adapting or rewriting it in C because there is some discomfort with the current perl implementation.
* ajax already has some code to have X  set  the keyboard layout itself.  He plans on making it happen from whatever HAL tells it, which comes from /etc/sysconfig/keyboard on Fedora

This still leaves the inconsistency of two separate user-specific keyboard layout options in ~/.dmrc and gconf.  But these at least do not (at least should not) happen if a user has not configured it.



Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…