Description of problem: An attempt to use redhat-config-xfree86 results in the following traceback: Traceback (most recent call last): File "/usr/share/redhat-config-xfree86/xconf.py", line 1091, in ? xconfig = generate_xconfig(hardware_state) File "/usr/share/redhat-config-xfree86/xconf.py", line 837, in generate_xconfig get_option(corekb, "XkbRules").val = keyboard["rules"] File "/usr/lib/python2.2/site-packages/rhpl/keyboard.py", line 76, in __getitem__ raise KeyError, "No such keyboard type %s" % (table,) KeyError: No such keyboard type emacs2 It looks like that this Python code is trying to find a keyboard type in a wrong place, i.e. /etc/sysconfig/keyboard which holds a configuration for a _console_ keyboard, or at least is not dealing in a reasonable manner with keyboard types which do exist.
Can you attach your /etc/sysconfig/keyboard file?
Nevermind, I've worked out a fix. With redhat-config-xfree86-0.7.0-6, we default to a US keymap if the keyboard in /etc/sysconfig/keyboard is not in the list of keyboards that rhpl knows about. This avoids the traceback and should at least get X up and running. If the user doesn't want to use a US keymap, they can then run redhat-config-keyboard and select another keymap. Note that to get a keyboard in /etc/sysconfig/keyboard file that is not in rhpl's keyboard list, the user would have to use a config tool other than redhat-config-keyboard. (i.e. emacs2 keyboard is a valid console keymap but redhat-config-keyboard doesn't offer emacs2 as a choice since there's no X equivalent keymap) QA, please verify.
Here is my 'keyboard' file in its full glory KEYBOARDTYPE="pc" KEYTABLE="emacs2" and KEYTABLE may hold any of 121 map names from /lib/kbd/keymaps/i386/. Frankly I was thinking rather in terms of possible mapping of these names into something acceptable to xfree86 maybe somewhat less crude than everything we do not know into "us". Azerty keyboard "be-latin1", assuming that not recognized by X, likely does not work very well as "us". It seems that for most names a reasonable mapping should be "obvious" and leftovers could be dumped on "us". What is your opinion?
I agree that this is not the most elegant solution. However, I have more important bugs from Phoebe that need my attention. At least this solution avoids the traceback, which was my main concern. As I said, the user has to have done some manual changes to get a keyboard in /etc/sysconfig/keyboard that rhpl's keyboard list doesn't know about. 'be-latin1', by the way, is in rhpl's keyboard list, so that should work just fine, but you are right in that there are probably other keymaps that wouldn't be properly handled by this fix. But again, getting a working XF86Config file is the important thing and the user can then run redhat-config-keyboard after that.
Fix confirmed with redhat-config-xfree86-0.7.1-3.