1

I'm a Linux learner, so go a little light with me please. I'm using Linux mint with XFCE4, not particularly heavily customized. I am using it on a laptop which uses an Elantech touch pad. Using the Elantech touch pad, by default, is quite terrible. It is incredibly inaccurate and frustrating to use, especially because it goes too fast when attempting subtle movements. When I try to change the settings for sens and acceleration in both the XFCE4 settings gui and xinput with, for example:

xinput set-prop 'Elan Touchpad' 'Device Accel Constant Deceleration' 1.0

a whole load of nothing happens. This applies to my USB mouse too. At first I figured these may only apply after a reboot, so that's what I did. When it got back, all of the props listed with

xinput list-props 'Elan Touchpad'

were reset to what they were before I rebooted. After further testing, I saw that after a logoff and login, they were also reset.

So where I am:

Do Xinput setting changes require a reboot? If not, then it seems like some other software is controlling my mouse and I need to diagnose that.

Where are the possible spots in the login/boot process where these settings would be set? They are not in /usr/share/X11/xorg.conf.d, yes I have checked for sure.

Could I totally avert this with new mouse drivers? Any recommendations for Elantech touch pads? I have seen others with this problem (crappy elan pad drivers) but no suggestions.

Thanks much.

2 Answers 2

2

Be sure the settings are accepted without error by xinput. Then these can be put into a shell script. Mine are in .xinputrc loaded by .xinitrc. My i2c touchpad probably isn't the same so be careful and don't copy everything verbatim. Here is my setup:

#!/bin/sh
xinput --set-prop "ELAN1300:00 04F3:3057 Touchpad" "Device Accel Profile" "1"
xinput --set-prop "ELAN1300:00 04F3:3057 Touchpad" "Device Accel Constant Deceleration" "1.000000"
xinput --set-prop "ELAN1300:00 04F3:3057 Touchpad" "Device Accel Adaptive Deceleration" "1.000000"
xinput --set-prop "ELAN1300:00 04F3:3057 Touchpad" "Device Accel Velocity Scaling" "1.000000"
xinput --set-ptr-feedback "ELAN1300:00 04F3:3057 Touchpad" 4 2 1

Then the settings can be found using xinput:

Device 'ELAN1300:00 04F3:3057 Touchpad':
Device Enabled (152):   1
Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (280): 1
Device Accel Constant Deceleration (281):   1.000000
Device Accel Adaptive Deceleration (282):   1.000000
Device Accel Velocity Scaling (283):    1.000000
Synaptics Edges (284):  128, 3080, 119, 2091
Synaptics Finger (285): 5, 60, 0
Synaptics Tap Time (286):   180
Synaptics Tap Move (287):   171
Synaptics Tap Durations (288):  180, 2, 100
Synaptics ClickPad (289):   1
Synaptics Middle Button Timeout (290):  0
Synaptics Two-Finger Pressure (291):    282
Synaptics Two-Finger Width (292):   7
Synaptics Scrolling Distance (293): 154, 77
Synaptics Edge Scrolling (294): 0, 0, 0
Synaptics Two-Finger Scrolling (295):   1, 0
Synaptics Move Speed (296): 1.000000, 1.000000, 0.000000, 0.000000
Synaptics Off (297):    1 <- because of syndaemon with typing
Synaptics Locked Drags (298):   0
Synaptics Locked Drags Timeout (299):   5000
Synaptics Tap Action (300): 0, 0, 0, 0, 0, 0, 0
Synaptics Click Action (301):   1, 3, 2
Synaptics Circular Scrolling (302): 0
Synaptics Circular Scrolling Distance (303):    0.100000
Synaptics Circular Scrolling Trigger (304): 0
Synaptics Circular Pad (305):   0
Synaptics Palm Detection (306): 1
Synaptics Palm Dimensions (307):    10, 200
Synaptics Coasting Speed (308): 20.000000, 50.000000
Synaptics Pressure Motion (309):    30, 160
Synaptics Pressure Motion Factor (310): 1.000000, 1.000000
Synaptics Grab Event Device (311):  0
Synaptics Gestures (312):   1
Synaptics Capabilities (313):   1, 0, 0, 1, 1, 0, 0
Synaptics Pad Resolution (314): 32, 31
Synaptics Area (315):   0, 0, 0, 0
Synaptics Soft Button Areas (316):  1924, 0, 1812, 0, 1283, 1892, 1812, 0
Synaptics Noise Cancellation (317): 19, 19
Device Product ID (276):    1267, 12375
Device Node (275):  "/dev/input/event15"

There are some settings shown in the Xorg.0.log I don't know how to set so that is still a mystery:

 [21.058] (II) config/udev: Adding input device ELAN1300:00 04F3:3057 Touchpad (/dev/input/event15)
 [21.058] (**) ELAN1300:00 04F3:3057 Touchpad: Applying InputClass "evdev touchpad catchall"
 [21.058] (**) ELAN1300:00 04F3:3057 Touchpad: Applying InputClass "libinput touchpad catchall"
 [21.058] (**) ELAN1300:00 04F3:3057 Touchpad: Applying InputClass "touchpad catchall"
 [21.058] (**) ELAN1300:00 04F3:3057 Touchpad: Applying InputClass "Default clickpad buttons"
 [21.058] (**) ELAN1300:00 04F3:3057 Touchpad: Applying InputClass "touchpad catchall"
 [21.058] (**) ELAN1300:00 04F3:3057 Touchpad: Applying InputClass "Synaptics Clickpad"
 [21.058] (II) LoadModule: "synaptics"
 [21.059] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
 [21.060] (II) Module synaptics: vendor="X.Org Foundation"
 [21.060]   compiled for 1.20.0, module version = 1.9.1
 [21.060]   Module class: X.Org XInput Driver
 [21.060]   ABI class: X.Org XInput driver, version 24.1
 [21.060] (II) Using input driver 'synaptics' for 'ELAN1300:00 04F3:3057 Touchpad'
 [21.060] (**) ELAN1300:00 04F3:3057 Touchpad: always reports core events
 [21.060] (**) Option "Device" "/dev/input/event15"
 [21.186] (II) synaptics: ELAN1300:00 04F3:3057 Touchpad: found clickpad property
 [21.186] (--) synaptics: ELAN1300:00 04F3:3057 Touchpad: x-axis range 0 - 3208 (res 31)
 [21.186] (--) synaptics: ELAN1300:00 04F3:3057 Touchpad: y-axis range 0 - 2210 (res 32)
 [21.186] (II) synaptics: ELAN1300:00 04F3:3057 Touchpad: device does not report pressure, will use touch data.
 [21.186] (II) synaptics: ELAN1300:00 04F3:3057 Touchpad: device does not report finger width.
 [21.186] (--) synaptics: ELAN1300:00 04F3:3057 Touchpad: buttons: left double triple
 [21.186] (--) synaptics: ELAN1300:00 04F3:3057 Touchpad: Vendor 0x4f3 Product 0x3057
 [21.186] (--) synaptics: ELAN1300:00 04F3:3057 Touchpad: invalid pressure range.  defaulting to 0 - 255
 [21.186] (--) synaptics: ELAN1300:00 04F3:3057 Touchpad: invalid finger width range.  defaulting to 0 - 15
 [21.186] (**) Option "FingerLow" "5"
 [21.186] (**) Option "FingerHigh" "60"
 [21.186] (**) Option "MaxTapTime" "1"
 [21.186] (**) Option "MaxDoubleTapTime" "2"
 [21.186] (**) Option "HasSecondarySoftButtons" "0"
 [21.186] (**) Option "EmulateMidButtonTime" "0"
 [21.187] (**) Option "VertScrollDelta" "154"
 [21.187] (**) Option "CornerCoasting" "0"
 [21.187] (**) Option "LockedDrags" "0"
 [21.187] (**) Option "CircularPad" "0"
 [21.187] (**) Option "PalmDetect" "1"
 [21.187] (**) Option "MinSpeed" "0.9"
 [21.187] (**) Option "MaxSpeed" "0.9"
 [21.187] (**) Option "AccelFactor" "0"
 [21.187] (**) Option "SoftButtonAreas" "60% 0 82% 0 40% 59% 82% 0"
 [21.187] (--) synaptics: ELAN1300:00 04F3:3057 Touchpad: touchpad found
 [21.187] (**) ELAN1300:00 04F3:3057 Touchpad: always reports core events
 [21.206] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-6/i2c-ELAN1300:00/0018:04F3:3057.0001/input/input18/event15"
 [21.206] (II) XINPUT: Adding extended input device "ELAN1300:00 04F3:3057 Touchpad" (type: TOUCHPAD, id 11)
 [21.206] (**) synaptics: ELAN1300:00 04F3:3057 Touchpad: (accel) MinSpeed is now constant deceleration 1.1
 [21.206] (**) synaptics: ELAN1300:00 04F3:3057 Touchpad: (accel) MaxSpeed is now 1.00
 [21.206] (**) synaptics: ELAN1300:00 04F3:3057 Touchpad: (accel) AccelFactor is now 0.000
 [21.206] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) keeping acceleration scheme 1
 [21.206] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) acceleration profile 1
 [21.206] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) acceleration factor: 2.000
 [21.206] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) acceleration threshold: 4
 [21.207] (--) synaptics: ELAN1300:00 04F3:3057 Touchpad: touchpad found
 [21.208] (II) config/udev: Adding input device ELAN1300:00 04F3:3057 Touchpad (/dev/input/mouse0)
 [21.208] (**) ELAN1300:00 04F3:3057 Touchpad: Ignoring device from InputClass "touchpad ignore duplicates"

My /etc/X11/xorg.conf.d/70-synaptics.conf has these as mentioned by the previous answer except without the xinput settings you are making and not included in the synaptics driver:

Section "InputClass"
    Identifier "Synaptics Clickpad"
    Driver "synaptics"
    MatchIsTouchpad "on"

    Option "SoftButtonAreas" "60% 0 82% 0 40% 59% 82% 0"
    Option "MaxTapTime" "1"
    Option "MaxDoubleTapTime" "2"
    Option "HasSecondarySoftButtons" "0"
    Option "EmulateMidButtonTime" "0"
    Option "CornerCoasting" "0"
    Option "FingerLow" "5"
    Option "FingerHigh" "60"
    Option "LockedDrags" "0"
    Option "CircularPad" "0"
    Option "PalmDetect" "1"
    Option "AccelFactor" "0"
    Option "VertScrollDelta" "154"
    Option "MinSpeed" "0.9"
    Option "MaxSpeed" "0.9"
    Option "AccelProfile" "flat"
    Option "AccelSpeed" "0.0"
EndSection

I wish there was an easy way to dump the current settings from xinput into a config file that can be loaded each time and easily modified. A simple awk script would probably work also.

EDIT: Mystery dissolved. I finally got the acceleration settings into a new file: /etc/X11/xorg.conf.d/80-pointer.conf

Section "InputClass"
  Identifier "ELAN1300"
  MatchIsTouchpad "on"
  MatchProduct "ELAN1300:00"
  Option "AccelerationProfile" "1"
  Option "AccelerationScheme" "predictable"
  Option "AccelerationThreshold" "5"
  Option "AccelerationNumerator" "2"
  Option "AccelerationDenominator" "1"
  Option "ConstantDeceleration" "2.4"
  Option "AdaptiveDeceleration" "2.1"
EndSection

Then I get these in my Xorg.0.log:

[ 16732.671] (II) XINPUT: Adding extended input device "ELAN1300:00 04F3:3057 Touchpad" (type: TOUCHPAD, id 11)
[ 16732.671] (**) synaptics: ELAN1300:00 04F3:3057 Touchpad: (accel) MinSpeed is now constant deceleration 2.5
[ 16732.671] (**) synaptics: ELAN1300:00 04F3:3057 Touchpad: (accel) MaxSpeed is now 1.75
[ 16732.671] (**) synaptics: ELAN1300:00 04F3:3057 Touchpad: (accel) AccelFactor is now 0.051
[ 16732.671] (**) Option "AccelerationScheme" "predictable"
[ 16732.671] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) keeping acceleration scheme 1
[ 16732.671] (**) Option "ConstantDeceleration" "2.4"
[ 16732.671] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) constant deceleration by 2.4
[ 16732.671] (**) Option "AdaptiveDeceleration" "2.1"
[ 16732.671] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) adaptive deceleration by 2.1
[ 16732.671] (**) Option "AccelerationProfile" "1"
[ 16732.672] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) acceleration profile 1
[ 16732.672] (**) Option "AccelerationNumerator" "2"
[ 16732.672] (**) Option "AccelerationDenominator" "1"
[ 16732.672] (**) Option "AccelerationThreshold" "5"
[ 16732.672] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) acceleration factor: 2.000
[ 16732.672] (**) ELAN1300:00 04F3:3057 Touchpad: (accel) acceleration threshold: 5

So the shell script is no longer needed to change these settings. They are a part of the Xserver instead of the synaptics driver. These acceleration settings seem to work fine even though I don't have them figured out. I was actually trying to get better control of the tapping and clicking. I now am using VertEdgeScroll instead of VertTwoFingerScroll and some instabilities are gone.

0

1) xinput changes are made directly to the X server input drivers. They are effective at once, they don't require a reboot, and they are not stored anywhere, so after a reboot or restart of the X server they will be gone.

2) To make permanent changes, the simplest way is to create an xorg.conf with an InputDevice or InputClass section. These section(s) are not present in a default xorg.conf (in fact, often there's no xorg.conf at all) and must be added.

Careful, the options don't always have exactly same names as in the xinput property list. Pay attention to spaces and upper/lowercase. See man xorg.conf, man evdev and the manpage of the driver for you Elan Touchpad (see Xorg.log) for details. There's also plenty of tutorials on the web.

3) I'm, not familiar with the Elan Touchpad, and I haven't seen the complete list of properties, but often properties work in concert, and may only be effective in some modes or configurations (controlled by other properties). So you may need to set other properties before changes to 'Device Accel Constant Deceleration' take effect. Also, make sure to check with -list-props again that the setting was registered.

You must log in to answer this question.