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