kbdmouse.html

Previous: secondary.txt Next: ?

This section covers powerpc(G4) specific changes required to make Debian Linux usable for students with Swiss German Keyboards, and single button mice.

Files that need attention are:

/etc/sysctl.conf /usr/X11R6/lib/X11/xkb/symbols/macintosh/de_CH

In /etc/sysctl.conf we want to have the following settings:

#dev/mac_hid/keyboard_sends_linux_keycodes=0 dev/mac_hid/mouse_button_emulation=1 dev/mac_hid/mouse_button2_keycode=125 dev/mac_hid/mouse_button3_keycode=126

Which implies that we need these:

CONFIG_ADB=y CONFIG_ADB_MACIO=y CONFIG_INPUT_ADBHID=y # CONFIG_MAC_ADBKEYCODES is not set CONFIG_MAC_EMUMOUSEBTN=y CONFIG_MAC_HID=y

in the .config for the kernel that runs on the machines for student use. I just put them in by default now for every kernel for the cluster.

NOTE: You do NOT want keyboard_sends_linux_keycodes running or you may find yourself with a completely unusable keyboard on the console. For this reason it is best to make sure that capability does not even get built into the kernel. Hence the "#" in front of "CONFIG_MAC_ADBKEYCODES" in .config.

Those sysctl.conf settings will enable you to have the second and third (non-existant) mouse buttons remapped to the keyboard such that the second mouse button is emulated by the "Command" key to the LEFT of the space bar, and the third mouse button is emulated by the "Command" key to the RIGHT of the spacebar. The "Command" key is the one with the picture of the appple and the clover leaf on it.

To obtain the characters [,],\ and others, assuming a swiss german keyboard, you will then use the RIGHT "ALT" key (also known as the option key) in combination with the shift key and the number key row below the function keys. For this to work properly you need to apply the following patch:

--- /usr/X11R6/lib/X11/xkb/symbols/macintosh/de_CH Mon Sep 17 21:33:57 2001 +++ /root/de_CH Sat Dec 29 20:16:13 2001 @@ -8,6 +8,10 @@ name[Group1]= "Swiss German Apple Extended Keyboard II"; + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods = AltGr + }; // Alphanumeric section key { [ less, greater ], [ lessthanequal, greaterthanequal ] };