Stuck keys

From OLPC
Revision as of 18:06, 17 March 2008 by Mchua (talk | contribs)
Jump to navigation Jump to search
This page is about keys sticking on an XO keyboard when you don't want them to. For the X accessibility feature, see stickykeys.

It has been reported that some XOs experience sticky or broken keys.

Apparently, the left ALT key is usually affected.

Why this happens

(Stub: Please put the answer here.)

Temporary software workaround

As a (temporary?) workaround, the left ALT key can be disabled with the following commands (to be executed from the Terminal activity):

xmodmap -e "remove mod1 = Alt_L"
xmodmap -e "keycode 64 ="
xmodmap -e "keycode 133 = Alt_L Meta_L"
xmodmap -e "add mod1 = Alt_L"

In order to apply these settings on startup, the respective commands can be added to .xsession.

  • if /home/olpc/.xsession does not exist:
    • in the Terminal activity, execute the following command: cp /home/olpc/.xsession-example /home/olpc/.xsession
  • open .xsession with the following command: nano -w /home/olpc/.xsession
  • at the end, add the following lines
# remove broken Left ALT key from modifier map
xmodmap -e "remove mod1 = Alt_L"
# disable broken Left ALT key
xmodmap -e "keycode 64 ="
# replace Left ALT with Left Hand key
xmodmap -e "keycode 133 = Alt_L Meta_L"
# add the Left Hand (as Alt_L) to the modifier map
xmodmap -e "add mod1 = Alt_L"
  • save the file by hitting CTRL+X, then enter "y" to confirm

Fix: Disassembly and cleaning

This has been reported to make sticky keyboards "work flawlessly," but it involves taking your XO apart - do this at your own risk!'

Some folks have fixed the issue by removing the keyboard and cleaning under the contacts where the sticky build-up is occurring. Use rubbing alcohol or an eraser. It's certainly worth a try although the keyboard does take some disassembly to get to.

Key Codes

Other keys - such as left control key (LCTRL) - have been reported to be broken as well. Here is a list of commonly required key codes:

Key Key Code Key Designation
LCTRL 37 Control_L
LALT 64 Alt_L
ALT GR 108 [tbc]
LGRAB 133 [tbc]
RGRAB 134 [tbc]

See Also