Broken Touchpads, MouseKeys, and xkb->ctrls->mk_max_speed.

Michael Stone michael at
Thu May 8 23:57:28 EDT 2008

Dear devel@,

We can use Xkb/AccessX's "MouseKeys" accessibility feature to provide an
easy work-around for many of our touchpad problems. MouseKeys is easy to
enable through xmodmap where, (on a handy B4), you do something like:

  xmodmap -pke > old_map
  xmodmap -e 'keycode 133 = Num_Lock Pointer_EnableKeys'
  xmodmap -e 'keycode 111 = Up KP_Up'
  xmodmap -e 'keycode 116 = Down KP_Down'
  xmodmap -e 'keycode 113 = Left KP_Left'
  xmodmap -e 'keycode 114 = Right KP_Right'
  xmodmap -e 'keycode 36 = Return KP_Begin'

Your keycodes may vary; I figured out the right ones by using xev and
pressing the appropriate buttons. I figured out the keysyms mainly by
reading the xmodmap -pke output. (The Wiki scan codes diagram [1] and
table [2] were not accurate for my machine according to xev.)


At any rate, after you perform this remapping, MouseKeys can be turned
on by pressing 'Shift-LeftGrabby' and can be used by holding Shift and
pressing arrow keys (or Shift-Enter to click). All this works great
except for the fact that the resulting mouse motion is very slow (being
capped at 30 px/sec in the default MouseKeys configuration.)

To address this, I wrote a small 'mkspeed' which is available in source
form at

The relevant code is;a=blob;f=mkspeed.c;hb=HEAD

Unfortunately, it doesn't work and I can't tell why. (This is my first
Xkb program.) Consequently, help would be greatly appreciated. If you're
interested, reference documentation is available [3]; see sections 4.5,
4.6, and 16.3.5 for the important details.


Alternately, if mkspeed proves to be difficult to complete, we can
probably just raise the default speed limit in the Xkb implementation in
the X server.


P.S. - If you know some nice Xkb folks who might like to help out, feel
free to forward this email to them. Or tell me why I'm an idiot and why
this is a terrible way to work around the jumpy touchpad bugs.

P.P.S. - Eben - you might start thinking about how we should actually be
exposing this sort of feature in the UI.

More information about the Devel mailing list