Hi,
This is something that I struggled with for a long time and only recently understood how to solve the problems that I experienced.
Currently I am running a 4K screen as my main display and a QHD at my secondary. Things now look acceptable but not perfect,
particularly since my lower resolution screen is much larger than the 4K one.
**The most important realization is that if you are seeing different problems with different applications, then they are likely
different issues. **Although they are running on the same environment, apps can be built with different toolkit and even different
versions of the same toolkit, each with their own behavior.
When debugging a scaling issue, it helps to find out which toolkit version the application is using. You can go to Yast2 Software
Management and look for the particular application. Under the Dependencies tab, you will see the libraries it is using which will
tell you the toolkit. Watch for the version because correcting for gtk2 is very different than gtk5.
The easiest to fix so far is Qt5 which has settings to control scaling. You can use dconf to change those or set then using env
variables. There are three:
QT_AUTO_SCREEN_SCALE_FACTOR - Set to 0 to control scaling.
QT_SCALE_FACTOR - The actual scale factor applied to everything Qt5.
QT_SCREEN_SCALE_FACTORS - The actual scale factor applied to pixels but not font sizes.
For X directly, there is a file /etc/X11/xorg.conf.d/50-monitor.conf which lets you set the resolution in DPI. I found that I need to
reduce it significantly compared to reality, so it is mostly a trial and error process. On a 100dpi screen, having it at 144dpi gives
me usable output. On the 200dpi screen, it is set to 240dpi. Unfortunately, it is trial and error as using the real values produces
extremely large output.
Most problems were solved by searching online for scaling issues reported with each specific application and discarding most
advice older than 2 years because those tend to no longer work. On LEAP 15.1 for example, there was some chrome:/flags to
set but they are not needed on LEAP 15.2
VLC was particularly painful to fix and still has oddly scaled elements but I could never fix the one from the OpenSUSE repo
and switched it to Packman and VLC’s own repo, both with usable (but not perfect) results.
Hope this helps!