# recognized by kernel as of 2.6.x: # these are X keycodes (xev), not kernel keycodes Stand by: keycode 223 VolUp: keycode 176 VolDn: keycode 174 Mute: keycode 160 Play: keycode 162 Back: keycode 144 Forward: keycode 153 Stop: keycode 164 LCDup: keycode 212 LCDdn: keycode 101 Wifi: keycode 242 CRT/LCD: keycode 214 # unrecognized by kernel as of 2.6.x: # using setkeycodes in /etc/rc.local will make them accessible # then X will assign its own keycodes (as above) Battery: scancode 0x87 'setkeycodes e007 ' to make it known. Eject: scancode 0x89 'setkeycodes e009 ' to make it known. Hibernate: scancode 0x8a 'setkeycodes e00a ' to make it known. MediaDirect: scancode 0x92 'setkeycodes e012 ' to make it known. setkeycodes e009 122 # e009 eject fn setkeycodes e012 130 # e012 mediadirect setkeycodes e00a 123 # e00a hibernate fn # syntax setkeycodes e.g. setkeycodes e06f 112 Since kernel 2.6 when you ask for scancodes with showkey, what you get are the keycodes "translated back" to the scancodes. This is called soft raw translation in the kernel. To see the real scancodes (e.g., e00x) add this parameter to your kernel boot line: atkbd.softraw=0 http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt Good info at Arch Forums: * http://bbs.archlinux.org/viewtopic.php?id=13607 # Xmodmap (OPTIONAL) # Assigns X keycodes to aliases used by some media apps # add xmodmap ~/.Xmodmap to .xinitrc keycode 130 = XF86AudioMedia keycode 160 = XF86AudioMute keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume keycode 162 = XF86AudioPlay keycode 144 = XF86AudioPrev keycode 153 = XF86AudioNext keycode 164 = XF86AudioStop keycode 210 = XF86Eject