[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: german keyboard layout



On  12 Mar, this message from Otto echoed through cyberspace:
>>> how do I configure X to use german keyboard layout?

I don't know, but read on...

>>> my XF86Config (I'm using the default potato X server) currently reads
>>> 
>>> Protocol      "Standard"
>>> XkbLayout     "de"
>>> XkbVariant    "nodeadkeys"
>>> XkbModel      "macintosh"
>>> XkbRules      "xfree86"
>>> 
>>> but this didn't help at all..
>> 
>> The only suggestion I can give here is to try "de_DE" instead of just "de".
> 
> that did't work either.. isn't anyone using a german keyboard out there?

I'm using a swiss-french keyboard with X 4.0.2, however on LinuxPPC, not
debian. So I'm not sure if your X install matches mine; anyway, here is
a mail I sent along after I finally got my keyboard working with X
4.0.2:


> Hi all,
> 
> My keyboard finally works again as expected, so I figured I'd tell the
> list so my research work ends up in the archives ;-)
> 
> My setup is still the same basically:
> 
>>> My setup:
>>>
>>> - Apple Extended Keyboard II (dmesg shows handler 3:
>>> ADB keyboard at 2, handler set to 3
>>> Detected ADB keyboard, type ISO, swapping keys.)
> 
> - a recent 2.2 kernel (to get the new input stuff, which is enabled)
> 
>>> - XF 4.0.1 rpms from Franz (XFree86-4.0.1-0.36a)
>>> - XKB enabled
> 
> What I'm saying below works only with ADB keycodes. As far as I can
> tell, with Linux keycodes, only the 'keycodes' part of the XKB config
> needs to be changed.
> 
> Why not use Linux keycodes? Because MOL doesn't work with them.
> 
> First, a few words about how XKB works.
> 
> XKB defines a way to handle keyboards under X, via a definition of all
> aspects of a keyboard (this goes as far as specifying the physical
> appearance, so an image of the keyboard can be printed). Everything
> related to XKB can be found below /usr/X11R6/lib/X11/xkb.
> 
> A complete keyboard definition is called a keymap, and contains a few
> different components. Have a look at keymap/macintosh, as distributed
> with XF4:
> 
> // $XConsortium: macintosh /main/11 1996/03/07 13:42:13 kaleb $
> // $XFree86: xc/programs/xkbcomp/keymap/macintosh,v 1.1 1999/05/23 05:27:51 dawes Exp $
> default xkb_keymap "macintosh" {
>     xkb_keycodes        { include "macintosh"                           };
>     xkb_types           { include "default"                             };
>     xkb_compatibility   { include "default"                             };
>     xkb_symbols         { include "macintosh/us(extended)"              };
>     xkb_geometry        { include "macintosh"                           };
> };
> 
> So a keymap has these five components. The keycodes tell what numeric
> code the keyboard (& driver) send back on a specific keypress. The
> reference is the geographical location of the keys on the keyboard. Some
> keys have names (like <ESC>, <TAB>), others coordinates like <AE01>
> (first alpha key in the top (5th = 'E') row, etc.
> 
> Since we're using ADB keycodes, and XF4 uses Linux keycodes by default,
> the keycode part needs to be specified. I started with
> keycodes/macintosh, but made these changes:
> 
>> In keycodes/macintosh, besides the usual definition of keycode 18, the
>> following swap:
> 
> +    <LSGT> = 18;
> 
>> -    <LMTA> = 66;
>> +    <LMTA> = 63;
>> -    <LALT> = 63;
>> +    <LALT> = 66;
> 
> That's because ALT and META are swapped, and the key between left shift
> and 'y' (or 'z') is missing.
> 
>> Otherwise, in keymap/macintosh:
>>
>> -    xkb_symbols                { include "macintosh/us(extended)" };
>> +    xkb_symbols                { include "macintosh/fr" };
> 
> Now, this is the symbols part of the map, which defines what letter,
> number or other symbol a specific key sends back, depending on the
> modifier keys that are depressed.
> 
> The symbols/macintosh/us file is standard XF4; the fr part is not.
> Therefore I used the us part, but with the following changes to get the
> modifier keys to work as expected:
> 
>>     key <LMTA> {       [  Meta_L               ]       };
>>     key <LFSH> {       [  Shift_L              ]       };
>>     key <LCTL> {       [  Control_L            ]       };
>>     key <LALT> {       [  Mode_switch          ]       };
>>     key <RMTA> {       [  Meta_R               ]       };
>>     key <RTSH> {       [  Shift_R              ]       };
>>     key <RCTL> {       [  Control_R            ]       };
>>     key <RALT> {       [  Alt_R                ]       };
>> and
>>     modifier_map Shift  { Shift_L,   Shift_R   };
>>     modifier_map Lock   { Caps_Lock            };
>>     modifier_map Control{ Control_L, Control_R };
>>     modifier_map Mod1   { Meta_L, Meta_R       };
>>     modifier_map Mod3   { Mode_switch          };
> 
> Now, since I don't have a us keyboard, but rather Swiss-French, I
> changed the 'wrong' keys with xmodmap (since I always had that part
> working ok). However, there is no problem (and that's the better way),
> to add these changes in symbols/macintosh as well, maybe by adding a
> separate file. Keep in mind however, that that file needs to be added to
> symbols.dir.
> 
> Now, for XF86config:
> 
> For some reason, specifying the complete macintosh keymap didn't work.
> Therefore, I specified the components I needed to change (keycodes and
> symbols):
> 
> Section "InputDevice"
>         Identifier      "Keyboard0"
>         Driver          "keyboard"
>         Option          "XkbModel"      "macintosh_old"
>         Option          "XkbKeycodes"   "macintosh"
>         Option          "XkbSymbols"    "macintosh/us(extended)"
> EndSection
> 
> As you can see, the five components in the keymap/macintosh file have
> their equivalent XFree options. Remember that "XkbModel" "macintosh_old"
> selects ADB keycodes; but I don't know what that exactly means for XF4.
> Anybody care to comment?
> 
> With this in place, everything works as expected, with these exceptions:
> 
> - the us symbols are active while not logged in, that is in xdm's login
>   screen. The solution is to modify the symbols/macintosh/us part,
>   instead of relying on xmodmap.
> 
> - the 'Apple' key doesn't work for switching back to console. I'll hunt
>   that down ASAP.
> 
> Have fun


Not sure you can make any sense out of that, but hey... ;-)

Michel

-------------------------------------------------------------------------
Michel Lanners                 |  " Read Philosophy.  Study Art.
23, Rue Paul Henkes            |    Ask Questions.  Make Mistakes.
L-1710 Luxembourg              |
email   mlan@cpu.lu            |
http://www.cpu.lu/~mlan        |                     Learn Always. "



Reply to: