That being said, it would be super welcome if you could just add a nice little dropdown inside the app too, to let users choose between "automatic guess based on system" or a manual override such as 225%. People have been wishing for that for a decade. :D
That would allow us to have better control, and to fix the scale if Steam misdetects it (especially since even the correct dconf variable is deprecated now and won't always be correct)! This is a great opportunity to finally add that feature. :)
Scaling doesn't even work for me under Plasma. Could be that I have a NV4090? tried a few different tricks to force it, but no luck. It's all small font and scaling at 4k.
I find the same behaviour as @jarrad, nothing works with NVIDIA (using GTX 1070, i3wm, Xorg, Arch Linux with kernel 6.3.1-arch1-1, NVIDIA driver 530.41.03). This is what I tried:
-forcedesktopscaling$GDK_SCALEorg.gnome.desktop.interface.text-scaling-factor via gsettingsorg.gnome.desktop.interface.scaling-factor via gsettingsUsing a 4K display, the UI is always super small, almost illegible.
May 17th beta is out now. Sadly no notes about fixing this variable:
https://steamcommunity.com/groups/SteamClientBeta/announcements/detail/3731840159844956304
And people say the GDK_SCALE env var stopped working again.
Edit: I am trying the beta now (on NVIDIA, GNOME X11). It doesn't react to any of these anymore. So it seems like Valve may be working on implementing the proper scaling method on GNOME instead (the modern one mentioned in the 1st post):
scaling-factor, text-scaling-factor. Both are removed.GDK_SCALE (this does nothing: flatpak run --env=GDK_SCALE=2 com.valvesoftware.Steam) Maybe this was removed since people said this usage was an abuse of GDK_SCALE.But this works:
flatpak run com.valvesoftware.Steam -forcedesktopscaling 2.0I do notice some latency issues, UI isn't as snappy and the splash screen when selecting account is cut off a bit. Also window drag zones are a bit wonky.
Some other minor things like proton version selection list being compressed.
Desktop client scaling has been either broken or not working well for years. Here is another request for a manual UI scale setting in %. I run a 48" 4k monitor (Gnome), and it's hard to read the steam desktop client UI. Especially on the new beta UI preview.
I have this issue too, Gnome 44 on Fedora 38 with scale factor 200%, also on Gentoo w/Plasma 5.27 and scaling of 1.50.
Can confirm issue description:
Pop!_OS 22.04 LTS
Gnome 42.5
Single 4K display, set to 200% scaling
scaling-factor settings don't seem to be used
$ gsettings get org.gnome.desktop.interface scaling-factor
uint32 0
$ gsettings get org.gnome.desktop.interface text-scaling-factor
1.0
Monitor config within ~/.config/monitors.xml with <scale>2</scale>
<configuration>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>2</scale>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>HDMI-A-0</connector>
<vendor>TCL</vendor>
<product>50S535</product>
<serial>0x00000000</serial>
</monitorspec>
<mode>
<width>3840</width>
<height>2160</height>
<rate>60</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
@Arcitec The things you listed are all gnome-specific and should not be used by applications directly. They're meant for gnome and gtk use only.
Read Xft.dpi with XGetDefault() or similar and divide by 96. If there is no Xft.dpi, just use a scale of 1.
You can see the dpi on your system with: xrdb -query | grep Xft.dpi. On my system it's 192, so 192 / 96 = 2.
Wayland provides a nice api for window scaling (and recently, even fractional scaling). But since steam is using x11 things get a bit more complicated. From what I've gathered, there are two ways to get the display scaling factor in x11:
Xft.dpi and divide by 96.Apparently, gtk used to do the first and then fallback to the second step. But as of gtk 3.17.6, they seem to have dropped the fallback behaviour.
For fractional scaling on x11, both gnome and kde seem to have settled with with rendering with the highest integer scaling factor and downscaling. So the dpi divided by 96 (should?) always be an integer.
Valve needs to just change scale to a slider with text and let people go from say %50 to %400 in %10 increments.
Just updated to Beta 1691444934 and scaling seems correct now.
For me it is still not working. I can only get the correct scaling by specifying "-forcedesktopscale 2". Set scale to 200% in Ubuntu settings. text-scaling-factor is showing 1.0 and in monitors.xml is also set to 1 which I find a bit strange. Where is the 200% Ubuntu setting stored?
With Ubuntu 23.10 Steam flickers with me and I can not set anything in the Gui, or open.
The following error in the syslog:
xdg-desktop-portal-kde[2165]: xdp-kde-settings: Namespace "org.gnome.desktop.interface" is not supported
Still broken in the latest Steam for Linux over a year later. Using GNOME 46 on Wayland currently (Fedora 40).
I have to use STEAM_FORCE_DESKTOPUI_SCALING=2.5 environment variable to force this garbage UI to a proper scale.
I have to use
STEAM_FORCE_DESKTOPUI_SCALING=2.5
That's %250 scale. Are you running a 8k screen?
I have to use
STEAM_FORCE_DESKTOPUI_SCALING=2.5That's %250 scale. Are you running a 8k screen?
3840x2160.
Two long years, but it's finally here.
STEAM_FORCE_DESKTOPUI_SCALING has been deleted.New changes:
https://steamcommunity.com/games/593110/announcements/detail/500583527919651040
Overriding the UI scaling is now doable via Settings: Accessibility in the main client UI instead of an env varaible.
Nothing extracted yet.
Hi :) Thanks a lot for working on the desktop GUI scaling on Linux. However, as you can see from the descriptions below, you're using the wrong variables.
Here's what the announcement from Valve said: "Steam will now use the system's global scale factor as configured in KDE/Gnome settings. Specifically org.gnome.desktop.interface/text-scaling-factor."
This is what you use:
The main purpose of that text scaling variable is to allow people to change the size of text to make it smaller/larger than the current desktop graphics scale. So if you're let's say at 200% desktop scale, you may prefer a text scale of 0.87 (87%) to make the text less comically large, etc.
This is what you need to use instead:
HOWEVER! Even the correct variable above is DEPRECATED!
What does that mean?
It means: It's no longer used. GNOME itself no longer writes to that variable.
GNOME now uses
~/.config/monitors.xmlinstead, which is what the GNOME Display Settings modifies. The dconf variable above is never updated anymore. The dconf variable is permanently "2" on my system (GNOME 44) no matter how many times I change the scale of the desktop.Here is an example of the modern
~/.config/monitors.xmlcontent on my 300% scaling display:As you can see, they actually remember scaling PER OUTPUT, PER MONITOR nowadays. I can see that scale is set to 200% if I use the other HDMI port, and 300% on my current HDMI port.
This XML doc looks a bit complex and may be really beyond your energy to parse though (unless GNOME has some API to fetch the correct scale automatically), so feel free to simply use the correct, legacy dconf variable instead:
org.gnome.desktop.interface/scaling-factor.