Bug 703360

Summary: two finger tap not middle mouse button, but right click
Product: [Fedora] Fedora Reporter: Thomas Arnold <g0tt>
Component: gnome-settings-daemonAssignee: Bastien Nocera <bnocera>
Status: CLOSED WORKSFORME QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: rawhideCC: bnocera, collura, extras-orphan, notting, peter.hutterer, rstrode
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-21 04:33:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Thomas Arnold 2011-05-10 06:44:18 UTC
Description of problem:
I have a tiny EeePC 901 (8.9 inch screen size) and I really need two finger tap to be middle mouse click for opening links in new tabs or closing tabs in Firefox. Unfortunately Fedora is configured to send a right click for two finger tap. Three finger tab is not really possible on my small touchpad and anyways feels awkward and I need middle click all day and I have a physical button for right clicking.

Version-Release number of selected component (if applicable):
1.4.0.901


How reproducible:
always

Steps to Reproduce:
1. two finger
2.
3.
  
Actual results:
right click

Expected results:
middle click

Additional info:
If for some reason this is considered a sane default I would argue that it isn't for a lot of people. First most people have a physical right button, second browsing is the most common use case for a computer nowadays and at least for my usage middle clicking way way more common than right clicking and I cannot think of a usage case that should prefer right clicking. And most Windows and Linux systems use two finger tab for middle clicking.

Comment 1 Peter Hutterer 2011-05-11 05:11:08 UTC
TapButton1, TapButton2 and TapButton3 configure tapping behaviour for one, two and three finger tap, respectively. Examples are available here:
https://fedoraproject.org/wiki/Input_device_configuration#Example:_Tap-to-click

The default we ship is the upstream default.

If you're running gnome, you may want to look at
https://bugzilla.gnome.org/show_bug.cgi?id=598820
https://bugzilla.gnome.org/show_bug.cgi?id=635486

Comment 2 Thomas Arnold 2011-05-11 09:44:26 UTC
(In reply to comment #1)
> TapButton1, TapButton2 and TapButton3 configure tapping behaviour for one, two
> and three finger tap, respectively. Examples are available here:
> https://fedoraproject.org/wiki/Input_device_configuration#Example:_Tap-to-click

OK, I tried putting 07-sane-touchpad.conf with

Section "InputClass"
       Identifier "tap-by-default"
       MatchIsTouchpad "on"
       Option "TapButton1" "1"
       Option "TapButton2" "2"
       Option "TapButton3" "3"
EndSection

in /etc/X11/xorg.conf.d/. It made tab to click work in GDM, but two finger middle click didn`t work in Gnome.

And I am not an expert, but the fdi files that wiki mentions are not existing anymore on my fresh F15 install. Isn't HAL dead?


> 
> The default we ship is the upstream default.

OK, so Gnome has broken defaults. Why doesn`t Fedora look at its Smolt data and  probably see that besides a few Gnome designers nearly _nobody_ uses MacBooks (with Fedora).....

Anyways .. How do I change it in F15? 

 synclient TapButton2=2
 synclient TapButton3=3

works temporaly, but always gets overridden once I resume from standby and the fdi files are gone.
This really is a showstopper for me if it cannot be fixed.

> 
> If you're running gnome, you may want to look at
> https://bugzilla.gnome.org/show_bug.cgi?id=598820
> https://bugzilla.gnome.org/show_bug.cgi?id=635486

Comment 3 Peter Hutterer 2011-05-12 00:26:07 UTC
(In reply to comment #2)
> Anyways .. How do I change it in F15? 
> 
>  synclient TapButton2=2
>  synclient TapButton3=3
> 
> works temporaly, but always gets overridden once I resume from standby and the
> fdi files are gone.
> This really is a showstopper for me if it cannot be fixed.
> 
> > 
> > If you're running gnome, you may want to look at
> > https://bugzilla.gnome.org/show_bug.cgi?id=598820
> > https://bugzilla.gnome.org/show_bug.cgi?id=635486

Check out the second link

Comment 4 Thomas Arnold 2011-05-18 09:53:59 UTC
OK, I figured out that I probably have to install dconf-editor and xinput.
I also figured out how to find out out how my touhpad is called (xinput list gives me ETPS/2 Elantech Touchpad)

So I made this script /home/tom/touchpad.sh

#!/bin/sh
#
# This script is an example hotplug script for use with the various
# input devices plugins.
#
# The script is called with the arguments:
# -t [added|present|removed] <device name>
#       added ... device was just plugged in
#       present.. device was present at gnome-settings-daemon startup
#       removed.. device was just removed
# -i <device ID>
#       device ID being the XInput device ID
# <device name> The name of the device
#
# The script should return 0 if the device is to be
# ignored from future configuration.
#

args=`getopt "t:i:" $*`

set -- $args
while [ $# -gt 0 ]
do
    case $1 in
    -t)
        shift;
        type="$1"
        ;;
     -i)
        shift;
        id="$1"
        ;;
     --)
        shift;
        device="$@"
        break;
        ;;
    *)
        echo "Unknown option $1";
        exit 1
        ;;
    esac
    shift
done

retval=0

case $type in
        added)
                echo "Device '$device' (ID=$id) was added"
                # map tapping to LMR instead of default LRM
                if [ "$device" = "ETPS/2 Elantech Touchpad" ]; then
                        xinput set-prop $id "Synaptics Tap Action" 0 0 0 0 1 2 3
                fi
                ;;
        present)
                echo "Device '$device' (ID=$id) was already present at startup"
                # map tapping to LMR instead of default LRM
                if [ "$device" = "ETPS/2 Elantech Touchpad" ]; then
                        xinput set-prop $id "Synaptics Tap Action" 0 0 0 0 1 2 3
                fi
                ;;
        removed)
                echo "Device '$device' (ID=$id) was removed"
                ;;
        *)
                echo "Unknown operation"
                retval=1
                ;;
esac

# All further processing will be disabled if $retval == 0
return $retval

I made the script executable.

With dconf-editor I changed org.gnome.settings-daemon.peripherals.input-devices

to /home/tome/touchpad.sh


And it still does not work.
Where did I go wrong? And why is something this basic so hard? The excuse that my config is "but are too uncommon to justify full inclusion into g-s-d and/or g-c-c" is a kind of random and based on pure speculation IMO. My desired behavior is the default for most Linux and Windows installs.

Comment 5 Thomas Arnold 2011-05-18 10:53:38 UTC
EDIT: Of course I changed the value to /home/tom/touchpad.sh.

I just want to run xinput set-prop 13 "Synaptics Tap Action" 0 0 0 0 1 2 3
or synclient TapButton2=2 on resume. I am ready for a quick&dirty fix. 
Why are my those settings always overwritten when the netbook goes to standby?

Comment 6 Peter Hutterer 2011-05-18 23:40:47 UTC
(In reply to comment #4)
> And it still does not work. Where did I go wrong?

I take it that you've put echo statements into your script to verify the the script is called and applies the xinput settings accordingly? I can't see anything obviously wrong with your script on a quick glance.

Comment 7 Thomas Arnold 2011-05-28 08:51:24 UTC
OK now it works, but I didn't change a thing. I just installed the F15 updates. So I guess there was a bug.

Seems fixed now.

Comment 8 Peter Hutterer 2011-06-21 04:33:11 UTC
closing as WORKSFORME, though I don't know which update fixed it