Bug 469273 - Some apps need QT_AUTO_SCREEN_SCALE_FACTOR to be set, but it's not set for XWayland apps in the Wayland session
Summary: Some apps need QT_AUTO_SCREEN_SCALE_FACTOR to be set, but it's not set for XW...
Status: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Startup process (show other bugs)
Version: 5.27.4
Platform: Other Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-05-02 15:32 UTC by ihipop
Modified: 2024-09-21 10:55 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
virtualbox with QT_AUTO_SCREEN_SCALE_FACTOR=0 looks like this very ugly (239.32 KB, image/png)
2023-05-02 15:32 UTC, ihipop
Details
virtualbox with QT_AUTO_SCREEN_SCALE_FACTOR=1 , just looks well as windows/X11 (429.33 KB, image/png)
2023-05-02 15:34 UTC, ihipop
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ihipop 2023-05-02 15:32:38 UTC
Created attachment 158625 [details]
virtualbox with QT_AUTO_SCREEN_SCALE_FACTOR=0 looks like this very ugly

When it comes to the X11 we will make sure that:
-  [`QT_AUTO_SCREEN_SCALE_FACTOR` is set to `0`](https://invent.kde.org/plasma/plasma-workspace/-/blob/21cefd1083144e7bc51c6c9b46448a22b0a607f2/startkde/startplasma.cpp#L330)
-  [set up a list of `QT_SCREEN_SCALE_FACTORS` to list every screen's scale factor](https://invent.kde.org/plasma/plasma-workspace/-/blob/21cefd1083144e7bc51c6c9b46448a22b0a607f2/startkde/startplasma-x11.cpp#L52)

When it comes to the Wayland, the `QT_SCREEN_SCALE_FACTORS` is missing,because we don't need this,as Wayland support mixed DPI ,and   there scale factors are sent properly over wl_output

But,when lack of `QT_SCREEN_SCALE_FACTORS` , some QT application,which only support `xWayland`  need `QT_AUTO_SCREEN_SCALE_FACTOR`  to `1` to make themselves scale properly

For example, under `xWayland`,with two mixed DPI screen : 
1. [`virtualbox`](https://software.manjaro.org/package/virtualbox) with `QT_AUTO_SCREEN_SCALE_FACTOR=0` looks like this very ugly,see attachment No.1
2. [`virtualbox`](https://software.manjaro.org/package/virtualbox) with `QT_AUTO_SCREEN_SCALE_FACTOR=1` , just looks well as windows/X11

I've tried to set `QT_AUTO_SCREEN_SCALE_FACTOR=1` via `/etc/environment` or `~/.config/plasma-workspace/env/*.sh` or via `systemd` ,none of these works . I've dive into the code and find out why:

1. `plasma` has settled the environment  here : https://invent.kde.org/plasma/plasma-workspace/-/blob/21cefd1083144e7bc51c6c9b46448a22b0a607f2/startkde/startplasma.cpp#L330 ,  and this `setupPlasmaEnvironment` is called after  `EnvironmentScripts` https://invent.kde.org/plasma/plasma-workspace/-/blob/21cefd1083144e7bc51c6c9b46448a22b0a607f2/startkde/startplasma-wayland.cpp#L64-L70 ,so environments settled in the `EnvironmentScripts` will be overwrite
1. `plasma`  [will export all the settled environment back to systemd/dbus](https://invent.kde.org/plasma/plasma-workspace/-/blob/21cefd1083144e7bc51c6c9b46448a22b0a607f2/startkde/startplasma-wayland.cpp#L76) , so  environments settled in the systemd/pam mechanise will be overwrite too

basically,I can do noting to change the value of environment variable `QT_AUTO_SCREEN_SCALE_FACTOR` ,which cause some QT application which only support `xWayland` scaled at wrong size and looks ugly

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: `Y`
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.104.0
Qt Version: 5.15.8
Comment 1 ihipop 2023-05-02 15:34:02 UTC
Created attachment 158626 [details]
virtualbox with QT_AUTO_SCREEN_SCALE_FACTOR=1 , just looks well as windows/X11