blash@S440 ~ % cat /sys/devices/platform/i8042/serio1/firmware_id PNP: LEN2000 PNP0f13 # Lenovo S440 touchpad:pnpid:*LEN2000*:
Hi, Lenovo S440 does not seem to have physical touchpad buttons, but only the clickpad.
Hi, that's absolutely true. According to [1] property INPUT_PROP_TOPBUTTONPAD should be set by kernel, but top buttons are still not activated by default. Question is, how to activate those by default? I thought touchpad.hwdb might be a proper place for device depended configuration. If that's wrong, please excuse my ignorance. Regards [1] http://wayland.freedesktop.org/libinput/doc/latest/t440_support.html
run evemu-describe against the device, that should show if the property is set by the kernel. If not, it needs a kernel patch. Looking at https://github.com/torvalds/linux/blob/master/drivers/input/mouse/synaptics.c#L157 however shows that the LEN2000 pnpid is already in there. (In reply to blash from comment #2) > According to [1] property INPUT_PROP_TOPBUTTONPAD should be set by kernel, > but top buttons are still not activated by default. > Question is, how to activate those by default? what input stack is this? synaptics, libinput? If the kernel property is set but the buttons don't work, please reassign to either of those.
Property TOPBUTTONPAD is properly is set by 3.19.0-1-ARCH : blash@S440 ~ % sudo evemu-describe Available devices: ... /dev/input/event14: SynPS/2 Synaptics TouchPad ... Select the device event number [0-17]: 14 # EVEMU 1.2 # Input device name: "SynPS/2 Synaptics TouchPad" # Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1 ... # Properties: # Property type 0 (INPUT_PROP_POINTER) # Property type 2 (INPUT_PROP_BUTTONPAD) # Property type 4 (INPUT_PROP_TOPBUTTONPAD) ... I'm using libinput 0.11.0-1 with xf86-input-libinput 0.8.0-1. blash@S440 ~ % xinput list-props 13 Device 'SynPS/2 Synaptics TouchPad': Device Enabled (143): 1 Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Tapping Enabled (281): 0 libinput Accel Speed (282): 0.000000 libinput Natural Scrolling Enabled (283): 0 libinput Send Events Modes Available (264): 1, 1 libinput Send Events Mode Enabled (265): 0, 0 libinput Left Handed Enabled (284): 0 libinput Scroll Methods Available (285): 1, 0, 0 libinput Scroll Method Enabled (286): 1, 0, 0 Device Node (266): "/dev/input/event14" Device Product ID (267): 2, 7
Same behavior with xf86-input-synaptics 1.8.1-1 : blash@S440 ~ % xinput list-props 14 Device 'SynPS/2 Synaptics TouchPad': Device Enabled (143): 1 Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (278): 1 Device Accel Constant Deceleration (279): 2.500000 Device Accel Adaptive Deceleration (280): 1.000000 Device Accel Velocity Scaling (281): 12.500000 Synaptics Edges (307): 1726, 4858, 1577, 3665 Synaptics Finger (308): 25, 30, 0 Synaptics Tap Time (309): 180 Synaptics Tap Move (310): 192 Synaptics Tap Durations (311): 180, 180, 100 Synaptics ClickPad (312): 1 Synaptics Middle Button Timeout (313): 0 Synaptics Two-Finger Pressure (314): 282 Synaptics Two-Finger Width (315): 7 Synaptics Scrolling Distance (316): -87, -87 Synaptics Edge Scrolling (317): 0, 0, 0 Synaptics Two-Finger Scrolling (318): 1, 1 Synaptics Move Speed (319): 1.000000, 1.750000, 0.045725, 0.000000 Synaptics Off (320): 2 Synaptics Locked Drags (321): 0 Synaptics Locked Drags Timeout (322): 5000 Synaptics Tap Action (323): 0, 0, 0, 0, 1, 3, 2 Synaptics Click Action (324): 1, 3, 2 Synaptics Circular Scrolling (325): 0 Synaptics Circular Scrolling Distance (326): 0.100000 Synaptics Circular Scrolling Trigger (327): 0 Synaptics Circular Pad (328): 0 Synaptics Palm Detection (329): 0 Synaptics Palm Dimensions (330): 10, 200 Synaptics Coasting Speed (331): 20.000000, 50.000000 Synaptics Pressure Motion (332): 30, 160 Synaptics Pressure Motion Factor (333): 1.000000, 1.000000 Synaptics Grab Event Device (334): 0 Synaptics Gestures (335): 1 Synaptics Capabilities (336): 1, 0, 0, 1, 1, 1, 1 Synaptics Pad Resolution (337): 42, 42 Synaptics Area (338): 0, 0, 0, 0 Synaptics Soft Button Areas (339): 3292, 0, 3397, 0, 0, 0, 0, 0 Synaptics Secondary Soft Button Areas (340): 3583, 0, 0, 1771, 3000, 3583, 0, 1771 Synaptics Noise Cancellation (341): 8, 8 Device Product ID (265): 2, 7 Device Node (266): "/dev/input/event16" Is there some additional property which I forgot to configure?
ok, so what exactly works and what doesn't work? kernel output looks correct, and the synaptics properties have top and bottom software buttons set. so both should work. Can you provide a detailed account of what you expect to work and how it's not working right now? you cut off the evemu-describe output, so it's hard to judge if the coordinates are out of whack.
ping?
(In reply to Peter Hutterer from comment #6) > ok, so what exactly works and what doesn't work? kernel output looks clickpad itself is working well by default: the entire clickpad behaves like on large button. clicking with one, two and three fingers distinguish between left, right and middle button. No top or bottom buttons are defined/used at all. That's all great as long as I'm using only the clickpad for every mouse input. :) > correct, and the synaptics properties have top and bottom software buttons > set. so both should work. Can you provide a detailed account of what you > expect to work and how it's not working right now? Unfortunately the same clicking behavior occurs while I'm using the trackpoint: Single button and 1-3 finger for left, right middle click. Operating the trackpoint and right or middle click with only one hand is not possible, I need to use the second hand for clicking. In the case (active trackpoint) I would like to use clickpads top buttons. They should work like single mechanical buttons activated by a single finger (thumb). (e.g. pressed middle top button and trackpoint moving activates content scrolling.) > > you cut off the evemu-describe output, so it's hard to judge if the > coordinates are out of whack. complete output: blash@S440 ~ % sudo evemu-describe Available devices: /dev/input/event0: Power Button /dev/input/event1: Lid Switch /dev/input/event2: Power Button /dev/input/event3: Video Bus /dev/input/event4: Video Bus /dev/input/event5: AT Translated Set 2 keyboard /dev/input/event6: PC Speaker /dev/input/event7: HDA Intel HDMI HDMI/DP,pcm=3 /dev/input/event8: HDA Intel HDMI HDMI/DP,pcm=7 /dev/input/event9: HDA Intel HDMI HDMI/DP,pcm=8 /dev/input/event10: ThinkPad Extra Buttons /dev/input/event11: HDA Digital PCBeep /dev/input/event12: HDA Intel PCH Mic /dev/input/event13: HDA Intel PCH Front Headphone /dev/input/event14: SynPS/2 Synaptics TouchPad /dev/input/event15: TPPS/2 IBM TrackPoint /dev/input/event16: ELAN Touchscreen /dev/input/event17: Integrated Camera Select the device event number [0-17]: 14 # EVEMU 1.2 # Input device name: "SynPS/2 Synaptics TouchPad" # Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1 # Supported events: # Event type 0 (EV_SYN) # Event code 0 (SYN_REPORT) # Event code 1 (SYN_CONFIG) # Event code 2 (SYN_MT_REPORT) # Event code 3 (SYN_DROPPED) # Event code 4 ((null)) # Event code 5 ((null)) # Event code 6 ((null)) # Event code 7 ((null)) # Event code 8 ((null)) # Event code 9 ((null)) # Event code 10 ((null)) # Event code 11 ((null)) # Event code 12 ((null)) # Event code 13 ((null)) # Event code 14 ((null)) # Event type 1 (EV_KEY) # Event code 272 (BTN_LEFT) # Event code 325 (BTN_TOOL_FINGER) # Event code 328 (BTN_TOOL_QUINTTAP) # Event code 330 (BTN_TOUCH) # Event code 333 (BTN_TOOL_DOUBLETAP) # Event code 334 (BTN_TOOL_TRIPLETAP) # Event code 335 (BTN_TOOL_QUADTAP) # Event type 3 (EV_ABS) # Event code 0 (ABS_X) # Value 4531 # Min 1024 # Max 5112 # Fuzz 0 # Flat 0 # Resolution 42 # Event code 1 (ABS_Y) # Value 2021 # Min 1024 # Max 3834 # Fuzz 0 # Flat 0 # Resolution 42 # Event code 24 (ABS_PRESSURE) # Value 0 # Min 0 # Max 255 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 28 (ABS_TOOL_WIDTH) # Value 0 # Min 0 # Max 15 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 47 (ABS_MT_SLOT) # Value 0 # Min 0 # Max 1 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 53 (ABS_MT_POSITION_X) # Value 0 # Min 1024 # Max 5112 # Fuzz 8 # Flat 0 # Resolution 42 # Event code 54 (ABS_MT_POSITION_Y) # Value 0 # Min 1024 # Max 3834 # Fuzz 8 # Flat 0 # Resolution 42 # Event code 57 (ABS_MT_TRACKING_ID) # Value 0 # Min 0 # Max 65535 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 58 (ABS_MT_PRESSURE) # Value 0 # Min 0 # Max 255 # Fuzz 0 # Flat 0 # Resolution 0 # Properties: # Property type 0 (INPUT_PROP_POINTER) # Property type 2 (INPUT_PROP_BUTTONPAD) # Property type 4 (INPUT_PROP_TOPBUTTONPAD) N: SynPS/2 Synaptics TouchPad I: 0011 0002 0007 01b1 P: 15 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 01 00 00 00 00 00 B: 01 20 e5 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 11 00 80 60 06 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 14 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 1024 5112 0 0 42 A: 01 1024 3834 0 0 42 A: 18 0 255 0 0 0 A: 1c 0 15 0 0 0 A: 2f 0 1 0 0 0 A: 35 1024 5112 8 0 42 A: 36 1024 3834 8 0 42 A: 39 0 65535 0 0 0 A: 3a 0 255 0 0 0
(In reply to blash from comment #8) > > correct, and the synaptics properties have top and bottom software buttons > > set. so both should work. Can you provide a detailed account of what you > > expect to work and how it's not working right now? > > Unfortunately the same clicking behavior occurs while I'm using the > trackpoint: Single button and 1-3 finger for left, right middle click. > Operating the trackpoint and right or middle click with only one hand is not > possible, I need to use the second hand for clicking. > > In the case (active trackpoint) I would like to use clickpads top buttons. > They should work like single mechanical buttons activated by a single finger > (thumb). (e.g. pressed middle top button and trackpoint moving activates > content scrolling.) I honestly don't know what's happening here. both synaptics and libinput should just support this without any further configuration out of the box. libinput has some palm detection so that certain touches will be ignored while you're using the trackpoint. but if both devices don't work then I don't know what's going on here. I recommend getting libinput from git and running the ./tools/event-debug helper, you can easily gdb it to figure out where the events are disappearing to, or what configuration isn't happy. run it with --verbose, that gives you the software button state machine which may be enough to show what's going on here.
Since version 0.18 it is working fine. Thanks! :)
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.