How to change vibration intensity on the keyboard

Hello, the title says it all. I have a xperia 10 ii and the vibration motor feels really tough. It vibrates way more than I would want when I am typing and the faster I type the more unpleasant it feels.

I see no option to change that in the settings, so maybe there’s a way to adjust it in the config files from the terminal?

It would make using the device a whole lot nicer for me.

Thank you!

5 Likes

I haven’t tried it, but if you install profileclient, you can possibly play around with the touchscreen.vibration.level value.

On my device that has thee values, 0-2, defaulting to 1.

can you tell me how or where to get it? I can’t find it on storeman.

pkcon install profileclient

it is a command line utility.

2 Likes

Setting that to 0 disables vibration, 2 doesn’t seem to differ from 1.

Playing around with /sys/class/leds/vibrator/ doesn’t have an effect either, and neither has /usr/lib64/qt5/plugins/feedback/droid-vibrator-device.ini. At least setting the levels in this file to 0 and rebooting didn’t deactivate/decrease vibration.

I’m also interested in a solution for this, but couldn’t find one (yet).

For my feeling duration is a bit short on Xperia 10.

I looked for touchscreen.vibration.level in the sailfish repos and found it in ngfd(non graphical feedback demon). I looked a bit around. But couldn’t find where it translates the level to a hardware input. ngfd/src/ngf/haptic.c at 57ad06b6df7052a668bdba876ea3dedb8f27d4ef · sailfishos/ngfd · GitHub

Seems that we can play with vibration levels (durations) in /usr/share/ngfd/plugins.d/50-droid-vibrator.ini (Gigaser GS5 )or similar, depending of the phone model. (XA2 has both 50-droid-vibrator.ini and 60-droid-vibrator.ini )

A change on the GS5 made the kb vibra feedback work again as well as menu vibrations (was set too short to be felt) after a reboot.

The setting corresponding to the keyboard keypresses is touch_weak.

It would be easier not having to reboot to test the vibration duration but I don’t know what service t restart.
Any idea?

Edit: strangely, the fix stops working after typing some text typing/some time. No more vibrator. However, the modifications are still in the file. I have a hardware problem. When I hit the phone, it vibrates again. The mod in the above file was necessary and is working.

Does systemctl --user restart ngfd work?

Indeed, lovely, thanks a lot.
How could I have found this by myself?
I tried systemctl list diverse kind of things like units, services… but the output was so big…

I saw in the ngfd changelog that a systemd user service was added. I was thinking about this before, but i thought… Nah… Hardware related daemons are run as a system, not as user service…

Thus i did a systemctl --user | grep ngfd and found it.

1 Like

Is there a way to do this on 10 III? I changed touch_weak value and restarted ngfd, but nothing changed, as far as I can tell.

Iirc, I did set all values to 0 and rebooted, to be sure it did something.
Then, rised each value one by one and restarted the service or rebooted between each change, to discover to what line each variable corresponded.

I set all the values to 0 and rebooted. Nothing changed. I tried changing some of the values and rebooted (even restarted the service) but it didn’t change a thing.
I must’ve been doing something wrong. :confused:

I’m sorry it’s not working. I don’t own the GS5 anymore, and an 10III neither, so I can’t test.
Perhaps an extended search on the forum would provide more infos?

Not a problem, buddy. Thank you for your help.
I’ll continue searching on the forum.
Cheers