[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Infamous Mouse Wheel Problem

Dan Rasmussen wrote:

I've been suffering under Linux without the use of my mouse wheel for
some time now, and would like to do something about it.  I've got an IBM
Thinkpad 560x and a two-button PS/2 Microsoft Intellimouse.  I searched
linux-laptop.org for my model, but the two references to my laptop were
both written a long time ago and neither mentioned wheel mouses.

I tried using the program "mdetect," but it didn't seem to do anything

Relevant lines in my "XF86Config-4" are:

Section "InputDevice"
   Identifier      "Configured Mouse"
   Driver          "mouse"
   Option          "CorePointer"
   Option          "Device"                "/dev/psaux"

PS/2 device.

   Option          "Protocol"              "PS/2"

Three-button two-axis protocol (no scroll wheel.)

   Option          "Emulate3Buttons"       "true"
   Option          "ZAxisMapping"          "4 5"

I don't think this option will have any effect with the 'PS/2' protocol.


Section "InputDevice"
  Identifier      "Generic Mouse"
  Driver          "mouse"
  Option          "SendCoreEvents"        "true"
  Option          "Device"                "/dev/input/mice"

USB mice.

  Option          "Protocol"              "ImPS/2"

MS Intellipoint-over-PS/2 protocol (probably what you want for a scroll mouse.)

  Option          "Emulate3Buttons"       "true"

Are you sure you want this with a scroll mouse. Clicking the wheel should work a real middle button. I guess it doesn't hurt to have it specified anyway.

  Option          "ZAxisMapping"          "4 5"

I spent a good time playing around with the protocol option and the
CorePointer option before getting annoyed, and realizing I was wasting my
time and that there must be a better way.  To be honest, I'm not sure
which of the devices is my PS/2 mouse and which is the internal
eraser-style mouse.  When I start my laptop up without the PS/2 mouse
plugged in, the internal works, and vice versa, ie they don't both
function at the same time unless I plug in the PS/2 after I've booted

I don't know of a good solution for this. It sounds like there is no USB mouse (the second 'InputDevice' section above is not used.) You can only have one PS/2 mouse connected at a time. There are two ways this is implemented (in the BIOS): 1) The trackpad/pointer/whatever is disabled when an external mouse is connected or 2) The BIOS combines events from the on-board and external pointer.

For 1), you need some way to change the driver when you connect the mouse. I can't think of a pleasant way to do this. You could specify multiple 'InputDevice' sections for '/dev/psaux' and multiple 'ServerLayout' sections each using a different one of the 'InputDevice' sections. Then restart X specifying the 'ServerLayout' you want on the command line (e.g. "startx -- -layout wheel".

For 2), I don't think there is an answer. X doesn't talk directly to the mouse, it talks to the BIOS 'mouse combiner' which probably doesn't do scroll wheels. You could try just specifying 'imps/2' for the protocol and see if your trackpad/eraser/whatever works without an external mouse connected.

That's all I can think of right now.  Eagerly awaiting being able to
scroll through documents without moving my arms/wrist,

The easiest solution is to get a USB mouse. This whole mess stems from the fact that you can only have one PS/2 pointer and the internal device is a PS/2 pointer. You can have all the USB pointing devices you want.

jason kraftcheck

Reply to: