Swiss-German keyboard layout for LinuxPPC

This page describes how to get a Swiss German keyboard layout under LinuxPPC 1999 (R5). It is almost an exact copy of Axel Rauschma's Page. I added some text and rewrote the whole thing for the Swiss German keyboard.

Any suggestions, comments etc. are highly appreciated at lkarrer@trash.net. If you find some errors, please mail me. (There are a few special characters which I did not know, but in general, it should be OK.)

Overview

The following sections describe how to get a SwissGerman keyboard layout for X-Windows. I assume that you have X up and running.

SwissGerman X

Installation steps

Step 1: Get key codes right.

File: /usr/X11R6/lib/X11/xkb/symbols.dir
Explanation: I got this as A hint. No idea for what it is good for.
Changes: Add this text to the file:

-------- -------- macintosh/de(extended)
-------- -------- macintosh/de_CH(extended)


Step 2: Fix keytable.

File: /usr/lib/X11/xkb/keycodes/macintosh
Explanation: This file maps keyboard codes to Tokens. For instance it says that the key code 44 generates the Token RTRN:

<RTRN> = 44;

Since European Keyboards have 1 additional Key to the US keyboards, we need to add a
Token for key #18 => the Value 18 can be found by starting the xev program which displays all mouse and keyboard events in X.
Changes: Add this line to the file:

<COIN> = 18; # extra key on european keyboards


Step 2: Fix key symbols.

Directory: /usr/lib/X11/xkb/symbols/macintosh
Explanation: The File in this directory map X key labels to key symbols. It now only contains the US symbols (file us).
For instance, says that the key labeled RTRN is to be interpreted as a Return.

key <RTRN> { [ Return ] };

We need an additional File named after the IOS countrycode for the keyboard. Eg. if you want want a Swiss German Keyboard, you will have to write a file named de_CH which contains the mappings for the spedified Language.
If you want to do it yourself, or improve mine, the hard part is guessing the standard name of each character. A good place to look for inspiration is /usr/include/X11/keysymdef.h. Also, the program recode provides precise and exact information about the mappings between the Latin1 and Mac alphabets (and hundreds of others, too). You need to restart X inorder the changes take effect.

Something goes wrong, X will use its custom keytable. Chdir to the /usr/lib/X11/xkb/symbols/macintosh directory and do xkbcomp -xkm de_CH. The Keyboard compiler will point out all errors that occur in the file.

Changes: Copy de_CH into this directory.

Step 3: Get key mapping right.

Directory: /usr/lib/X11/xkb/keymap/
Explanation: Files in this directory define the whole keyboard mapping, referring to the other beforehand mentioned files.
Changes: Edit the file, so that it looks as follows:
// $XConsortium: macintosh /main/11 1996/03/07 13:42:13 kaleb $
default xkb_keymap "macintosh" {
    xkb_keycodes        { include "macintosh"              };
    xkb_types           { include "default"                };
    xkb_compatibility   { include "default"                };
    xkb_symbols         { include "macintosh/de_CH(extended)" };
    xkb_geometry        { include "macintosh"              };
};

Step 4a.: Configure XFree.

File: /etc/X11/XF86Config
Explanation: This is the file for configuring XFree. If you use Xpmac, use 4b. You can find out which XServer (Xfree or XPmac) you are using by looking at the symbolic link /etc/X11/X. This points either to ../../usr/X11R6/bin/Xpmac or ../../usr/X11R6/bin/X86FBdev.
Changes: Find Section "Keyboard". In this section, there is a line for which you have to make sure that it is commented (if not, XFree uses the settings from the Console, but ignores anything that's not the key or the key plus shift.):
# XkbDisable

You'll have to append the following lines just before the end of the section. Uncomment any group of lines that looks similar to this one (one such group might come from Xautoconfig or Xconfigurator, another is probably commented and is meant to serve as an example):

XkbKeymap    "macintosh"
XkbKeycodes  "macintosh"
XkbTypes     "default"
XkbCompat    "default"
XkbSymbols   "de_CH(extended)"
XkbGeometry  "macintosh"

Step 4b.: Configure XPmac.

File: /usr/X11/bin/startx
Explanation: This is the script that starts X windows; the original needs to be modified to use the non-US configuration files.
Do this only if you use Xpmac! Xfree86 uses /etc/X11/XF86Config => 4a
Change the line that starts with "Xinit" to read:
Changes:
Xinit $clientargs -- /usr/bin/X11/X -kbdtype "de_CH(extended)" $serverargs

Note

More information

Try man for the following items:

More information