You are not logged in.

#1 2014-01-26 14:07:16

drsjlazar
Member
From: Kasama
Registered: 2009-10-01
Posts: 133
Website

Configure scrolling (edge or two-finger) on Elantech Touchpad

I recently got a Lenovo Ideapad Flex14 which has been quite a pain to set up just the way I want. This is my latest hurdle and I have spent most of the day trying to figure it out... but I haven't.

So... the laptop comes with a clickpad and a touchscreen. The clickpad I have determined to be an Elantech Touchpad after installing psmouse-elantech from AUR. Otherwise evdev detected it as a generic PS2 mouse.

[jobs=0: $] xinput -list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ eGalax Inc. eGalaxTouch EXC7910-1018-13.00.02	id=10	[slave  pointer  (2)]
⎜   ↳ PS/2 Elantech Mouse                     	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Power Button                            	id=9	[slave  keyboard (3)]
    ↳ Lenovo EasyCamera                       	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ Ideapad extra buttons                   	id=14	[slave  keyboard (3)]

As you can see it is detected as a mouse and not a touch(click)pad with no synaptics capabilities.

[jobs=0: $] xinput list-props "PS/2 Elantech Mouse"
Device 'PS/2 Elantech Mouse':
	Device Enabled (135):	1
	Coordinate Transformation Matrix (137):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (261):	0
	Device Accel Constant Deceleration (262):	1.000000
	Device Accel Adaptive Deceleration (263):	1.000000
	Device Accel Velocity Scaling (264):	10.000000
	Device Product ID (253):	2, 1
	Device Node (254):	"/dev/input/event11"
	Evdev Axis Inversion (265):	0, 0
	Evdev Axes Swap (267):	0
	Axis Labels (268):	"Rel X" (145), "Rel Y" (146)
	Button Labels (269):	"Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
	Evdev Middle Button Emulation (270):	0
	Evdev Middle Button Timeout (271):	50
	Evdev Third Button Emulation (272):	0
	Evdev Third Button Emulation Timeout (273):	1000
	Evdev Third Button Emulation Button (274):	3
	Evdev Third Button Emulation Threshold (275):	20
	Evdev Wheel Emulation (276):	0
	Evdev Wheel Emulation Axes (277):	0, 0, 4, 5
	Evdev Wheel Emulation Inertia (278):	10
	Evdev Wheel Emulation Timeout (279):	200
	Evdev Wheel Emulation Button (280):	4
	Evdev Drag Lock Buttons (281):	0

synclient does not detect it either

[jobs=0: $] synclient -l
Couldn't find synaptics properties. No synaptics driver loaded?

And it seems to be using evdev drivers, completely ignoring synaptics

[jobs=0: $] cat /var/log/Xorg.0.log | grep -i elan
[     5.621] (II) config/udev: Adding input device PS/2 Elantech Mouse (/dev/input/event11)
[     5.621] (**) PS/2 Elantech Mouse: Applying InputClass "evdev pointer catchall"
[     5.621] (II) Using input driver 'evdev' for 'PS/2 Elantech Mouse'
[     5.621] (**) PS/2 Elantech Mouse: always reports core events
[     5.621] (**) evdev: PS/2 Elantech Mouse: Device: "/dev/input/event11"
[     5.621] (--) evdev: PS/2 Elantech Mouse: Vendor 0x2 Product 0x1
[     5.621] (--) evdev: PS/2 Elantech Mouse: Found 3 mouse buttons
[     5.621] (--) evdev: PS/2 Elantech Mouse: Found relative axes
[     5.621] (--) evdev: PS/2 Elantech Mouse: Found x and y relative axes
[     5.621] (II) evdev: PS/2 Elantech Mouse: Configuring as mouse
[     5.621] (**) evdev: PS/2 Elantech Mouse: YAxisMapping: buttons 4 and 5
[     5.621] (**) evdev: PS/2 Elantech Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[     5.621] (II) XINPUT: Adding extended input device "PS/2 Elantech Mouse" (type: MOUSE, id 13)
[     5.621] (II) evdev: PS/2 Elantech Mouse: initialized for relative axes.
[     5.622] (**) PS/2 Elantech Mouse: (accel) keeping acceleration scheme 1
[     5.622] (**) PS/2 Elantech Mouse: (accel) acceleration profile 0
[     5.622] (**) PS/2 Elantech Mouse: (accel) acceleration factor: 2.000
[     5.622] (**) PS/2 Elantech Mouse: (accel) acceleration threshold: 4
[     5.622] (II) config/udev: Adding input device PS/2 Elantech Mouse (/dev/input/mouse1)
[jobs=0: $] dmesg | grep -i elan
[    3.528188] psmouse: unknown parameter 'force_elantech' ignored
[    3.748088] 2.6.2X-Elan-touchpad-2011-04-12
[    4.178702] elantech.c: PSMOUSE_CMD_RESET_BAT  param[0]=aa param[1]=0 param[2]=0
[    4.252590] elantech.c: Elantech version query result 0x00, 0x01, 0x64.
[    4.879715] input: PS/2 Elantech Mouse as /devices/platform/i8042/serio1/input/input11

Here are my configuration files

[jobs=0: $] cat /etc/X11/xorg.conf.d/50-synaptics.conf | grep -v ^#
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
        MatchDevicePath "/dev/input/event*"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
EndSection

Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple|bcm5974"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection

Section "InputClass"
    Identifier "Elantech Touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
   	Option "PalmDetect" "true"
   	Option "PalmMinWidth" "1"
   	Option "PalmMinZ" "2"

        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
        Option "VertEdgeScroll" "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling" "on"
        Option "CircScrollTrigger" "2"
        Option "EmulateTwoFingerMinZ" "40"
        Option "EmulateTwoFingerMinW" "8"
        Option "CoastingSpeed" "10"
EndSection
[jobs=0: $] cat /etc/X11/xorg.conf.d/10-evdev.conf | grep -v ^#

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection


Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

How can I set up edge-scrolling or two-finger scrolling and two-finger tap for right click on this hardware? Do I use evdev or synaptics? Should I force evdev to ignore the touchpad and let synaptics handle it? How do I go about all this? Thanks for the help in advance.

Offline

Board footer

Powered by FluxBB