Touchpad too sensitive and no option to adjust it

Thanks. Took me two days to read through different information, understand it and then apply it, but I learned a lot during the process :smiley:

1 Like

I commend you for that because a lot of people just expect you to fix it for them which isn’t that easy. I tend to try to skim information and figure out what is relevant that may help. Doesn’t always but i try with the limited knowledge i have also. Everything is pretty deep as you probably have learned. :grinning:

1 Like

An update from my touchpad: for almost two weeks the touchpad has worked well. Now a few days ago, my touchpad has become extremely sensitive and difficult to handle again. I cannot tell what has caused my touchpad to become so pressure sensitive again. Maybe some update
?

After trying around different things, I tried using synclient as suggested above. I found these two vaues in the synclient documentation:

" ‘FingerLow’: When finger pressure drops below this value, the driver counts it as a release. Property: “Synaptics Finger”
‘FingerHigh’: When finger pressure goes above this value, the driver counts it as a touch. Property: “Synaptics Finger” "

The values for my touchpad are 12 for “FingerLow” and 15 for “FingerHigh”, much too sensitive.
Now by typing into the terminal “$ synclient FingerHigh=[some value between 90 and 105]”, I seem to be able to approximately adjust the value “FingerHigh” so that touching works well.

But what makes using the touchpad really difficult is that when I release my finger from it, the pointer often jumps away, clearly because of the low value for “FingerLow”. When starting writing this post, I could not change the value to anything more than 15:

$ synclient FingerLow=16
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  37 (X_ChangeDeviceProperty)
  Value in failed request:  0x126
  Serial number of failed request:  22
  Current serial number in output stream:  25


 And now, while writing this post I tried again a few times, and it suddenly worked. Typing “$ synclient FingerLow=80” into the terminal, the touchpad sensitivity is much better again. Something is still not completely right, but it’s good to use now.
I still do not understand neither why the error message above appeared an hour ago nor why it doesn’t appear now. For the time being it’s working. If not, this thread is probably to be continued 


1 Like

Try to look at the packages that have changed recently and maybe identify the culprit, then downgrade it and hold it for a while til the next update of that package.

Thanks a lot for the advice.
I have tried now to search for recently installed packages: $ grep -i installed /var/log/pacman.log and recently upgraded ones: grep -i upgraded /var/log/pacman.log, which lists 2 installed and 80 upgraded packages during the last few days. I am not sure how to find out the culprit, but I have tried pactree -r for some of them now and looked up some packages online.

Some suspects:

  1. [2021-03-28T14:14:04+0200] [ALPM] installed libmanette (0.2.6-1). libmanette is a “game controller library” for gamepads. This newly installed package, which obviously came with a system update, is my main suspect, but libmanette has lots of dependencies, so I am not able to remove it.

  2. a package name starting with python- ? Especially a dependency of one of them:

$ pactree -r python-setuptools
python-setuptools
└─glances
$ glances
You are using Glances version 3.1.5, however version 3.1.6.2 is available.
You should consider upgrading using: pip install --upgrade glances

and as of now, I cannot update glances to this new version with pacman -S or pacman -Syu.

  1. My logic may be totally wrong, but because I had to do with libevdev and libinput earlier, could packages starting wit “lib
” be the problem? From what I find out from my online search, libldap,libssh2 and libwpe don’t seem to be related to a touchpad though, and I don’t find out what libxaw does.

Could libmanette be the problem? If not, what would be a good way to scan the 80 most recently upgraded packages for a problem? Most of them I have no clue what they do.

i’d look more for packages with “input”, than for “lib”, almost everything uses a library of some sort or another.

I can really not see which upgraded package could have anything to do with my touchpad/input/synaptics/

I am attaching a list of upgraded and installed packages during the past 2 weeks. Maybe someone else can have a look at it?

Meanwhile as a temporary solution, typing synclient FingerLow=94 && synclient FingerHigh=90 in the terminal helps. I am trying to create a script with this content 


#!/bin/sh
sleep 10
synclient FingerLow=94 && synclient FingerHigh=90
exit 0


 and would like it to automatically run after startup. But how do I do that? I’ve tried different ways as described in different forums, but didn’t succeed.

the only packages that seem relevant to me are these.
[2021-03-24T17:04:35+0100] [ALPM] upgraded libinput (1.17.0-1 → 1.17.1-1)
[2021-03-18T20:37:49+0100] [ALPM] installed xf86-input-synaptics (1.9.1-2)
[2021-03-18T20:38:39+0100] [ALPM] installed xf86-input-evdev (2.10.6-2)

why did you install libmanette, do you have a controller? could it interfere with the other input devices?

OK, I will try to downgrade libinput and tell what happened.

xf86-input-synaptics and xf86-input-evdev were what I installed to use synaptics drivers for my touchpad in, see post 14 above.

libmanette seems to have installed itself during an update, I did not install it actively. I don’t have a controller and don’t use one, so I don’t need libmanette at all. When I try to remove it with pacman, it doesn’t remove it because of lots of dependencies.

After sudo downgrade libinput (from version 1.17.1 to 1.17.0, as it was before) and after a reboot, the touchpad’s pressure sensitivity is still so high.
So if probably libmanette is to blame, how can I get rid of it without breaking my system?

If you check with pacman -Qi libmanette you will see it is require by webkit2gtk which has a lot of dependencies so i don’t think you could remove it easily. :thinking: I’m not very well versed when it comes to this.

Thanks for all the help so far. So I will not touch libmanette for now.

For the time being, I would like to run a script that sets “synclient FingerHigh=94 && synclient FingerLow=90” at every startup, as written above. This is how I tried this a number of times after reading through lots of online forums:

  • Created a file in /usr/local/bin/ called synclient-finger.sh which contains the script to reduce touchpad sensitivity. Made the file executable (755) with chmod. It contains following text
#!/bin/sh
sleep 10
synclient FingerHigh=94 && synclient FingerLow=90
exit 0
  • created a service sudo nano /etc/systemd/system/touchpad-finger.service with the following text
[Unit]
Description=Touchpad-Finger

[Service]
Type=simple
ExecStart=/bin/bash /usr/local/bin/synclient-finger.sh

[Install]
WantedBy=multi-user.target
  • typed in the terminal systemctl enable touchpad-finger.service and then systemctl start touchpad-finger.service

and don’t know what I’m doing wrong that it doesn’t work. When trying systemctl list-units --type=service, my touchpad-finger.service is not listed. Is there any way suitable for noobs to make that script work when booting?

I have also tried to put it (the script file or the terminal command) into the xfce autostart settings, but failed, too.

There are still many things which I don’t understand in e.g. manpages and the arch wiki. For some time, it has been cool to learn so many things by trying to fix something. But at the risk of violating the forum rules with offensive content đŸȘŸ: During the last two days I am considering switching back to Windows 7.

Edit: Corected the values of the terminal command. They are synclient FingerHigh=94 && synclient FingerLow=90, not synclient FingerLow=94 && synclient FingerHigh=90, as I’ve written before. The problem still persists though.

1 Like

No don’t do that. :scream:

The output of systemctl list-units --type=service --all includes my service as an inactive service

  UNIT                              LOAD     ACTIVE    SUB    DESCRIPTION
[...]
  touchpad-finger.service           loaded   inactive  dead   Touchpad-Finger
[...]
LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

and the output of systemctl list-unit-files

UNIT FILE                     STATE        VENDOR PRESET
[...]
touchpad-finger.service       enabled      disabled
[...]

When I systemctl start touchpad-finger.service and then check systemctl status touchpad-finger.service, it is active for a few seconds, and then it’s dead again.

Should I probably start a new thread with the topic of startup services?

doesn’t your script simply exit after it finishes running? is there a need for the service to continue running? looks like a run-once script to me.

Anyway it’s probably a good idea to open a new thread for help with writing a service.

I must say I admire your tenacity. Digging for a solution and coming closer to it inch by inch.

I know this may sound odd, and may have no relation what so ever, but are you running the linux kernel? I used to get all kinds of wonky things to come and go on my old X1 Carbon unless I was running the LTS kernel. You should always try another kernel, I’ve had it fix more “unknown” causes than anything else I’ve ever done.

If you don’t have any other kernels yet, use the package - akm (Arch Kernel Manager) in your menu, and give the LTS a shot. It would be my recommendation for almost all users anyway, especially if you’re running a 10 year old Lenovo. That’s prime for it.

Thank you a lot for your support.

I now got the script working through the xfce startup settings by creating a startup application there with my command synclient FingerHigh=94 && synclient FingerLow=90. And I removed my self-created .service file. It’s working now again as a simple way to circumvent the issue.

Yes, I’ve done that some days after installing EndeavourOS. That’s another story: Selected the linux-lts kernel in akm, and after some days of running it saw that it works very well. Tried several times to remove the linux kernel in akm, rotated the screen 90 degrees so I could click the Execute button :face_with_monocle:, but I cannot remove the kernel because of dependency r8168. There does exist a r8168-lts, but as long as the linux kernel does not interfer with something important, I decided to just keep the kernel before I break something.

For now, my touchpad is working well from startup. I will keep an eye on it for the time to come.

1 Like

Not sure what that’s about (!) but it sounds strange. Does the app not fit on your screen properly? IF there are too many kernels to fit, try
- - scroll appended to the akm startup to enable scrolling


Jes’ saying
 :grin:

2 Likes

Very cool! Congrats.

Unless you’re extremely insistent on keeping minimum packages or you’re in extreme need of hard disk space, there’s not really any good reason to not just carry the Linux kernel anyway. I always have both available just in case.

1 Like

Thank you for your advice, I wanted to avoid unnecessary update downloads of a kernel I don’t use, but yes, it’s better to keep it as it is in case I need the other kernel.

There was that small bug about a week ago where the window of akm was too long and the icon far below the end of my screen. Today I have learned that, in XFCE, I can use Alt+left click to move any window from anywhere and Alt+right click to resize any window in any way. Back then I didn’t know that and rotated my 16:9 display 90 degrees, so the icon was visible on screen. A cheap, clumsy trick, but worked well.

2 Likes