Bug 90658 - Synclient cannot find synaptics properties, "No synaptics driver loaded?". Touchpad works but cannot be disabled while typing
Summary: Synclient cannot find synaptics properties, "No synaptics driver loaded?". To...
Status: RESOLVED DUPLICATE of bug 90033
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/synaptics (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Peter Hutterer
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-26 09:51 UTC by Richard
Modified: 2015-06-01 23:08 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
The Xorg log (26.42 KB, text/plain)
2015-05-26 09:51 UTC, Richard
no flags Details
evemu-record dump (38.43 KB, text/plain)
2015-05-27 14:00 UTC, Richard
no flags Details
Typing position (293.12 KB, image/jpeg)
2015-05-28 12:00 UTC, Richard
no flags Details
evemu-record dump 2 (145.09 KB, text/plain)
2015-05-29 01:06 UTC, Richard
no flags Details

Description Richard 2015-05-26 09:51:25 UTC
Created attachment 116041 [details]
The Xorg log

The touchpad actually works. Xorg reports loading the touchpad driver too. (See attached log). However, synclient cannot find the touchpad or the driver is not being loaded.
The problem is, I want to disable the touchpad while typing. This is a huge annoyance while typing since the cursor jumps around abruptly.
/usr/share/X11/xorg.conf.d/10-evdev.conf contains:

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

/usr/share/X11/xorg.conf.d/50-synaptics.conf contains:
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"        
        Option  "AccelFactor" "0.10000"             
        Option  "SHMConfig"     "1"               
        Option  "VertTwoFingerScroll"   "1"        
        Option  "HorizTwoFingerScroll"  "1"        
        Option  "VertEdgeScroll"        "1"
        Option  "HorizEdgeScroll"       "1"
        Option  "TapButton1"            "1"
        Option  "TapButton2"            "2"
        Option  "TapButton3"            "3"
        MatchDevicePath "/dev/input/event*"
EndSection
Comment 1 Peter Hutterer 2015-05-26 22:49:14 UTC
From the log:
[   547.568] (II) Using input driver 'libinput' for 'ETPS/2 Elantech Touchpad'

which is why synclient can't find any properties. If you're game, the libinput upstream repo has disable while typing implemented already.

And while you're there, I'd appreciate if you could record the touchpad with evemu-record while you're typing. it would give some indication where the touch points are, disable-while-typing is a stopgap measure and we can hopefully get better heuristics that detect palm touches other than by disabling the pad.

simply run sudo evemu-record, select your touchpad and then type a bit. please make sure you don't have any actual touchpad usage in that recording but just the bits where the palm hits the touchpad.

Also, what laptop do you have? and do you have the udev/hwdb/60-evdev.hwdb file yet (systemd 220, iirc)?
Comment 2 Richard 2015-05-27 14:00:44 UTC
Created attachment 116076 [details]
evemu-record dump

I guess the libinput "Disable while typing" feature is not very robust then.
I have a custom built laptop from Sager,i7-4710MQ. I can give you more details about the hardware if you want. As you have seen, I have an ElanTech touchpad.

And no, I do not have the 60-evdev.hwdb file. I am using archlinux with the latest systemd(219-6). It seems version 220 has not been updated into arch linux official repos.

Attached is the output of evemu-record (typing about 10 minutes)
Comment 3 Peter Hutterer 2015-05-28 05:25:28 UTC
did you update to git master? dwt was only added recently, it's not in a released version yet.

The basic palm detection here won't activate on your device because we don't know the resolution (and thus don't know the size of the touchpad). this is a problem affecting some elantech touchpads, we're still working on solutions to that.

having said that after looking at the data in the recording it's all outside of the edge zones we have set up anyway. the locations are clustered in the 30-60% of the touchpad in the x dimension, 5-30% in the y direction.

do you have a link to a picture of the laptop?
Comment 4 Richard 2015-05-28 09:23:43 UTC
No, I haven't updated to the git version. I can do it if needed.

The link to the model that I have. This isn't where I purchased it from, although it's the same model.

http://www.lpc-digital.com/sager-np4658-features.html

Is there some way to activate it manually? Will updating systemd to 220 enable this?
Comment 5 Peter Hutterer 2015-05-28 11:25:22 UTC
for disable-while-typing you'd really need the git version. the other palm detection only activates for touchpads 7cm or bigger (yours is 0 because it doesn't have resolution). systemd 220 has hooks to override the resolution, so you could've worked around this that way.

but as I said judging by the recording it wouldn't help anyway. see http://wayland.freedesktop.org/libinput/doc/latest/palm_detection.html, your touches are outside of the edge zones.

can you take a picture of your hands in normal typing position? I'm curious where your hands would be that you get those events, it's not the first time that I've seen palm sequences like this but I don't quite know how they are triggered.
Comment 6 Richard 2015-05-28 12:00:57 UTC
Created attachment 116113 [details]
Typing position

I am attaching the picture of my hands while typing.
So you think updating systemd wouldn't work. What would?
Comment 7 Peter Hutterer 2015-05-29 00:37:58 UTC
updating libinput to the git version gives you disable-while-typing and that's currently enabled on all touchpads.

looking at the picture: this touchpad is offset to the right compared to most other laptops which have it aligned on the space bar. This may explain the events
being outside of the edge zones. I guess you have the most accidental touches when you type with your right index finger?

can you also record a normal touch sequence so I can compare the pressure values finger vs palm?
Comment 8 Richard 2015-05-29 00:40:35 UTC
I will update to libinput's git version and check. I haven't really noticed when I get accidental touches. I will keep that in mind now on.
Not sure, how I should record the normal touch sequence. Is it again using evemu-record?
Comment 9 Peter Hutterer 2015-05-29 00:46:00 UTC
yep, same process as before. don't need a long recording, just a couple of finger movements and maybe a tap or two. oh, and a two-finger tap as well for good measure.
Comment 10 Richard 2015-05-29 01:06:15 UTC
Created attachment 116129 [details]
evemu-record dump 2

Attaching the requested touchpad dump.
Comment 11 Peter Hutterer 2015-05-29 01:42:41 UTC
sigh, ok, DWT is the only hope you have, there isn't any pressure information we can fall back on. Palms and finger pressure ranges overlap enough that we can't have heuristics based on that. just look at the ABS_PRESSURE ranges of both recordings and you see that there's no defining threshold between the two.

so yeah, I recommend updating to git or wait for libinput 0.16 (next week hopefully).
Comment 12 Peter Hutterer 2015-06-01 23:08:27 UTC
ok, libinput 0.16 is out and should make it to your distribution soon.

Meanwhile, I'm going to close this as duplicate of the original DWT bug, simply because that was your main issue and we haven't really added anything else to the codebase based on this bug.

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


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.