Linuxdoc Linux Questions
Click here to ask our community of linux experts!
Custom Search
Next Previous Contents

2. Keyboard setup

2.1 Loading a keytable

You have two tools for configuring your keyboard. Under plain Linux you have loadkeys and under X11 you have xmodmap.

To try out loadkeys type one of these two commands:

loadkeys /usr/lib/kbd/keytables/dk.map 
or
loadkeys /usr/lib/kbd/keytables/dk-latin1.map

The difference between the two keymaps is that dk-latin1.map enables `dead' keys while dk.map does not. Dead keys are explained in section Dead keys and accented characters. The program loadkeys and the keymaps are part of the package kbd-0.??.tar.gz which (with differing version numbers ??) is available with all Linux distributions.

Usually loadkeys is executed at boot-time from one of the scripts under the directory /etc/rc.d/. Details vary between distributions.

(Note for non-Danish readers: Support for other languages is enabled in a similar manner. Use es.map for Spanish keyboards etc.)

Versions of XFree86 up to and including v3.1.2 will normally follow the keymap used by plain Linux, but you can modify keyboard behavior under X11 with xmodmap. Usually the X11 initialization process will run this command automatically if you have a file called .Xmodmap in your home directory.

In XFree86 v3.2 and higher you should have the following Keyboard section in your /etc/XF86Config (or /etc/X11/XF86Config) file (it should be made automatically by the program XF86Setup if you choose a Danish keytable):

Section "Keyboard"
   Protocol        "Standard"
   XkbRules        "xfree86"
   XkbModel        "pc101"
   XkbLayout       "dk"
   XkbVariant      "nodeadkeys"
EndSection

The only keyboard variant available at the moment is "nodeadkeys", but dead keys can still be made to work. See section Dead keys and accented characters for more information on this.

2.2 Getting the AltGr key to work under X11

For versions of XFree86 up to and including v3.1.2 you should edit the file /etc/XF86Config (or /etc/X11/XF86Config) and make sure the line

RightAlt    ModeShift
appears in the Keyboard section. Usually you can do this by uncommenting the appropriate line. In XFree86 v3.1.2 you can use AltGr as an alias for RightAlt.

The AltGr key should work as expected in XFree86 v3.2 and higher if you choose Danish keyboard support.

Making {, [, ] and } work under Metro-X

You can't input the characters ``{'' (<AltGr><7>), ``['' (<AltGr><8>), ``]'' (<AltGr><9>) and ``}'' (<AltGr><0>) under the Metro-X server. This bug has been observed under versions 3.1.5 and 3.1.8 of the server.

To correct this bug you have to edit the file /usr/X11R6/lib/X11/xkb/symbols/dk and change the lines

key <AE07> {    [               7,           slash      ]       };
key <AE08> {    [               8,       parenleft      ]       };
key <AE09> {    [               9,      parenright      ]       };
key <AE10> {    [               0,           equal      ]       };
to
key <AE07> {    [               7,           slash      ],
                [       braceleft,        NoSymbol      ]       };
key <AE08> {    [               8,       parenleft      ],
                [     bracketleft,        NoSymbol      ]       };
key <AE09> {    [               9,      parenright      ],
                [    bracketright,        NoSymbol      ]       };
key <AE10> {    [               0,           equal      ],
                [      braceright,        NoSymbol      ]       };

2.3 Dead keys and accented characters

Dead keys are those that do not type anything until you hit another key. Tildes and umlauts are like this by default under plain Linux if you use the dk-latin1.map keymap. This is the default behaviour for these keys under Microsoft Windows as well.

Removing dead key functionality

Invoking dead key functionality

2.4 Making $ (the dollar sign), ø (oslash) and Ø (Oslash) work

$ (the dollar sign)

There is a bug in the Danish keymaps causing the dollar sign to be accessed with <Shift><4> instead of <AltGr><4> by default. If this is a problem for you, determine what keymap you load at boot-time. You can find it by looking around in the directory /etc/rc.d/ or simply by paying attention to what happens at boot-time. On my computer the relevant keymap is called /usr/lib/kbd/keytables/dk-latin1.map. You can fix the problem by changing the line

keycode   5 = four             dollar           dollar          
in the keymap file to
keycode   5 = four             currency         dollar
and then (re-)loading the keytable as described in section Loading a keytable. Currency (dansk: ``soltegn'') is the default <Shift><4> character on a Danish keyboard.

This should fix the problem for both X11 and plain Linux.

ø (oslash) and Ø (Oslash)

In some older distributions ``ø'' and ``Ø'' appear as cent and yen. Find the line for keycode 40 in the keymap file and change it from

keycode  40 = cent              yen
to
keycode  40 = +oslash           +Ooblique

This bug appears to have been fixed in kbd-0.88.tar.gz and newer versions.

The plus signs are necessary to get Caps Lock working properly. ``Oslash'' can be used as an alias for ``Ooblique'' in kbd-0.90.tar.gz and newer versions.

You can read more about keyboard configuration at this site.


Next Previous Contents