UI scaling issues when physical and logical screen resolutions differ on Linux

Christopher Schnick crschnick at xpipe.io
Wed Feb 21 04:57:06 UTC 2024


So I tested this on my Asahi Fedora Linux KDE setup. So you were right 
about the scaling-factor being set to 1, but I'm still a little bit 
confused about this situation.

If I go into the KDE settings, and change the display scaling to 150% 
for example, other (native) applications somehow get scaled 
appropriately. However, the scaling-factor property in gsettings is an 
integer and gets rounded down. So if I set display scaling to 150% in 
the settings, it will still get rounded down to one, leading to a wrong 
scaling for JavaFX applications. I would argue that JavaFX applications 
not scaling correctly on KDE systems is not a small issue as it makes 
some applications unusable unless the developer add support for custom 
scaling explicitly. So I have two questions:
- Is the default dpi calculation also error prone? If not, why not 
always use the manual calculation on KDE systems
- Are there better alternatives to the gsettings scaling-factor? 
Something like |org.gnome.desktop.interface text-scaling-factor|

On 16/02/2024 21:31, Martin Fox wrote:
> Hi Christopher,
>
> This may be a side-effect of using KDE. To determine the UI scale the 
> JavaFX code consults the “scaling-factor” setting in the 
> “org.gnome.desktop.interface” schema. You can check this on the 
> command line:
>
> gsettings get org.gnome.desktop.interface scaling-factor
>
> This should be 0 so JavaFX can compute the scale itself. If it’s 
> greater than 0 that’s the value JavaFX will use for the UI scale.
>
> It appears that a KDE install can set this value to 1. In my case I 
> started with the ARM version of Ubuntu server and then installed KDE 
> (kubuntu-desktop) and afterward the scaling-factor was 1. This doesn’t 
> happen when installing the standard GNOME desktop.
>
> Martin
>
>> On Feb 13, 2024, at 2:13 AM, Christopher Schnick <crschnick at xpipe.io> 
>> wrote:
>>
>> Hello,
>>
>> several users of our JavaFX applications have reported that the UI 
>> scale is too small when the physical and logical screen resolutions 
>> differ on Linux. For example in this case
>>
>> <Screenshot_20240125_115224(1).png>
>>
>> there is an implicit scaling factor of 150% included as the monitor 
>> is a 4k display but is using a lowered resolution of 2560x1440. This 
>> is then further stretched as the OS resolution is 1920x1080, but the 
>> main problem is that the 150% factor is somehow not getting picked up 
>> and JavaFX is treating this as a 4k display, thus making everything 
>> too small. For now these users can use -Dglass.gtk.uiScale=1.5 but 
>> that is not a nice solution to this problem.
>>
>> Best
>> Christopher Schnick
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20240221/936f3cf9/attachment.htm>


More information about the openjfx-dev mailing list