How to Change Volume Step Count?

How can I change the volume step count? Currently it’s 5 steps (20%, 40%…100%), however I find: 1) I want 30% for my ringtone as 20% is too quiet and 40% is too loud, and 2) call volume at it’s lowest is too loud. It’s really odd. I’ve seen a patch that can achieve it, but I’m under the impression patchmanager doesn’t not work for Sailfish 4. That patch hasn’t been updated for a while either.

Any suggestions? Please and thank you.

2 Likes

I would prefer finer steps too. And more control about min and max too. I did edit one file in the past. I don’t remember which one right now but there are many more info on old forum (one of many topic on the theme).

/usr/share/jolla-settings/pages/sounds/VolumeSliderController.qml has a property stepsize (default 20).

setting it to something lower should achieve that, at least on the settings page.

2 Likes

Thanks. Not the perfect solution, but I should have looked harder. I did think I saw it before, but obviously did a poor search this time round when I actually wanted to make the change.

I used this thread, and editted this file: /usr/share/lipstick-jolla-home-qt5/volumecontrol/VolumeControl.qml to at least get the ringtone volume in 10% increments.

Cheers.

Thanks, that one is much easier than the one I had to edit.

I made this, please test (patchmanager web catalog):

https://coderus.openrepos.net/pm2/project/patch-volume-fine-control

Thank you. I was able to download it (plus your most recent version), but since upgrading from Sailfish 3 to 4, patchmanager 3 doesn’t work 100%. It would start up at boot, and attempt to apply patches, but they didn’t want to patch. I removed busybox-symliks-bash, and the others seem to work, but not your one “failed to install patch”. For reference, I’m able to install “default allowed orientations patch” and it installs fine.

Did you remove your manual modifications before trying the patch? If not, do that beforehand.

Also, if you select patch info on the patch in pm, does it tell you where it fails?

And: Koli or Kvarken?

I hadn’t, but now I have, and it didn’t solve the issue, though now I’m wondering if there was something I’ve changed that I can’t remember changing (10% unsure).

No, no fail info, it just comes up with a notification sailing installation failed.

Kvarken.

Is there an easy way to replace the edited files with default, in case i did make a change that’s causing issues?

I suspect you didn’t completely reverse your changes, and that causes the patching to fail.

The general recipe is this:

find out which files are patched by my patch:

grep +++ /usr/share/patchmanager/patches/patch-volume-fine-control/unified_diff.patch

+++ /usr/share/jolla-settings/pages/sounds/VolumeSliderController.qml   2021-08-20 08:28:10.084498076 +0200
+++ /usr/share/lipstick-jolla-home-qt5/volumecontrol/VolumeControl.qml  2021-08-20 08:33:03.812916850 +0200

find out which packages own these files:

rpm -qf /usr/share/jolla-settings/pages/sounds/VolumeSliderController.qml /usr/share/lipstick-jolla-home-qt5/volumecontrol/VolumeControl.qml

jolla-settings-system-1.1.40-1.47.19.jolla.armv7hl
lipstick-jolla-home-qt5-1.23.12.10-1.54.6.jolla.armv7hl

download the packages:

pkcon download /tmp jolla-settings-system
pkcon download /tmp  lipstick-jolla-home-qt5

extract the package contents

cd /tmp
mkdir extract
cd extract
rpm2cpio /tmp/jolla-settings-system*.rpm | cpio -id
rpm2cpio /tmp/lipstick-jolla-home-qt5*.rpm | cpio -id

You now have a directory structure under /tmp/extract which contains all the files from the packages. You can now sync up the installed ones with the ones from the package.
Remember to clean up the things in /tmp after you’re done to save some precious memory.

You could also simply do a pkcon install --allow-reinstall jolla-settings-system but the above is the general approach to compare package and installed files. Also, doing a reinstall is sometimes a bit dangerous because of pre/post scripts that may change things you do not want changed.
It’s also NOT smart to have any patches applied while running that.

1 Like

Thank you, this is an awesome guide. I really appreciate your help.

Unfortunately I couldn’t get cpio working (even though those files exist):

[root@Xperia10 extract]# rpm2cpio /tmp/jolla-settings-system*.rpm | cpio -i
cpio: can't open './usr/lib/locale/locale-archive': No such file or directory
[root@Xperia10 extract]# rpm2cpio /tmp/lipstick-jolla-home-qt5*.rpm | cpio -i
cpio: can't open './etc/mce/60-devicelock-lipstick-jolla-home.conf': No such file or directory

I then just did the reinstall method, and now your patch works great. Thank you! Great to know what the proper method looks like.

Wow, you really don’t need to run this as root! Normal user will do fine.

and yeah, my bad, it should be cpio -id, post above edited.

This is what I got when not root:

[defaultuser@Xperia10 extract]$ rpm2cpio /tmp/jolla-settings-system*.rpm | cpio -id
cpio: can't create directory './usr/': Permission denied
cpio: can't open './usr/': Is a directory

Thanks for your updated command line, it now worked.

That’s because the ‘extract’ directory was created and owned by root.

That makes sense. Thanks for putting up with my ignorance.