Discussion:
TouchPad, right clicking, and cwm
t***@danwin1210.me
2021-04-14 21:42:42 UTC
Permalink
Hi,
I'm trying to get my TouchPad/trackpad to right click. I put the
following in my /etc/X11/xorg.conf.d/70-synaptics.conf:

Section "InputClass"
Identifier "touchpad"
Driver "synaptics"
MatchIsTouchpad "on"
Option "ClickPad" "on"
Option "VertEdgeScroll" "off"
Option "VertTwoFingerScroll" "on"
Option "ClickFinger2" "2"
Option "ClickFinger3" "3"
EndSection

However, this was not enough to get two- or three-finger clicking
working.

I'd even be satisfied with Ctrl-Click mapping to right-click.

Has anyone got any ideas how to make either option work?
m***@brainfat.net
2021-04-15 19:22:37 UTC
Permalink
There is probably a better way, but I use the following script run from my .xsession file. This works for almost everything except for Chrome. For Chrome the scrolling is still non-natural.


Script XFixMouse.sh
---------------------
#!/bin/sh

#ID Button
#-------------------------
#1 Left click
#2 Middle click
#3 Right click
#4 Wheel up
#5 Wheel down
#6 Wheel left
#7 Wheel right
#8 Thumb1
#9 Thumb2
#10 ExtBt7
#11 ExtBt8

DEV=`xinput --list | grep wsmouse0 | sed -r 's/.*id=([0-9]+).*/\1/'`
if [ ! -z $DEV ]; then
# swap right and left mouse buttons and change scrolling to "natural"
xinput set-button-map $DEV 3 2 1 5 4 6 7 8 9 10 11 12
fi

--------------------

Regards
Ulf Brosziewski
2021-04-15 22:08:56 UTC
Permalink
Could you remove the "ClickPad" option from the configuration file and
try two-finger clicks again?

The combination of that option with the "ClickFinger" mechanism is broken,
and you probably don't need it if you don't use "soft-button areas".

Three-finger clicks should work - if your hardware detects the number of
fingers reliably.
Post by t***@danwin1210.me
Hi,
Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
    Option "ClickPad" "on"
    Option "VertEdgeScroll" "off"
    Option "VertTwoFingerScroll" "on"
    Option "ClickFinger2" "2"
    Option "ClickFinger3" "3"
EndSection
However, this was not enough to get two- or three-finger clicking working.
I'd even be satisfied with Ctrl-Click mapping to right-click.
Has anyone got any ideas how to make either option work?
t***@danwin1210.me
2021-04-16 16:56:34 UTC
Permalink
Post by Ulf Brosziewski
Could you remove the "ClickPad" option from the configuration file and
try two-finger clicks again?
The combination of that option with the "ClickFinger" mechanism is broken,
and you probably don't need it if you don't use "soft-button areas".
Thanks! That did the trick.
Post by Ulf Brosziewski
Three-finger clicks should work - if your hardware detects the number of
fingers reliably.
Unfortunately, it doesn't, and right-clicking is more important than
middle-clicking, so now my file looks like:

Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
    Option "VertEdgeScroll" "off"
    Option "VertTwoFingerScroll" "on"
    Option "ClickFinger2" "3"
    Option "ClickFinger3" "2"
EndSection

If it's not practical to fix the bug with the "ClickPad" option, I would
suggest adding a note to the synaptics(4) manpage under "ClickPad
support", perhaps something along the lines of:

The use of the option ClickPad in combination with Option ClickFinger2
and/or ClickFinger3 is currently not fully supported and may lead to
unexpected behaviour. In particular, enabling the Option ClickPad may
cause ClickFinger functionality to stop working.
Ulf Brosziewski
2021-04-16 18:56:59 UTC
Permalink
Unfortunately, that "trick" is no general solution because turning the
"ClickPad" option off makes click-and-drag operations with two fingers
impossible. If you don't use that "gesture", or perform it with one
finger only, the setup might work for you.

I think the issue won't be fixed, for various reasons: synaptics(4) is
legacy, there is no active development. It cannot handle that setup
coherently because a reasonable treatment of the "ClickFinger" method
requires full multitouch data. Only a subset of our hardware drivers
provide MT support, and even if these data are available, they aren't
passed to userland drivers in OpenBSD. Only wsmouse(4) makes use of
them, but it doesn't offer that "click method" for touchpads - hardly
anyone has asked for it.
Post by t***@danwin1210.me
Post by Ulf Brosziewski
Could you remove the "ClickPad" option from the configuration file and
try two-finger clicks again?
The combination of that option with the "ClickFinger" mechanism is broken,
and you probably don't need it if you don't use "soft-button areas".
Thanks! That did the trick.
Post by Ulf Brosziewski
Three-finger clicks should work - if your hardware detects the number of
fingers reliably.
Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
    Option "VertEdgeScroll" "off"
    Option "VertTwoFingerScroll" "on"
    Option "ClickFinger2" "3"
    Option "ClickFinger3" "2"
EndSection
The use of the option ClickPad in combination with Option ClickFinger2 and/or ClickFinger3 is currently not fully supported and may lead to unexpected behaviour. In particular, enabling the Option ClickPad may cause ClickFinger functionality to stop working.
t***@danwin1210.me
2021-04-18 16:39:55 UTC
Permalink
Post by Ulf Brosziewski
Unfortunately, that "trick" is no general solution because turning the
"ClickPad" option off makes click-and-drag operations with two fingers
impossible. If you don't use that "gesture", or perform it with one
finger only, the setup might work for you.
I think the issue won't be fixed, for various reasons: synaptics(4) is
legacy, there is no active development. It cannot handle that setup
coherently because a reasonable treatment of the "ClickFinger" method
requires full multitouch data. Only a subset of our hardware drivers
provide MT support, and even if these data are available, they aren't
passed to userland drivers in OpenBSD. Only wsmouse(4) makes use of
them, but it doesn't offer that "click method" for touchpads - hardly
anyone has asked for it.
I see. So how do people deal with newer generation touchpads that don't
have buttons?
Ulf Brosziewski
2021-04-18 21:09:00 UTC
Permalink
Post by Ulf Brosziewski
Unfortunately, that "trick" is no general solution because turning the
"ClickPad" option off makes click-and-drag operations with two fingers
impossible.  If you don't use that "gesture", or perform it with one
finger only, the setup might work for you.
I think the issue won't be fixed, for various reasons:  synaptics(4) is
legacy, there is no active development.  It cannot handle that setup
coherently because a reasonable treatment of the "ClickFinger" method
requires full multitouch data.  Only a subset of our hardware drivers
provide MT support, and even if these data are available, they aren't
passed to userland drivers in OpenBSD.  Only wsmouse(4) makes use of
them, but it doesn't offer that "click method" for touchpads - hardly
anyone has asked for it.
I see. So how do people deal with newer generation touchpads that don't have buttons?
They are using them. Which problems do you expect? The "ClickFinger"
mechanism is the only feature of synaptics(4) that doesn't work properly
because MT data are missing. Users that prefer synaptics(4) to wsmouse(4)
will turn the "ClickPad" option on, activate "soft-buttons" or tapping, and
that's it.

As to the default driver in wsmouse(4), it doesn't require any manual
configuration for clickpads, if you you are happy with soft-buttons (tapping
can be enabled). And more and more "newer generation touchpads" provide the
full set of MT data to the driver because they conform to the Windows
Precision Touchpad standard, which is supported by OpenBSD. Some older
hardware drivers provide MT data as well. However, the standard features -
soft-buttons, tapping, click-and-drag, two-finger scrolling - can work
reliably without them, even on clickpads. Some more or less subtle aspects
of their behaviour - like pointer control - will depend on the device firmware.
Only some "newer" features, like "thumb detection", won't work.
t***@danwin1210.me
2021-04-20 17:39:00 UTC
Permalink
Post by Ulf Brosziewski
They are using them. Which problems do you expect? The "ClickFinger"
mechanism is the only feature of synaptics(4) that doesn't work properly
because MT data are missing. Users that prefer synaptics(4) to wsmouse(4)
will turn the "ClickPad" option on, activate "soft-buttons" or tapping, and
that's it.
Okay, so it sounds like the recommended solution is to use either:
a. synaptics(4) with ClickPad and soft-buttons or tapping, or
b. use wsmouse(4)

Did I understand that right? How do people produce right- or
middle-clicks with a) and tapping? (for trackpads that have no defined
soft-button areas)

And to configure b), I assume that's just another set of xorg.conf
configuration lines? or is there additional complexity I'm missing?
Post by Ulf Brosziewski
As to the default driver in wsmouse(4), it doesn't require any manual
configuration for clickpads, if you you are happy with soft-buttons (tapping
can be enabled).
That sounds good. But unlike some laptops, my clickpad doesn't have any
defined soft-button areas. Maybe there is a way to define them?

Loading...