How to Get Your Mouse's Wheel Working In Exceed
These are notes on getting a Microsoft Intellimouse Optical's
wheel working with Hummingbird's Exceed X-server product. The
mouse was installed and fully working under WinNT4. I was
actually using the Intellimouse driver from a non-optical Intellimouse,
and had simply plugged in the new mouse.
The middle button (i.e., pushing down on the wheel) was
already working, functioning exactly like a middle button on a standard
Unix box's mouse. (In most applications, this does a "paste"
operation.)
Moving the wheel did not do anything, under Exceed. In
Windows apps, it usually scrolled the window up and down.
Perhaps you've found the article
on Hummingbird's website on how to use your mouse's
wheel in Exceed.
Here are a few things they neglected to mention
- You must be using Exceed 6.2.x for the wheel mouse to work.
Disregard the implication in the support document's statement, "To
enable Mouse Wheel in Exceed for 6.2 or earlier..." Support is
supposed to be better in v7, but I haven't seen that yet.
- What you want Exceed to send to your target machine is a
"button4" event when you turn the wheel upward and a "button5"
event when you turn the wheel downward. Unfortunately, Exceed
won't send any mouse events, only keyboard events, using a
propriety encoding of the keys. What's more, at least one rather
important key (Esc) cannot be sent, either.
- To debug what your target machine is getting from Exceed, run
/usr/openwin/demo/xev and watch for KeyPress and KeyRelease
events. Note that the keysyms and other codes here are NOT
related to what Exceed is using.
- The Escape key (scancode 1) cannot be used. If you put it in a
sequence, Exceed will ignore it.
- The Microsoft Intellimouse driver will, by default, scroll
three lines for each "notch" of the wheel turning. (This can be
changed in its control panel.) Guess what, this causes Exceed to
send your sequence three times. (There seems to be some
flakiness regarding in this area. Changing it back from 1 to 3 did not
make Exceed send things 3x.)
- You must close and restart Exceed for the registry changes to
take effect.
- When using the xkeys program to record macros, save the file
under something like foo.kbf to avoid screwing up your default
(us.kbf) file.
-
The sequence for "^U 1 ^V" (Emacs scroll down one line) is "P1d 16
R1d 2 P1d 2f R1d". I have this stored in
WheelDownSequence. These "scancodes" are rather obscure. It looks like "P" means "key pressed" and "R" means "key released".
- The sequence for "^U 1 Alt V" (Emacs scroll up
one line) is "P1d 16 R1d 2 P38 2f R38". I have this stored in
WheelUpSequence. (Note that you cannot use Escape, and Alt
functions as a Meta key.)
Summary of Registry Entries
My Computer\HKEY_CURRENT_USER\Software\Hummingbird\Exceed\XServer
MouseWheelSupport 0x00000003 (3)
WheelDownSequence "P1d 16 R1d 2 P1d 2f R1d"
WheelUpSequence "P1d 16 R1d 2 P38 2f R38"
References