Bug 6113

Summary: wish: scrolling only mouse (or maybe DragLocked EmulateWheel)
Product: xorg Reporter: Richard Neill <xorg>
Component: Input/MouseAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED DUPLICATE QA Contact: Xorg Project Team <xorg-team>
Severity: enhancement    
Priority: high CC: hun
Version: 7.0.0   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 20529    
Bug Blocks:    
Attachments:
Description Flags
HAL policy fdi file for scrolling-only trackpad none

Description Richard Neill 2006-03-04 05:17:13 UTC
This is a feature I'd like to see - albeit useful in only a *very* few special
cases:
  I want to set up a 2 mice, where the second is used for scroll-only.
  i.e. X-Y motion of the pointer maps directly to horiz/vert scrolling. 
  [The main mouse (3-button, but without wheel) would then do everything else.]


Here's why:
 System = IBM keyboard with ultranav. I want to use the trackpoint mouse for
normal mousing, and the touchpad for scrolling.

[Yes. I know about EmulateWheelTimeout, which is almost ideal; making the 2nd
mouse button be both middle-click and scroll. But there are a few applications
eg xfig that actually make use of middle-click+drag, and these will break.]


------------------------
I've tried one other really ugly hack:
      Option "EmulateWheel" "on"
      Option "EmulateWheelButton" "1"
      Option "EmulateWheelTimeout" "0"  #never times out
      Option "DragLockButtons" "3 1"   

Then, I'd click the touchpad button 3 once on boot-up; permanently locking
button 1 down with DragLock. This would then effectively force the
emulated-wheel (on button 1) to be permanently on, so doing what I wanted.

Unfortunately, it seems that DragLock cannot be used with EmulateWheel in that way.
-------------------

Thanks very much - Richard
Comment 1 Daniel Stone 2007-02-27 01:30:43 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 2 Hans Ulrich Niedermann 2008-07-24 16:40:00 UTC
Summary: Functionality exists in classic synaptics driver, may need adaptation

I have a ThinkPad with the UltraNav combination of TrackPoint (mini joystick) and TrackPad (synaptics touchpad).

The TrackPoint acts like a normal (PS/2?) mouse with three buttons and no wheels.

The TrackPad (synaptics driver) has a multitude of functions: Mouse pointer, scroll wheel vertical, scroll wheel horizontal, and some tap/gesture stuff.

The TrackPad appears to divide its area like this:

      |<----------X-------->|
      |<-------x------->|   |  Areas:
 -----+-----------------+---+
  ^ ^ |                 |   |  A: mouse pointer
  | | |                 |   |
  Y y |        A        | B |  B: vertical scroll wheel
  | | |                 |   |
  v v |                 |   |  C: horizontal scroll wheel
 -----+-----------------+---+
      |        C        | D |  D: scroll both vertically and horizontally
      +-----------------+---+

Xorg and the synaptics driver (used to) allow defining how large x and y are in relation to X and Y. So you just need to define x := 0 and y := 0, and then area D will cover the whole TrackPad, giving you vertical and horizontal scrolling only.

Now you need to disable the taps on the TrackPad, and (I have not found out how to do this, but it could be possible) the two annoying mouse buttons beneath the TrackPad, and you have turned that annoying touchpad into a useful scrolling aid.

Most of these settings are available in the Xorg synaptics driver via xorg.conf (with the exception of disabling the physical mouse buttons on the touchpad, where I am not sure).

I have been running such a D-extended-to-whole-touchpad setup for some time. Unfortunately, however, something on my Fedora 9/Gnome system insists on turning the touchpad into a useless and annoying mouse replacement again, basically ignoring the settings from xorg.conf.

So, the basic functionality is somewhere in the code, and it is just a question of how to properly expose it to the user.
Comment 3 Dima Kogan 2009-03-08 22:59:44 UTC
I just posted a patch to implement this:
http://bugs.freedesktop.org/show_bug.cgi?id=20529

Comment 4 Hans Ulrich Niedermann 2009-03-09 01:53:09 UTC
(In reply to comment #3)
> I just posted a patch to implement this:
> http://bugs.freedesktop.org/show_bug.cgi?id=20529

This patch appears to implement trackpoint-scrolling/trackpad-pointing. I want to do the opposite: trackpoint-pointing/trackpad-scrolling.

However, it appears there was some bug somewhere in the Xorg input system which has been fixed since I first had the problem. After that bug had been fixed (when I was still running Fedora 9), my static xorg.conf config for the trackpad worked properly again, extending the area D to the comprise the whole X*Y area (i.e. x=0, y=0).

Diagram (fixed):

      |<----------X-------->|
      |<-------x------->|   |  Areas:
 -----+-----------------+---+
  ^ ^ |                 |   |  A: mouse pointer
  | | |                 |   |
  | y |        A        | B |  B: vertical scroll wheel
  Y | |                 |   |
  | v |                 |   |  C: horizontal scroll wheel
  | --+-----------------+---+
  v   |        C        | D |  D: scroll both vertically and horizontally
 -----+-----------------+---+

I am now successfully running a new Fedora 10 setup without an xorg.conf file. The trackpad is configured with HAL FDI files to scrolling-only, as there the GUI tools for synaptics setup cannot or do not want to do that kind of setup.

So I am now completely happy again except for the following two things:

Xorg synaptics driver has no parameter to disable or ignore the mouse buttons. The patch should be more or less trivial, once I'll actually get around to implementing it.

The GUI tools for configuring synaptics touchpads should allow the user to implement this kind of setup. However, I expect the GUI people to consider a user interface powerful enough to provide that functionality as too complicated and the use case too far-fetched to ever accept such a change, so I'll just go the FDI file route.
Comment 5 Hans Ulrich Niedermann 2009-03-09 01:56:37 UTC
Created attachment 23675 [details]
HAL policy fdi file for scrolling-only trackpad

This FDI file allows me to use the UltraNav TrackPad of a Lenovo ThinkPad T60 just for scrolling on a Fedora 10 system.

Install as /etc/hal/fdi/policy/10-trackpad.fdi.
Comment 6 Peter Hutterer 2009-08-13 20:23:54 UTC
Closing this bug as duplicate of 20529. AFAICT, they both want the same thing, I'm not sure why 20529 is a separate bug. Since that one has a patch attached to it though, it is the better one to keep alive.

*** This bug has been marked as a duplicate of bug 20529 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.