Updated 2011-08-27 22:54:00 by RLE

CLN 2006-03-28

Approximately 10% of the population is left handed and this large minority is often overlooked in designing user interfaces. Mice, being one-handed, are particularly problematic.

  • Standard pointer sets are right-handed in that arrows point north-northwest like the index finger of the righthand while holding mouse. A left-handed mouse is better represented by an arrow pointing north-northeast. (Logitech [1] provides left-handed pointers with their mouse drivers.)
  • Documentation (especially 'Windows documentation) often refers to the "left" and "right" mouse buttons when these are exactly opposite for a left-handed mouse. (UNIX documentation often uses MB1 (the mouse button closest to the keyboard) through MB3 (the mouse button farthest from the keyboard).)
  • Some tools like Autohotkey presume that the user can click a left modifier key while using a mouse. This is hard for left-handed mice.

(By "left-handed mouse", I mean a mouse on the left of the keyboard with the mouse buttons "reversed" from their right-handed factory defaults. Some left-handed users suffer with right-handed mice (on the right of the keyboard) and others only move their mouse to the left of the keyboard but don't bother swapping buttons.)

George Peter Staplin 2006-03-28 I use my left hand for the mouse. I've found that pressing the mouse buttons on the mouse (now a trackball) over time causes physical problems for me. I discovered a solution that works by mapping the numpad keys to mouse buttons.

My .xinitrc has this:
 xkbset m
 xkbset exp =m

 #NUMPAD 7,8,9
 xmodmap -e "keycode 79 = Pointer_Button1"
 xmodmap -e "keycode 80 = Pointer_Button2"
 xmodmap -e "keycode 81 = Pointer_Button3"
 #KP_Add (for scrolling up)
 xmodmap -e "keycode 86 = Pointer_Button4"
 #KP_Enter (for scrolling down)
 xmodmap -e "keycode 108 = Pointer_Button5"

I use a custom XKB keymap to enable that to work. It's here: [2] (URL is 404 on Aug 26, 2011)

To load the keymap (after the xmodmap changes above) I do this (in my .xinitrc also):
 xkbcomp ~/mykeymap :0