Thanks. Took me two days to read through different information, understand it and then apply it, but I learned a lot during the process
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.
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 âŠ
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:
-
[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. -
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.
- 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. 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 thensystemctl 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.
No donât do that.
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 , 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.
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âŠ
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.
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.