Ideally, KeePass would remember separate display settings for each screen configuration (consisting of positions, sizes and DPIs of all screens). Various settings would be affected by this. For example, depending on the width of the main window, the user might want to display more or less columns or different column width proportions; the user might want to switch between the 'Stacked' and the 'Side by side' window layout; splitter positions may be different; etc. One way to implement this reasonably would be to let the configuration system create sections in the configuration file that are dependent on the screen configuration and override the actual settings. This will be quite a lot of work to implement.
For now, I've implemented your suggestion and enhanced it. There are scenarios where the new behavior is worse than the previous one, but I think there are more users who prefer the new behavior.
The configuration file now remembers the DPI when the file was saved. When loading it again, KeePass adjusts the positions and sizes (of all windows, columns, fonts, etc.), if necessary. This approach has the following advantages:
More precision. As all positions and sizes are saved in pixels for the current DPI, a loss of precision can only occur when the user switches between different DPIs (and in this case it's minimal, converging to a stable state).
Good maintainability. All scaling is done by the configuration loader; we don't need scattered DPI scalings everywhere.
Smooth upgrade. When upgrading from KeePass 2.37 or earlier, 2.38 detects this and doesn't perform any scalings, such that everything looks like before.
I use KeePass on Windows 11 with two monitors (not high-DPI, normal), in System->Display I have a scale setting of 125%.
All the programs look fine, KeePass has the smallest fonts of all of my programs, it seems to be ignoring the Scale system setting completely.
I'm not sure why this is happening but it's not normal. The help page "How to change the GUI font (size)" at https://keepass.info/help/base/faq_tech.html#guifont tells some general tells correct things but it just doesn't help?
So I went into settings, set custom font sizes to 14pt, now it looks better.
The menu still has super-tiny font size.
Can I provide you with more information and find out if it's a problem on my side or if it's a thing to improve in the program? I just wanted to make sure anyone reads this, please confirm.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm not sure whether this is a good idea. Depending on which devices the user is using KeePass, this change might be good or not.
Ideally, KeePass would remember the window position/size for each monitor it encounters, thus I'm moving this to the open feature requests.
Thanks and best regards,
Dominik
Ticket moved from /p/keepass/patches/109/
Ideally, KeePass would remember separate display settings for each screen configuration (consisting of positions, sizes and DPIs of all screens). Various settings would be affected by this. For example, depending on the width of the main window, the user might want to display more or less columns or different column width proportions; the user might want to switch between the 'Stacked' and the 'Side by side' window layout; splitter positions may be different; etc. One way to implement this reasonably would be to let the configuration system create sections in the configuration file that are dependent on the screen configuration and override the actual settings. This will be quite a lot of work to implement.
For now, I've implemented your suggestion and enhanced it. There are scenarios where the new behavior is worse than the previous one, but I think there are more users who prefer the new behavior.
The configuration file now remembers the DPI when the file was saved. When loading it again, KeePass adjusts the positions and sizes (of all windows, columns, fonts, etc.), if necessary. This approach has the following advantages:
More precision. As all positions and sizes are saved in pixels for the current DPI, a loss of precision can only occur when the user switches between different DPIs (and in this case it's minimal, converging to a stable state).
Good maintainability. All scaling is done by the configuration loader; we don't need scattered DPI scalings everywhere.
Smooth upgrade. When upgrading from KeePass 2.37 or earlier, 2.38 detects this and doesn't perform any scalings, such that everything looks like before.
Here's the latest development snapshot for testing:
https://keepass.info/filepool/KeePass_180106.zip
Thanks and best regards,
Dominik
I lost track of this after it was moved to feature request for some reason.
I have checked the latest release (2.39.1) against my situation, and it suits what I was after.
You may resolve this request.
Thanks!
I use KeePass on Windows 11 with two monitors (not high-DPI, normal), in System->Display I have a scale setting of 125%.
All the programs look fine, KeePass has the smallest fonts of all of my programs, it seems to be ignoring the Scale system setting completely.
I'm not sure why this is happening but it's not normal. The help page "How to change the GUI font (size)" at https://keepass.info/help/base/faq_tech.html#guifont tells some general tells correct things but it just doesn't help?
So I went into settings, set custom font sizes to 14pt, now it looks better.
The menu still has super-tiny font size.
Can I provide you with more information and find out if it's a problem on my side or if it's a thing to improve in the program? I just wanted to make sure anyone reads this, please confirm.
This is a feature request ticket. You should post your question in Discussion > Help.
A quick search shows scaling is fine in W11.
If you need more help, open a new thread in Help.
cheers, Paul