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

  1. 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.
  2. 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.
  3. 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.
  4. The Escape key (scancode 1) cannot be used. If you put it in a sequence, Exceed will ignore it.
  5. 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.)
  6. You must close and restart Exceed for the registry changes to take effect.
  7. 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.
  8. 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".
  9. 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

References


[Home] [Feedback]   © T. Hundt.   All writes reserved.   thundt@slack.net