Function keys do not work
If your F<num> keys do not work, this is probably because the kernel driver for the keyboard has defaulted to using the media keys and requiring you to use the Fn key to get to the F<num> keys. To change this behaviour, you have to change a driver setting. Do the following as root:
echo 2 > /sys/module/hid_apple/parameters/fnmode
If it tells you that the file doesn't exist, you probably have an older kernel and will have to do the following instead:
echo 2 > /sys/module/hid/parameters/pb_fnmode
Place whichever command worked for you in Template:Filename to make the setting permanent.
< and > have changed place with § and ½
If the < and > are switched with the § and ½ keys, run the following command:
setxkbmap -option apple:badmap
Place that command into Template:Filename file to have it run automatically when you log in.
You can also apply the change system-wide by creating (or editing) Template:Filename as such:
Section "InputClass" Identifier "keyboard catchall" MatchIsKeyboard "true" Driver "evdev" Option "XkbOptions" "apple:badmap" EndSection
If the above approach doesn't seem to work, you can add these two lines to your Template:Filename file:
keycode 49 = less greater less greater bar brokenbar keycode 94 = section degree section degree notsign notsign
If you use a Canadian multilingual layout (where the "ù" and the "/" is switch) use this :
keycode 94 = slash backslash slash backslash bar brokenbar keycode 49 = ugrave Ugrave ugrave Ugrave notsign notsign
< and > have changed place with ^ and °
With German layout, circumflex/degree symbol and 'smaller than'/'bigger than' are changed.
To fix this, do the following:
xmodmap -e 'keycode 49 = less greater less greater bar brokenbar bar' -e 'keycode 94 = dead_circumflex degree dead_circumflex degree U2032 U2033 U2032'
Now try your keys. When it works, you may want the change permanently. So execute this:
xmodmap -pke | grep " 49" >> ~/.Xmodmap xmodmap -pke | grep " 94" >> ~/.Xmodmap
The evdev driver should produce keycodes that map to the appropriate keysyms for your media keys by default. You can confirm that by running Template:Codeline in a console window and watching the console output as you press your media keys.
For these keys to have any effect, you will have to assign actions to them. Refer to Extra Keyboard Keys in Xorg for more about that.
If you have confirmed that your media keys are not producing the correct keycodes, create or edit the Template:Filename file so that it includes these lines:
keycode 160 = XF86AudioMute keycode 176 = XF86AudioRaiseVolume keycode 174 = XF86AudioLowerVolume keycode 144 = XF86AudioPrev keycode 162 = XF86AudioPlay keycode 153 = XF86AudioNext keycode 101 = XF86MonBrightnessDown keycode 212 = XF86MonBrightnessUp keycode 204 = XF86Eject
PrintScreen and SysRq
Apple Keyboards have an F13 key instead of a PrintScreen/SysRq key. This means that Alt+SysRq sequences do not work, and application actions associated with PrintScreen (such as taking screenshots in many games that work under Wine) do not work. Both issues can be addressed by installing keyfuzz from AUR.
With keyfuzz installed, run the following command:
echo "458856 99" | /usr/sbin/keyfuzz -s -d /dev/input/by-id/usb-Apple__Inc_Apple_keyboard-event-kbd
Other versions of the Apple Aluminum Keyboard may require a slightly different device path, so adjust it as needed. You can make this change permanent by putting the command in Template:Filename.