Description of problem:
When using either GNOME's gpointing-device-settings or KDE's systemsetting's input device kcm module. Enabling two finger scrolling (horizontal or vertical) doesn't work anymore.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Enable Two finger scrolling either horizontal or vertical
Nothing happens when you try two finger scrolling.
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (132): 1
Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (254): 1
Device Accel Constant Deceleration (255): 2.500000
Device Accel Adaptive Deceleration (256): 1.000000
Device Accel Velocity Scaling (257): 12.500000
Synaptics Edges (275): 1760, 5310, 1636, 4442
Synaptics Finger (276): 31, 36, 256
Synaptics Tap Time (277): 180
Synaptics Tap Move (278): 231
Synaptics Tap Durations (279): 180, 180, 100
Synaptics Tap FastTap (280): 0
Synaptics Middle Button Timeout (281): 75
Synaptics Two-Finger Pressure (282): 282
Synaptics Two-Finger Width (283): 7
Synaptics Scrolling Distance (284): 200, 105
Synaptics Edge Scrolling (285): 1, 0, 1
Synaptics Two-Finger Scrolling (286): 1, 0
Synaptics Move Speed (287): 1.000000, 1.750000, 0.038030, 40.000000
Synaptics Edge Motion Pressure (288): 30, 160
Synaptics Edge Motion Speed (289): 1, 420
Synaptics Edge Motion Always (290): 0
Synaptics Off (291): 0
Synaptics Locked Drags (292): 0
Synaptics Locked Drags Timeout (293): 5000
Synaptics Tap Action (294): 0, 0, 0, 3, 1, 3, 2
Synaptics Click Action (295): 1, 1, 1
Synaptics Circular Scrolling (296): 0
Synaptics Circular Scrolling Distance (297): 0.010000
Synaptics Circular Scrolling Trigger (298): 0
Synaptics Circular Pad (299): 0
Synaptics Palm Detection (300): 0
Synaptics Palm Dimensions (301): 10, 200
Synaptics Coasting Speed (302): 0.400000, 50.000000
Synaptics Pressure Motion (303): 30, 160
Synaptics Pressure Motion Factor (304): 1.000000, 1.000000
Synaptics Grab Event Device (305): 1
Synaptics Gestures (306): 1
Synaptics Capabilities (307): 1, 0, 1, 0, 0, 1, 1
Synaptics Pad Resolution (308): 111, 67
Synaptics Area (309): 0, 0, 0, 0
Synaptics Noise Cancellation (310): 26, 26
Device Product ID (251): 2, 7
Device Node (252): "/dev/input/event4"
Downgrading to: xorg-x11-drv-synaptics-1.4.1-3.fc17 worked.
So looks like regression.
Thanks for the bug report. We have reviewed the information you have provided above, and there is some additional information we require that will be helpful in our diagnosis of this issue.
* your X server config file (/etc/X11/xorg.conf, if available),
* X server log file (/var/log/Xorg.*.log*; check with grep Backtrace /var/log/Xorg* which logs might be the most interesting ones, send us at least Xorg.0.log),
* output of the command evtest /dev/input/event<number you find in Xorg.0.log>, and
* system log (/var/log/messages)
to the bug report as individual uncompressed file attachments using the bugzilla file attachment link above.
We will review this issue again once you've had a chance to attach this information.
Thanks in advance.
Created attachment 527218 [details]
test in virtual terminal, while two-finger scrolling in GNOME is ON, going up and down the touchpad with 2 fingers
Created attachment 527219 [details]
test in virtual terminal, while edge scrolling in GNOME is ON, going up and down the touchpad with 2 fingers
Created attachment 527220 [details]
/var/log/messages, just after the evtest was conducted
Created attachment 527221 [details]
I'm having the same problem on Fedora 16 beta, xorg-x11-drv-synaptics-1.5.0-1.fc16.i686.
Hope the attached files will help. Many thanks!
Downgrading to xorg-x11-drv-synaptics-1.4.1-3.fc16.i686, two-finger scrolling works again.
FWIW it works for with 1.5.0 on a MacBook.
(In reply to comment #9)
> Downgrading to xorg-x11-drv-synaptics-1.4.1-3.fc16.i686, two-finger scrolling
> works again.
if you can, please bisect the upstream driver. I'm hopelessly overloaded.
xorg-x11-drv-synaptics-1.5.0-2.fc16.i686 doesn't work too
Running synclient with 1.4.1 I get
EmulateTwoFingerMinZ = 29
EmulateTwoFingerMinW = 6
while in 1.5.0 it is
EmulateTwoFingerMinZ = 282 (!!!!!)
EmulateTwoFingerMinW = 7
Some other values also changed between the two versions, but only by +/- 1 or so.
Is this a typo in src/synaptics.c perhaps?
emulateTwoFingerMinZ = priv->minp + range * (282.0/256);
Just a clue, as I have no idea how this all works.
could be. does it work again if you set it to 29?
Setting EmulateTwoFingerMinZ to above 80 in the working driver (1.4.1) two-finger scrolling ceases to function.
Setting EmulateTwoFingerMinZ=29 in the newest driver (1.5.0) two-finger scrolling works again.
I hope you'll find some time to fix this in the driver. I can see that the value 282.0 was around in many versions of src/synaptics.c in the past, but have no idea of its meaning.
src/synaptics.c in 1.4.1 had
if (!priv->has_double && priv->has_width)
emulateTwoFingerMinZ = fingerHigh;
emulateTwoFingerMinZ = priv->minp + range * (282.0/256);
and probably the first value (fingerHigh) was mostly used.
src/synaptics.c in 1.5.0 now has only
emulateTwoFingerMinZ = priv->minp + range * (282.0/256);
and the value of 282.0 is a typo --- 28.0 would be a better value, I guess. Or just the value of fingerHigh.
I've compiled v1.5.0-2 with the mentioned change in src/synaptics.c, namely
emulateTwoFingerMinZ = priv->minp + range * (28.0/256);
and two-finger scrolling works again!
Peter, should I report this to bugs.freedesktop.org, or is it enough to have it here?
ok, had a look at this, not sure we we can do anything here. problem is mostly hardware-specific, but the explanation is a bit more complicated.
first: reproduced, my minZ here is 282 as well, changing it down to 29 means it works. But - on a hard-enough tap that reproduces the spurious right-click issues reported in https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/742213, reason for the reverted commit.
the problem is that the hardware doesn't really do pressure and width, they're inferred from each other. A big finger appears as hard pressure, a higher pressure appears as higher width. You can check this easily on a tty with evtest | grep ABS_TOOL_WIDTH or ABS_PRESSURE. Slightly putting down your whole finger will have a higher pressure value than pressing hard with the tip of your finger.
So the problem here now is that if you tap hard enough, the hardware + driver interprets it as two fingers and you get a right-click. That's not ideal, especially not as default setting.
Of course, the current default for emulateTwoFingerMinZ is bogus and too high (Chris Bagwell even said so in his original commit, the one that got reverted) but that's the reason we don't see the spurious events.
So we need to choose:
- allow two-finger scrolling on single-finger hardware by defaul but get spurious right-click events
- don't enable two-finger scrolling on such hardware by default
My choice is the latter. The hardware doesn't make it easy for us, so I'd rather leave this default off and let people that want it enable it and deal with the spurious events then. But the default behaviour of the device should be off.
That's from the driver's POV anyway, the GUI tools shouldn't allow two-finger scrolling (or set the minZ to a useful value) on hardware that doesn't do it.
Unless someone comes up with a good solution to this conundrum, I'll have to close this as CANTFIX. sorry.
The question might as well be whether to disable right-click by default and enable two-finger scrolling (as Touchpad settings in *Fedora's* System Settings have no mention of right click with the touchpad, but have two-finger scrolling as an option).
Most touchpads, afaik, have two buttons for left and right clicks, clicking by two-finger tapping might not even be known to most people.
Two finger scrolling (vertical & horizontal) comes so often so handy, that it should be considered as the default behaviour.
To conclude: if there's no bug in xorg-x11-drv-synaptics, there's one in System Settings that Fedora now provides, and that changed its behaviour from v.15 to v.16beta.
Do you think I should file the bug for System Settings?
(In reply to comment #18)
> The question might as well be whether to disable right-click by default and
> enable two-finger scrolling (as Touchpad settings in *Fedora's* System Settings
> have no mention of right click with the touchpad, but have two-finger scrolling
> as an option).
single-finger tap: left click, two-finger tap: right click, three-finger tap: middle click. it's hardcoded in gsd or control-center (forgot which one) and it's a good default.
> Most touchpads, afaik, have two buttons for left and right clicks, clicking by
> two-finger tapping might not even be known to most people.
possibly. of the three laptops I have here, two don't have a right button and that ratio will only increase as the
> Two finger scrolling (vertical & horizontal) comes so often so handy, that it
> should be considered as the default behaviour.
we have edge scrolling in the driver. Unlike the tapping behaviour which you _need_ on some hardware, scrolling has an alternative implementation.
> To conclude: if there's no bug in xorg-x11-drv-synaptics, there's one in System
> Settings that Fedora now provides, and that changed its behaviour from v.15 to
> Do you think I should file the bug for System Settings?
Filed one for upstream control-center, let's see what the verdict is.
I've replied to your report on bugzilla.gnome.org, here I'd just repeat this question:
why is two-finger scrolling by default disabled in the driver by giving EmulateTwoFingerMinZ an 'infinite' value, and not by setting
VertTwoFingerScroll = 0
HorizTwoFingerScroll = 0
If it would help to convince you, here's my emotional story for the end:
I've got quite used to two-fingerscrolling, it's almost indispensable in editing large images, or proofing pdf's in DTP.
Edge scrolling is just so 1980's, reminds me on using bubble-button joysticks.
(In reply to comment #20)
> why is two-finger scrolling by default disabled in the driver by giving
> EmulateTwoFingerMinZ an 'infinite' value, and not by setting
> VertTwoFingerScroll = 0
> HorizTwoFingerScroll = 0
note that driver and GNOME don't necessary have the same defaults and GNOME overwrites the driver in the overlapping subset. anyway, in the driver vert two-finger scrolling is enabled on any device that supports two fingers.
what you're trying to use is two finger _emulation_ for touchpads that only have single-finger capabilities. the high value is historical, probably a typo. but when we changed it to something lower we got spurious right clicks.
EmulateTwoFingerMinZ not only affects two-finger scrolling but also two-finger tapping, ClickFinger, etc. all these are separately controlled through options.
> If it would help to convince you, here's my emotional story for the end:
> I've got quite used to two-fingerscrolling, it's almost indispensable in
> editing large images, or proofing pdf's in DTP.
> Edge scrolling is just so 1980's, reminds me on using bubble-button joysticks.
touchpads that only support one finger are so 1980s :P
I must say the "spurious right clicks" is probably on a per case/laptop/hardware incident.
I have used the emulation for over a year without any incident.
Apart from that, I do second the fact that the value is set way to high for some reason (typo or not) and has plagued other distributions too...
my fix was to force a lower value on startup as follows:
xinput --set-prop --type=int --format=32 "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Pressure" 10
It would be nice to have it fixed soon to minimize the required hacks to get such simple things working out of the box - I was quite happy on F15 (coming from ubuntu) to find it working straight up after fresh setup :)
(In reply to comment #22)
> It would be nice to have it fixed soon to minimize the required hacks to get
> such simple things working out of the box - I was quite happy on F15 (coming
> from ubuntu) to find it working straight up after fresh setup :)
and the fix would be?
This isn't a "simple thing", it depends on the hardware and the usage pattern. Neither of which are known until the bug appears and even then we can't really tell. Short of displaying a box "this will cause spurious events" next to the checkbox in the panel I don't know how to "fix" this.
As I said on https://bugzilla.gnome.org/show_bug.cgi?id=661963 the solution would be to give user an option to choose what to use, and if something doesn't work simply to stop using it. Unfortunately, no replies there :(
Spurious right clicks? How many bug reports did you get on that?
It can be considered simple in the sense that is a pressure value that needs to be set lower than 80 points by default (averaging the 20ies-30ies) in the source of the synaptics driver.. rather than keeping a default value of 250+...
Why not try and see what gives rather than complaining about it?
I have already given a pointer to the potential "fix" in my previous post...
The solution was already given by firstname.lastname@example.org on post # 16, and has been proven to work...
I'd like to turn the two-finger scrolling behavior back on. Are you saying that as a user I can't do that without recompiling the driver? There isn't some configuration that I can set?
First I did it by issuing a command
in a terminal, but that works only for one session.
Then I discovered the bug (?) in the driver, and recompiled with my own setting.
I have no idea on how to put the option into xorg.conf. In fact, I have no xorg.conf on my system anywhere, and I guess I'd have to spend a day looking for how to do it.
I guess there will be much more requests here now that Fedora 16 is officialy out.
Please fix same problem here
WORKAROUND: Bookmark this page, run the command in Comment 28 every time you reboot.
Or make a script that runs on startup...
You can also use the command listed in comment 25.
p.s.: or simply append any of those commands to /home/$USERNAME/.bashrc
Setting EmulateTwoFingerMinZ to 29 (from 282) helped for me. Before then, two finger scrolling did nothing.
After making that change, I can reproduce spurious right clicks, but only if I "double click" with two fingers - I never really noticed this before reading about the spurious right click bug - I had to work to make it happen. That right click behavior happened before, however (e.g., I can produce the same behavior in fedora 14). So it's not really a regression, whereas the broken two finger scrolling is most definitely a regression.
regarding permanent configuration: synaptics(4) lists Option "EmulateTwoFingerMinZ" "integer"
http://fedoraproject.org/wiki/Input_device_configuration has a few examples on how to set options for specific devices.
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.
(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)
More information and reason for this action is here:
With this 'fixed' perhaps we can punt this issue to the DEs KDE and GNOME? as the fixes mentioned xinput and xorg.conf.d file generation work.
Maybe the DEs can add some workarounds in their dialog settings for touchpads?