TerryH wrote: ↑Tue Mar 16, 2021 9:23 pm
It is fairly simple to do from command line using xinput.
The change made using the xinput command didn't survive a boot/reboot when selecting to save changes. To get it to work on startup I added a line to /etc/rc.d/rc.local. I added xinput set-prop 14 336 1 to the end of the script. Or adding a script in /root/Startup works also.
Command syntax:
xinput set-prop device option setting
The following was done on my Dell laptop which has ALPS GlidePoint touchpad.
1 - Identify Touchpad
Code: Select all
# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen touch id=11 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=14 [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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated_Webcam_HD: Integrate id=10 [slave keyboard (3)]
↳ Dell WMI hotkeys id=12 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
2 - List the properties for the ALPS GlidePoint (id=14)
Code: Select all
# xinput list-props 14
Device 'AlpsPS/2 ALPS GlidePoint':
Device Enabled (178): 1
Coordinate Transformation Matrix (180): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (336): 1
libinput Tapping Enabled Default (337): 0
libinput Tapping Drag Enabled (338): 1
libinput Tapping Drag Enabled Default (339): 1
libinput Tapping Drag Lock Enabled (340): 0
libinput Tapping Drag Lock Enabled Default (341): 0
libinput Tapping Button Mapping Enabled (342): 1, 0
libinput Tapping Button Mapping Default (343): 1, 0
libinput Natural Scrolling Enabled (344): 0
libinput Natural Scrolling Enabled Default (345): 0
libinput Disable While Typing Enabled (346): 1
libinput Disable While Typing Enabled Default (347): 1
libinput Scroll Methods Available (348): 1, 1, 0
libinput Scroll Method Enabled (349): 1, 0, 0
libinput Scroll Method Enabled Default (350): 1, 0, 0
libinput Middle Emulation Enabled (351): 1
libinput Middle Emulation Enabled Default (352): 1
libinput Accel Speed (353): 0.000000
libinput Accel Speed Default (354): 0.000000
libinput Accel Profiles Available (355): 1, 1
libinput Accel Profile Enabled (356): 1, 0
libinput Accel Profile Enabled Default (357): 1, 0
libinput Left Handed Enabled (358): 0
libinput Left Handed Enabled Default (359): 0
libinput Send Events Modes Available (299): 1, 1
libinput Send Events Mode Enabled (300): 0, 0
libinput Send Events Mode Enabled Default (301): 0, 0
Device Node (302): "/dev/input/event18"
Device Product ID (303): 2, 8
libinput Drag Lock Buttons (360): <no items>
libinput Horizontal Scroll Enabled (361): 1
3 - Set the option property off (0)/ on (1)
The following 2 commands will turn Tapping on:
Code: Select all
# xinput set-prop 14 336 1
OR
# xinput set-prop 14 "libinput Tapping Enabled" 1
The following 2 commands will turn Tapping off:
Code: Select all
# xinput set-prop 14 336 0
OR
# xinput set-prop 14 "libinput Tapping Enabled" 0
.
Hi TerryH - thanks for the indepth example. Much appreciated. Unfortunately it seems that my touchpad is only detected as "mouse0" and as far as i can tell lacks any control over the tap-to-click function within ScPup64. Maybe a kernel / hardware incompatibility. Although I am pretty sure my Dell laptop has a similar ALPS device as yours does here is the info returned by xinput:
Code: Select all
# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Mouse0 id=6 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Keyboard0 id=7 [slave keyboard (3)]
# xinput list-props 6
Device 'Mouse0':
Device Enabled (131): 1
Coordinate Transformation Matrix (133): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (245): 0
Device Accel Constant Deceleration (246): 1.000000
Device Accel Adaptive Deceleration (247): 1.000000
Device Accel Velocity Scaling (248): 10.000000
Device Node (249): "/dev/mouse"
Button Labels (250): "Button Left" (134), "Button Middle" (135), "Button Right" (136), "Button Wheel Up" (137), "Button Wheel Down" (138), "Button Horiz Wheel Left" (139), "Button Horiz Wheel Right" (140), "Button Unknown" (244), "Button Unknown" (244)
Mouse Middle Button Emulation (251): 1
Mouse Middle Button Timeout (252): 50
Interestingly when i boot the same laptop into upupBB32 xinput correctly identifies the touchpad :
Code: Select all
# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Webcam id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
When i ask for the properties it doesnt appear to be using libinput - it seems to be using synclient to do so which is weird because if i issue the command "synclient -l" it tells me that no synaptics driver is loaded.
Code: Select all
# xinput list-props 11
Device 'AlpsPS/2 ALPS GlidePoint':
Device Enabled (137): 1
Coordinate Transformation Matrix (139): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (265): 1
Device Accel Constant Deceleration (266): 2.500000
Device Accel Adaptive Deceleration (267): 1.000000
Device Accel Velocity Scaling (268): 12.500000
Synaptics Edges (269): 153, 870, 115, 652
Synaptics Finger (270): 12, 15, 0
Synaptics Tap Time (271): 180
Synaptics Tap Move (272): 56
Synaptics Tap Durations (273): 180, 180, 100
Synaptics ClickPad (274): 0
Synaptics Middle Button Timeout (275): 75
Synaptics Two-Finger Pressure (276): 141
Synaptics Two-Finger Width (277): 7
Synaptics Scrolling Distance (278): 25, 25
Synaptics Edge Scrolling (279): 1, 0, 0
Synaptics Two-Finger Scrolling (280): 0, 0
Synaptics Move Speed (281): 1.000000, 1.750000, 0.156495, 0.000000
Synaptics Off (282): 0
Synaptics Locked Drags (283): 0
Synaptics Locked Drags Timeout (284): 5000
Synaptics Tap Action (285): 2, 3, 0, 0, 1, 3, 0
Synaptics Click Action (286): 1, 1, 0
Synaptics Circular Scrolling (287): 0
Synaptics Circular Scrolling Distance (288): 0.100000
Synaptics Circular Scrolling Trigger (289): 0
Synaptics Circular Pad (290): 0
Synaptics Palm Detection (291): 0
Synaptics Palm Dimensions (292): 10, 100
Synaptics Coasting Speed (293): 20.000000, 50.000000
Synaptics Pressure Motion (294): 15, 80
Synaptics Pressure Motion Factor (295): 1.000000, 1.000000
Synaptics Resolution Detect (296): 1
Synaptics Grab Event Device (297): 0
Synaptics Gestures (298): 1
Synaptics Capabilities (299): 1, 1, 1, 0, 0, 1, 0
Synaptics Pad Resolution (300): 1, 1
Synaptics Area (301): 0, 0, 0, 0
Synaptics Noise Cancellation (302): 6, 6
Device Product ID (260): 2, 8
Device Node (261): "/dev/input/event4"
It is a bit confusing because it offers property 285 "synaptics tap action" with 7 different parameters.
However i saw property 282 "synaptics off" and tried changing it from 0 to 2 (which i know is the normal value when synaptics driver is loaded and tap-to-click off) and it responded correctly.
So - with the following command i can control upupBB32 (on this laptop at least...) tap-to-click off:
(which is handy because it turns out that when i use the ydrv.sfs method I tried in the previous post above there is a strange residual effect where middle click function is corrupted by the libinput config in the ydrv)