Subject: FVWM: finally, an answer to the mouse emulation problem

From: Navindra Umanee <[email-masked]>
Date: Tue, 17 Feb 1998 18:14:09 -0500

Montreal Tue Feb 17 18:06:49 1998

>From the FAQ:

--------------------------------------------------------------------
26) You can bind mouse movements to keystrokes, how about mouse
    presses?

A: Hm.  This one is a little tougher.  It could be done, but many
   programs ignore synthetic events, which is what would be generated.
   In X11R6.1 there is an extension (called XKBD?) which can do this,
   but I don't want to code to anything specific to one of the newer
   X11 versions like this.  You could try using Xse, which is a
   program to interface to XSentEvent, available at ftp.x.org.  It
   could probably be used in a smiliar manner to xcb above (or in
   conjunction with it).  If anyone comes up with good examples for
   this, please send it to the fvwm mailing list for inclusion here.
--------------------------------------------------------------------

After several requests for help and a week or two or maybe a month or
even a year, I finally got this answer courtesy Erik Fortune
<[email-masked]>.  Please put it in the FAQ, it will save someone a lot
of pain:

--------------------------------------------------------------------
>From the X Window System FAQ:
Subject:  36)! How can I control the mouse with the keyboard?

If you have the X Keyboard (XKB) Extension, you can enable mouse keys,
which makes it possible to generate mouse motion and button events
using the keyboard.  Events generated by MouseKeys are completely
transparent -- they will work with any application that connects to a
server that has the X Keyboard Extension, regardless of whether the
application itself uses XKB.

XKB is enabled by default in X11R6.1.  

First, set up the Num Lock key so that Shift+Num_Lock toggles mouse
keys:

 xmodmap -e "keysym Num_Lock = Num_Lock Pointer_EnableKeys"

(XFree86 3.1.2E is based on R6.1 and has the X Keyboard Extension; it
also has a binding to Pointer_EnableKeys in its default keymap.  You
use Alt+Shift+Num_Lock to toggle MouseKeys on and off.  If you are
using an earlier release of X or XFree86, you won't have XKB and the
instructions will not work. See http://www.XFree86.org/FAQ for more
information.)

You might also have to turn off server num lock for this to work.  Now
press "Shift+Num_Lock" to enable MouseKeys.  When MouseKeys are on:

o)   The keypad arrow keys move the pointer
o)   The keypad '5' key behaves like the 'default' pointer button
o)   The keypad '0' key locks the default pointer button (for easy dragging)
o)   The keypad '.' key unlock the default pointer button (to release a drag)
o)   The keypad '+' key double-clicks the default pointer button.
o)   The keypad '/' key sets the 'default' button to Button1
o)   The keypad '*' key sets the default button to Button2
o)   The keypad '-' key sets the default button to Button3

This is the default configuration, but the mechanism allows for nearly
infinite configurability.
--------------------------------------------------------------------
--
Visit the official FVWM web page at <URL:http://www.hpc.uh.edu/fvwm/>.
To unsubscribe from the list, send "unsubscribe fvwm" in the body of a
message to [email-masked].
To report problems, send mail to [email-masked].