Open Adriani90 opened 3 hours ago
cc: @CyrilleB79, @XLTechie, @mltony, @Simon818, @rperez030, @pitermach, @TechHorseG, @Neurrone among people who would like this flexibility of deciding when global parameters and profileName.ini parameters are used.
Is your feature request related to a problem? Please describe.
Currently, changing settings in NVDA when more than one profile is created becomes complex, especially when more than 30 profiles are used. Settings have to be changed regularly on many profiles and this cannot happen at the same time so it's very inefficient. In case of audio settings, e.g. the other apps volume adjuster does not work as expected, because the setting is profile dependent and so there is no way to change volume of all other apps except NVDA at once, because this has to be done on every profile for every application. This problem is widely described in #17124 and the solution is currently not fully solving#16052, leading to wrong explanations in the user guide. Other settings that are problematic with the current profile approach are e.g. the speech rate which often needs to be changed only temporarily, but sometimes also on a global scale and not on a profile scale. Also ther are valid use cases when screen curtain should remian global and there are use cases when it should be profile based (see #10476 for more details).
Describe the solution you'd like
In #10156 the community came to the conclusion that introducing a lock/unlock feature to every profile is the best solution and easiest to implement. Locking a profile means the parameter written to the profileName.ini cannot be changed anymore and there is nothing else written to the profileName.ini, but to the global configuration instead. User story:
Conclusion: on locked profiles, NVDA would use a combiation of settings parameters written to the profileName.ini file before, and the remaining global settings parameters which are not written to the profileName.ini file.
Problem: What happens when users focused e.g. Firefox and changed a setting (e.g. speech rate) on its profile which was unlocked before, and change that setting again after the profile was locked? In that case we would have two speech rate settings parameters, one on the global configuration and one in the Firefox profile. Does NVDA prefer the global setting? Or does the parameter which was written to the profileName.ini prevail?
My suggestion to the problem above is:
Describe alternatives you've considered
None
Additional context
This feature would introduce the risk that users get confused because some of their settings are changed after an NVDA update since the profiles get locked (e.g. if they changed the speech rate both on a profile and in the global configuration). However, this is not a big problem, users would just have to unlock their profiles in the profile manager dialog manually, or via keystroke, and the previous behavior is restored.