protonscr

Steam client does not use Gnome's scaling setting

steamopen Feature RequestSteam client
ValveSoftware/steam-for-linux#5460 · opened 2018-04-23 by NTMan · updated 2024-10-30 · 163 comments · github
NNTMan 2018-04-23 github

Your system information

  • Steam client version (build number or date): 1523923735
  • Distribution (e.g. Ubuntu): Fedora 28
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Steam client does not respond to scaling settings so it doesn't ready for 4K era
screenshot from 2018-04-24 00-41-56

Kkisak-valve maintainer 2018-04-23 github

Hello @NTMan, HiDPI is currently disabled by default at Steam -> Settings -> Interface -> Enlarge text and icons based on monitor size (requires restart). Please confirm this setting is checked.

NNTMan 2018-04-23 github

Yes, this option enable scale to 200% but client still ignore desktop settings. If desktop switch to 100% scaling steam client after restart will work with 200% scaling. It's not good.
screenshot from 2018-04-24 02-09-46

Second issue this seting not affected to splash screen. (Window which show update steam message)
screenshot from 2018-04-24 02-07-44

Kkisak-valve maintainer 2018-04-23 github

Thanks for checking, marking as a feature request for Steam to consider GTK+'s scaling factor with its HiDPI support.

As for the initial update window, that is intentionally very basic so that it has as few requirements as possible while doing updates.

IIamTails 2018-08-10 github

How is basic functionality for 4K monitors on Linux a feature request? It's basically unusable on my 13 XPS, you can't even see to login it's so small

DDanielJoyce 2018-08-11 github

Ditto.

Sstanholzendorf 2018-08-11 github

Same problem for me on Steam. The scaling settings from GNOME are not respected. Is there any movement towards a fix on this?

IIamTails 2018-08-11 github

If you can manage to actually see to login, there is a setting you can toggle to make it usable ish

Sstanholzendorf 2018-08-11 github

Well, I can log in and it is usable for me, just not a very pleasant experience. Regarding the setting, do you mean the interface setting, that says 'Enlarge text and icons based on monitor size'? If so, I do have it enabled/checked. Does not do anything for me, no different to when I have unchecked.

IIamTails 2018-08-12 github

Ya that made one made it slightly larger and useable but still small

Bbriskt 2018-10-21 github

That "enlarge text" checkbox does nothing for me on Ubuntu 18.04 / Dell Precision M3800.

Hhexchain 2019-02-09 github

You might want to start Steam with the environment variable GDK_SCALE=2 to ensure HiDPI support.

AFAIK GNOME and GTK internally uses XSettings to share information about scaling, but Steam only recognizes the environment variable (which is also recognized by GTK, and used in desktop environments without XSettings, such as KDE), not XSettings.

Aawsdert 2019-10-15 github

You might want to start Steam with the environment variable GDK_SCALE=2 to ensure HiDPI support.

AFAIK GNOME and GTK internally uses XSettings to share information about scaling, but Steam only recognizes the environment variable (which is also recognized by GTK, and used in desktop environments without XSettings, such as KDE), not XSettings.

No effect in cinnamon, won't use gnome because it doesn't support zooming in on the screen with the mousewheel, not even an option to manually add it, tried looking for software too but nope, gnome is not user friendly, only developer friendly, that's the wrong way round for software

Aahyattdev 2019-12-16 github

Issue still present. Ubuntu 18.04.

Ssheerun 2020-01-12 github

Still having this issue 19.10 and when using 125% scaling of wayland. Pleeeeese look into it Steam

Eerrotu 2020-02-09 github

You might want to start Steam with the environment variable GDK_SCALE=2 to ensure HiDPI support.

Thanks for this workaround! I created a desktop starter for steam accordingly (see attachment). After saving it in your local ~/.local/share/applications directory as "Steam HiDPI.desktop", a "Steam HiDPI" icon will appear in your gnome shell overview.

Steam HiDPI.txt

Aahyattdev 2020-02-09 github

Issue still present in 19.10. If this was FOSS we would have fixed it ourselves by now. Simple GTK+ API call.

KK1rdro 2020-04-06 github

Big picture mode seems to scale correctly in 19.10. How is this not considered a bug?

Aawsdert 2020-04-18 github

The biggest cause of this problem I would reckon is because no base font size is used from what I've seen in the css files I found, I've only seen fixed pixel sizes, I suggest before you go back to this problem you make one global variable such as "BASE_FONT_SIZE" in everything that uses fonts whether it be css, js, C or something else, have steam set those variables at startup then make everything including UI elements calculate their size based on that, here's some example HTML/CSS I put together while looking for the optimal size for my projector that I wanted out of steam:

<!doctype html>
<html style="font-size: 8mm; padding: 0.2rem">
<head>
<title>Font-size test</title>
<style>
html, html *
{
	font-color: gray;
	line-height: 1.2em;
	vertical-align: text-bottom
}
body {
	border: 0.2rem solid blue;
	margin: 0;
	min-width: 50rem
}
.hbar
{
	display: block
}
.hbar li
{
	border: 0.2rem solid green;
	display: inline;
	display: inline-block;
	padding: 0.2rem;
	position: relative
}
.hbar li li
{
	display: block
}
.hbar ul, .hbar ol, .hbar dl
{
	display: none;
	position: absolute;
	top: 1.4em;
	left: 0
}
.hbar a:hover + ul, .hbar ul:hover,
.hbar a:hover + ol, .hbar ol:hover,
.hbar a:hover + dl, .hbar dl:hover
{
	display: block
}
img, .bg-img
{
	background: gray;
	border: 0.2rem solid gray;
	display: inline;
	display: inline-block;
	margin: 0;
	width: 5rem;
	height: 7rem
}
.bg-img
{
	background: no-repeat url("w3schools.jpg");
	background-size: 100% 100%;
	background-size: cover;
}
</style>
</head>
<body>
<div class="bar">
<ul class="hbar">
<li class="menu"><a>Store</a></li>
<li class="menu">
	<a>Library</a>
	<ul>
		<li><a href="#lib_games">Games</a></li>
		<li><a href="#lib_tools">Tools</a></li>
		<li><a href="#lib_both">Both</a></li>
	</ul>
</li>
<li class="menu"><a>Community</a></li>
<li class="menu">
	<a>Font examples</a>
	<ol>
		<li><b style="font-size: 1.0rem">1.0rem</b></li>
		<li><b style="font-size: 1.2rem">1.2rem</b></li>
		<li><b style="font-size: 1.4rem">1.4rem</b></li>
		<li><b style="font-size: 1.6rem">1.6rem</b></li>
		<li><b style="font-size: 1.8rem">1.8rem</b></li>
		<li><b style="font-size: 2.0rem">2.0rem</b></li>
	</ol>
</li>
</ul>
</div>
<input style="width: 5rem" value="123456" />
<img id="bg-img"
	src="https://www.w3schools.com/html/w3schools.jpg"
	alt="W3Schools" />
<hr class="bg-img" />
<div class="bg-img">&nbsp;</div>
</body>
</html>

Just swap out the image for whatever example image/s you need to work from, slap together a test app that modifies the base font-size then test on manjaro distro's via virtual box or something, if your code works there then it should work anywhere and put this issue to rest.

Ttmrizzo 2020-05-12 github

Same problem here:

  • Fedora release 32 (Thirty Two)
  • Mesa Intel® UHD Graphics 620 (KBL GT2)
  • GNOME 3.36.2 (Wayland)

I just noticed this bug is opened since 2018... great.

Ttmrizzo 2020-05-13 github

For any of you having problems with Steam client HiDPI, here is a "hack" step-by-step while you wait for an official solution.

Basically, you'll set the environment variable GDK_SCALE. I'll be using 2 - because GNOME - so the variable will be GDK_SCALE=2. Is it pretty? No. Does it work? Yes.

Important

  • When using GNOME, you either use 1:1 or 2:1 scaling, there is nothing in between.
  • You may try to enable fractional scale, however, this is an experimental feature in GNOME. If you're curious:
    • To enable fractional scale (again EXPERIMENTAL):
    $ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
    
    • To reset the value:
    gsettings reset org.gnome.mutter experimental-features
    

Tested on Fedora 32/GNOME 3.36.2 (Wayland):

  1. Make a copy of the steam.desktop file to the following location:
# cp /usr/share/applications/steam.desktop ~/.local/share/applications/

Note: The ~/.local/share/applications/steam.desktop will now take precedence over /usr/share/applications/steam.desktop so keep that in mind.

  1. Edit ~/.local/share/applications/steam.desktop with an editor of your choice. Append env GDK_SCALE=2 to the Exec= parameter.
  • From this:

    [Desktop Entry]
    Name=Steam
    Comment=Application for managing and playing games on Steam
    ....
    Exec=/usr/bin/steam %U
    ....
    
  • To this:

    [Desktop Entry]
    Name=Steam
    Comment=Application for managing and playing games on Steam
    ....
    Exec=env GDK_SCALE=2 /usr/bin/steam %U
    ....
    

Optional: change Name=Steam to Name=Steam HiDPI or something else for reference.

  1. Exit Steam client and start it again.

Now you may be able to read the screen.

If you want to revert the change, just delete ~/.local/share/applications/steam.desktop and you are good to go.

JJasonHK 2020-06-01 github

The hack @tiagomdrizzo @errotu mentioned above doesn't solve the issue at all! GDK_SCALE=1 is too small, but GDK_SCALE=2 is too large for me. The correct value I want is 1.25 or 1.5.

2020-06-02_00001

2020-06-02_00002

Aawsdert 2020-06-02 github

For any of you having problems with Steam client HiDPI, here is a "hack" step-by-step while you wait for an official solution.

Basically, you'll set the environment variable GDK_SCALE. I'll be using 2 - because GNOME - so the variable will be GDK_SCALE=2. Is it pretty? No. Does it work? Yes.

Important

* When using GNOME, you either use 1:1 or 2:1 scaling, there is nothing in between.

* You may try to enable fractional scale, however, this is an experimental feature in GNOME. If you're curious:
  
  * To enable fractional scale (again **EXPERIMENTAL**):
  
  ```
  $ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
  ```
  
  
  
  * To reset the value:
  
  ```
  gsettings reset org.gnome.mutter experimental-features
  ```

Tested on Fedora 32/GNOME 3.36.2 (Wayland):

1. Make a copy of the steam.desktop file to the following location:
# cp /usr/share/applications/steam.desktop ~/.local/share/applications/

Note: The ~/.local/share/applications/steam.desktop will now take precedence over /usr/share/applications/steam.desktop so keep that in mind.

1. Edit `~/.local/share/applications/steam.desktop` with an editor of your choice. Append `env GDK_SCALE=2` to the `Exec=` parameter.


* From this:
  ```
  [Desktop Entry]
  Name=Steam
  Comment=Application for managing and playing games on Steam
  ....
  Exec=/usr/bin/steam %U
  ....
  ```

* To this:
  ```
  [Desktop Entry]
  Name=Steam
  Comment=Application for managing and playing games on Steam
  ....
  Exec=env GDK_SCALE=2 /usr/bin/steam %U
  ....
  ```

Optional: change Name=Steam to Name=Steam HiDPI or something else for reference.

1. Exit Steam client and start it again.

Now you may be able to read the screen.

If you want to revert the change, just delete ~/.local/share/applications/steam.desktop and you are good to go.

That value has been repeated a number of times already and NO IT DOES NOT WORK! Please stop repeating what's already been said

Ssantiagofn 2020-06-07 github

Bug still present in Ubuntu 20.04, more than 2 years after it was reported.

Ppalomanel 2020-06-09 github
  • When using GNOME, you either use 1:1 or 2:1 scaling, there is nothing in between.

That's plain wrong... these days GNOME has enabled fractional scaling by default.

Yyesrod 2020-06-21 github
Ssciroccogti82 2020-06-29 github
  • When using GNOME, you either use 1:1 or 2:1 scaling, there is nothing in between.

That's plain wrong... these days GNOME has enabled fractional scaling by default.

Not really, some distros tried it but reversed it since it was too buggy, there is no fractional scaling in gnome shell unless you are one of the few that runs wayland.

Ppalomanel 2020-06-29 github
  • When using GNOME, you either use 1:1 or 2:1 scaling, there is nothing in between.

That's plain wrong... these days GNOME has enabled fractional scaling by default.

Not really, some distros tried it but reversed it since it was too buggy, there is no fractional scaling in gnome shell unless you are one of the few that runs wayland.

I suggest you update yourself on the state of fractional scaling in the Linux Desktop, Wayland and GTK3 with Hi-DPI are the norm these days.

Unless you're one of those people running Gentoo on a text terminal, in which case you don't need the Steam Client, you just need to compile Dwarf Fortress.

Aawsdert 2020-07-01 github
  • When using GNOME, you either use 1:1 or 2:1 scaling, there is nothing in between.

That's plain wrong... these days GNOME has enabled fractional scaling by default.

Not really, some distros tried it but reversed it since it was too buggy, there is no fractional scaling in gnome shell unless you are one of the few that runs wayland.

I suggest you update yourself on the state of fractional scaling in the Linux Desktop, Wayland and GTK3 with Hi-DPI are the norm these days.

Unless you're of those people running Gentoo on a text terminal, in which case you don't need the Steam Client, you just need to compile Dwarf Fortress.

Sarcasm aside you're either wrong or steam just doesn't play well with arch based distros like manjaro because I still have tiny text, can I suggest you switch to qt which seems to be popular these days and I've had no real issues with apps using that on manjaro, had to tweak global font defaults in the qt settings manager but otherwise no real issue with text

Ppalomanel 2020-07-01 github

Sarcasm aside you're either wrong or steam just doesn't play well with arch based distros like manjaro because I still have tiny text, can I suggest you switch to qt which seems to be popular these days and I've had no real issues with apps using that on manjaro, had to tweak global font defaults in the qt settings manager but otherwise no real issue with text

I'm running an Ubuntu system with every app using HiDPI without any issues. Except for the Steam client that is. Thanks to the GDK_SCALE=2 trick mentioned above I've been able to make the Steam Client usable again.

The Steam client doesn't properly implement scaling and needs a work around. That's what this bug is about. And I hope Valve doesn't dismiss it with an excuse as lame as "it's not our fault".

Aawsdert 2020-07-02 github

Personally I'd rather steam did away with the "larger text based on screen size" option (which I've never seen work) and shove in a range box using the "pt" unit with minimum set to 6pt and maximum set to 100pt

Bboospy 2020-07-11 github

Very nice. Works here on KDE Neon 18.04

Ddathide 2020-09-13 github

I've tried all suggested fixes and options within the Steam Client. The UI is always too small or too large. There isn't a way for me to comfortably use Steam on my 1440p monitor, which is a common desktop size nowadays. Logging in on my old 4K monitor was nearly impossible. I hope Valve is aware of this. I find it hard to believe that none of the client's developers use high resolution monitors.

Vvladimir-novoseltsev 2020-10-18 github

I have the same issue, I have Dell P2418D 2560x1440 display and Steam UI is just too small by default. Using GDK_SCALE is not a solution as in that case UI is too large. Checking an option to enlarge text and icons seemingly does nothing.

Rrickymedrano 2020-10-19 github

I had the same issue where checking the box to enlarge text was ignored and therefore Steam wouldn't scale. I'm on 4k resolution with fractional scaling at 1.25 in Gnome on Ubuntu 20.04.

Eventually I found out the issue is due to using an nVidia card and using nVidia proprietary drivers.. To fix the scaling issue with Steam, I had to use the X.Org X Server Nouveau drivers and use Wayland instead of X. In order to use Wayland with an nVidia card I had to make sure "WaylandEnable=false" was commented in /etc/gdm3/custom.conf as well as the following line was commented "DRIVER=="nvidia", RUN..." in /usr/lib/udev/rules.d/61-gdm.rules. After making those changes, restart, and you should be able to select Wayland from the gear icon at the login screen, which only appears after you click your username.

Problem now is that video performance is way down from using noveau drivers over proprietary.

Mmhalano 2020-12-09 github

I have two displays, but only my external display supports 4K (the laptop's display is 1080p). I found out Steam just scale automatically when the 4K display is the primary, that's consistent with thw system information gathered in Help > Sytem Information. Since I use my laptop's display as main display, I had to force scaling setting up the GDK_SCALE environment variable. Should be support two more than one display and do the scaling when one of (and not just the primary) displays support 4K.

Oourichermath 2021-03-08 github

This has been open for 3 years now. I'm on Linux Mint 20.1 Cinnamon with a 3440x1440 monitor with the scaling set to 125%. I just installed Steam and I can't read the fonts at all: ant-size text. Please up the priority of this and fix it.

Aawsdert 2021-03-14 github

You guys are already utilising css files WITH font-size used in them, just look for a file called user_styles.css in ~/.steam/ and then change all size references (font or not) to use rem, the user only has to set :root { font-size: #px } in user_styles.css then, it's not hard, boring and long to do but still easy enough, yes there will be the odd breakage of UX here and there, but they won't take long to fix if you focus on adaptive behavior instead of fixed, after all that's the WHOLE POINT of css as it is for the web

BBloodyIron 2021-03-29 github

So I actually tried Gnome's fractional scaling today, on just one of my monitors, and it made STEAM SMALLER on ALL of my monitors.

I have 3x monitors, all in landscape 16:9. Left and Right are 1920x1080@60hz, middle is 1440@165hz.

All were previously 100% scaling, but then set the middle, 1440@165hz, monitor to 125% scaling. And suddenly STEAM is SMALLER on all three of the monitors. This is the exact opposite of what should happen!

This scaling really needs to be fixed, as STEAM is really bad for those of us with bad eyesight. I now can't use fractional scaling on that big monitor of mine because STEAM's so small, it's unusable! ARGH!

@kisak-valve can we get some recent VALVe response on this please?

Aawsdert 2021-03-30 github

@kisak-valve Why is this not fixed already? From my understanding (as a programmer) it is rather easy to set relative sizing for fonts, just set a global to start with, open ALL the project files into a text editor session and just do a global search for FONT_SIZE (I assume you at least avoided using custom names up until now), then make sure every single instance is getting the global variable prior to deciding the font size to use.

Eemirkmo 2021-05-26 github

There seems to be a few separate problems. Writing here but maybe I should open a new issue?:

If you have a 4k and a non-4k screen (dual+ monitor), and have fractional scaling enabled, then Steam is so small that I actually cannot use it. I had to use my knowledge of where menu buttons are to be able to navigate at all. It's actually smaller than just 100% scaling at 4k. It's scaled to about 1/8 the size of my 4k screen.

Using the work around of setting env gdk_scale = 2 brings it back to a too small size (so the default 100% at 4k which is the too small font that is being complained about in this issue). I have to scale even more aggressively to get it to to be legible. Unplugging the 4k monitor and using just the 1440p monitor, or turning off fractional scaling, both "fix" one of the issues, in that now it's too small but I can work with it. Then I can set env gdk_scale = 2 at that stage, but then it's too big for the 1440p. Very strange and unintuitive behavior to say the least.

RRayrsn 2021-07-24 github

I can still confirm the problem is still here on Zorin 15.3 (Ubuntu 18.04)

LLoopyOne 2021-08-02 github

Works like a champ (Pop OS 21.04)

Mmimbrero 2021-08-18 github

Problem still happening.... Manjaro 21.1

Jjimmed 2021-09-10 github

Issue still happening, popOS 20.04

Ddrkthomp 2021-10-30 github

Issue still happening, Ubuntu 20.04.

CCarterSheehan 2021-11-02 github

Still exists, Ubuntu 21.10

Bboospy 2021-11-02 github

I'm not a dev, but it can't be that this can't be solved. The other 200 companies can do it too. And Steam is just really not that small, or is it? Hmm...

Vvladimir-novoseltsev 2021-11-02 github

If I have to guess they probably working on the new Steam client which would ship with Steam Deck, working both standalone and connected to TV, and would be running natively under Wayland. So I would not expect any fixes for current client.

Bbopthoughts 2021-11-14 github

If I have to guess they probably working on the new Steam client which would ship with Steam Deck, working both standalone and connected to TV, and would be running natively under Wayland. So I would not expect any fixes for current client.

lets hope so, this problem has already existed for more than 3 years...

Jjexxadox 2021-11-22 github

still having issues. i can set it to 2.0x but then steam is literally so large it does not fit on my screen. if it was just really big, id deal with it, but i can't edit the settings because the "save" button is literally an inch off the bottom of my screen. same issue w/the main window.

the way it is is litterally hurting my eyes as i my eyesight is bad. i end up not wanting to run steam at all because it causes me pain to try to read the small print. its why i always increase the text size on all my machines.

would turning the HD stuff on my screen off help? i have a laptop, with the largest screen i could find: 17''

Eemirkmo 2021-11-22 github

Works like a champ (Pop OS 21.04)

Issue is there in ubuntu 20.04 and 21.10 and Pop OS 20.04. Can you confirm that both issues mentioned in my comment are solved in Pop OS 21.04? Or specify which issue you don't see? It would help a lot in finding a workaround.

Aawsdert 2021-11-23 github

Works like a champ (Pop OS 21.04)

Issue is there in ubuntu 20.04 and 21.10 and Pop OS 20.04. Can you confirm that both issues mentioned in my comment are solved in Pop OS 21.04? Or specify which issue you don't see? It would help a lot in finding a workaround.

I already said how to fix it, stop using fixed sizes in your css and make sure all references to some sort of font size are relative to a global font size, no other way to fix it, to pretend otherwise is no different than an ostrich with it's head in the sand.

Edit: I know it's a lot of work but it's the only way to put the issue to rest permanently, having all font sizes relative to a single font size means you only have to change one size during boot, everything else will scale in proportion to that one change

Ssantiagofn 2021-11-23 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/5460#issuecomment-976916318

Who are you talking to, @awsdert, who would be that "you"? @emirkmo doesn't seem to be a Steam employee. Maybe it would be more productive if you mention @kisak-valve or another Steam employee.

Aawsdert 2021-11-23 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/5460#issuecomment-977135070

I thought otherwise because of the way he spoke or rather typed, sounds like something an developer would've said so I just assumed he was

Eemirkmo 2021-12-11 github

Just to be clear I have nothing to do with Valve. I'm just trying to solve it on my own end and was interested in a possible solution.

Aawsdert 2021-12-13 github

Since you guys like to insist on fixed sizes and css I have just the solution for this long standing issue, one I found just today, one of those "can't see the trees for the forest" things. Turns out css has a unit from CSS1 that honours DPI from the get go, 1in, now I find that particular size to be a tad too big for normal text but from my experiments 0.25in is about right, if you ditch the pixel unit and just use rem all over the place baring the root element for fixed size elements then everything will follow DPI properly if in the root element you use 0.25in or something near that size, always in inches, here's the test html/css I used to check it followed DPI:

<!doctype html>
<html>
	<head>
		<title>DPI Test</title>
	</head>
	<body>
		<p style="font-size: 1.5in">DPI 1.5</p>
		<p style="font-size: 1.25in">DPI 1.25</p>
		<p style="font-size: 1in">DPI 1</p>
		<p style="font-size: .75in">DPI .75</p>
		<p style="font-size: .5in">DPI .5</p>
		<p style="font-size: .25in">DPI .25</p>
	</body>
</html>

Edit: Btw I did change my system DPI to see if these followed suit, they did
Edit 2: I believe the cm & mm units also follow the DPI but I didn't try them

AAlexander-Prime 2021-12-16 github

This isn't a CSS issue, it's a scaling issue. In CSS, 1px is equal to 1/96 of 1in, not one screen "pixel". Changing units won't help if the density scaling factor is ignored in the first place.

Aawsdert 2021-12-16 github

This isn't a CSS issue, it's a scaling issue. In CSS, 1px is equal to 1/96 of 1in, not one screen "pixel". Changing units won't help if the density scaling factor is ignored in the first place.

You sure about that? You might wanna actually try the example I gave and change you're DPI settings with the example open, go on, I'll keep the tab open to see you take back your words :)

Edit: btw do you really think valve would be embed an in-house web object when there's plenty out there already? those undoubtedly read the DPI settings without issue, the main reason steam doesn't honour DPI at present is because of how they ignore the scalable CSS units in favour of pixels that never scale in the 1st place, this whole issue is a direct result of the unhealthy "pixel perfect" attitude companies & organisations have been applying to their websites, pixels never adapt to the user because pixels can be any size, only real world units will adapt to the user and inches/centimetres/millimetres are all units which depend on the DPI settings to emulate the real deal as closely as possible

AAlexander-Prime 2021-12-16 github

There's nothing to take back, I expect that your example works well. Inches are an absolute length unit, as you say 🙂

The table "Absolute length units" in this page shows the relationship I mean:
https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units#:~:text=px,96th of 1in

Because px and in are defined in the same terms, switching from one to the other does nothing more than multiply or divide the size by 96. The issue here is deeper: whichever unit you use, Steam's renderer is not honoring (or perhaps not receiving) a separate multiplier, the screen density scale factor, when converting these units to real screen pixels.

Aawsdert 2021-12-16 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/5460#issuecomment-996230268

btw the in unit doesn't always map to 96px, that's just a typical setting as a direct result of common pixel size nowadays, as soon as pixel sizes get smaller that number is going to get bigger, and that's my point, doesn't matter how small the pixels become if you're tailoring the element sizes according to a unit that is powered by a DPI setting - btw I'm on linux also and changing font scale effects the DPI setting so in short yes the in unit WILL solve the problem since they insist on the bad design principle of "fix everything to one scale", they'll just be changing the unit they work with to one that follows DPI scale instead

AAlexander-Prime 2021-12-16 github

btw the in unit doesn't always map to 96px

Yes it does, by definition.
https://www.w3.org/TR/css-values-4/#absolute-lengths

The spec's pretty clear on this in a lot of places. I think this px <-> in relationship would be a good place to run more experiments. If you find that some browser is acting against spec, maybe that should be its own issue! 😄

Aawsdert 2021-12-16 github

btw the in unit doesn't always map to 96px

Yes it does, by definition. https://www.w3.org/TR/css-values-4/#absolute-lengths

The spec's pretty clear on this in a lot of places. I think this px <-> in relationship would be a good place to run more experiments. If you find that some browser is acting against spec, maybe that should be its own issue! smile

No it doesn't:
absolute length units are fixed in relation to each other and anchored to some physical measurement
Note the words anchored to some physical measurement
That does not mean the measurement they anchor to cannot change, to be exact that measurement is the DPI, as evidenced by the results I had when I changed the DPI with the example I gave open.

AAlexander-Prime 2021-12-16 github

The absolute length units are fixed in relation to each other...

1px = 1/96th of 1in

These are both in the spec just below where I linked, verbatim. I don't see any room for interpretation. 🤷

I think we're talking past each other, sorry. Your example works as described, of course. The problem is that px will also behave that way: render a 1px line on a high-DPI screen and you may see that it's 2 or 3 physical pixels wide. Switching from px to in only makes the unit 96 times bigger. It doesn't change its scaling behavior, because px are already density-independent.

Aawsdert 2021-12-16 github

Was about to say "No, pixels don't stretch, they're at a 1:1 ratio with the resolution setting" but then decided to actually try it, rather strange that the pixels don't obey the resolution, well in either case they shouldn't be using pixels all over the place, :root element only, anywhere else is bad form, instead everywhere else should use rem allowing for easy change of just the :root element's scale which would then seamlessly propagate throughout the interface. As for ignoring DPI I can only think that besides the constant usage of a unit that should ONLY be used in the :root element, the other cause can only be using an in-house web control (assuming they use one), to fix that I can only think to maybe branch luakit then just customise some UI's via lua, much harder for security breaches to happen via javascript if the client is using a separate language, not impossible just harder, also harder to mix up scripts meant for different UIs, I'm certain luakit honours DPI already and I would not be surprised to find that everything inside the steam window is just embedded web stuff, would explain why dialogues seem to follow DPI yet the interface that matters most doesn't. If they're going to insist on lazy design (which to be fair is kinda expected in this scenario) then they should at least outsource things they shouldn't be doing in-house solutions for in the 1st place, they already out-house part of proton to wine, why not the web control to luakit or some other open source browser which undoubtedly has it's own web control

Edit: Also the in, cm & mm units are all much clearer in what size they're supposed to emulate and will give consistent results regardless of platform, pixels and other units are less clear, although some are arguably better choices for a UI, in all cases "pixel perfect" is the worst choice one can make for UX, it literally screams "I'm out of touch"

Ddsychin 2022-02-13 github

I am on Fedora 35 running Steam with flatpak and managed to fix it by running the following command to set the GDK_SCALE environment variable.

sudo flatpak override --env=GDK_SCALE=2 com.valvesoftware.Steam
HHomyakin 2022-03-23 github

Doesn't work out of box on Ubuntu 20.04, but this helped.

Fflibitijibibo 2022-03-28 github

We've come across an issue on SDL's end that might indicate that, at least in the Wayland scenario, this is a compositor issue... we recently added support for xdg_output to try and support fractional scaling in the upcoming SDL 2.0.22 release, and discovered that while the desktop stores the correct scale factor, it does not convey this information where it should:

https://github.com/libsdl-org/SDL/blob/main/src/video/wayland/SDL_waylandvideo.c#L310-L325

This impacts the Xwayland scenario because from what I understand they also use this mechanism to determine scale (like we did until this block was added). The result is that some things will scale while others won't depending on which scale you look at, and that's what I've been seeing in the Steam client on GNOME recently.

Aawsdert 2022-03-29 github

Glad to see someone's working on the issue,

Edit: Would be more helpful if you added the option to ignore the system scale and use steam scale setting instead, that same setting can then be used as the fallback and the usage of system disabled if it is detected to be buggy. Alternatively just do
this:

char const *GTK_SCALE = getenv("GTK_SCALE");
float scale = 1.0f;
if ( GTK_SCALE )
	sscanf( GTK_SCALE, "%f", &scale );
if ( scale <= 0.0f )
	scale = 1.0f;
driverdata->scale_factor = scale;

There's no particular reason you HAVE to rely on SDL to get the info if you already know about the variable to begin with

Jjdix531 2022-07-26 github

In my case I'm running kubuntu 22.04 on x11 sessions. Issue occurs after using xrandr to scale down the main display but not the rest of the displays.

ie. I run: xrandr --output eDP --scale .5 --filter nearest and this lets me dock without having tiny apps on my main display but normal size on other displays. Otherwise KDE scaling options are global for all displays so that's why I need to use this method. I think that's what is confusing steam. So steam is so large it doesn't even fit on the screen until I run steam with GDK_SCALE=1 ... in my steam.desktop file. A pretty simple fix but... also pretty unfortunate it seems to only need to be done for steam.

Let me know if I can help with any more info :)!

Ssam8457 2022-08-14 github

Still happening on Mint 21. The GDK_SCALE=2 setting doesn't work at all, not from the terminal nor changing the Steam launcher file thingy. That may be a Mint issue, or an issue with the Cinnamon DE.

Rroworu 2022-08-28 github

Issue still persist for me on latest Steam beta. Four years passed.
"GDK_SCALE=2" is too big, but "GDK_SCALE=1" is too smal to read.. Would be great to at least get a possibility to set 1.25 or 1.5

Bboospy 2022-08-28 github

Absolutely incredible

Eemirkmo 2022-09-24 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/5460#issuecomment-1195668696

I see similar issues with e.g Zoom screen scaring if the primary display is scaled down but not the secondary. Good catch. Actually nowadays I just set my primary to 4k 1to1 scale and live with it, zooming in for text and stuff..

Ootuva 2022-12-04 github

Holy f*ck it's still there after all these years...

GDK_SCALE=2 makes it too big. it's unusable.
without gdk scale variable, interface setting for big text does nothing.

100% scaling at 1080p is just so miniscule that it's beyond usable
hi-dpi skins are broken. everything gets scrambled

it's not foss so you as a user can't do anything about it. just great

Sschaferyan 2022-12-20 github

At this point, I would take too big. GDK_SCALE=2 isn't doing anything in Ubuntu 22.04, everything is tiny no matter what I do.

Ootuva 2022-12-21 github

@kisak-valve IMHO, this should not be labeled as Feature Request but rather a bug. Because big picture mode can play nicely with the system.

Oourichermath 2022-12-21 github

Since we're coming up on the 5 year anniversary of this bug not being fixed, I'm wondering if it's been OBE by the Steam Deck? Are we no longer supposed to install the Steam linux client on linux systems? Are we somehow supposed to install just the UI portion of the Steam Deck instead?

Ssheerun 2022-12-22 github

They also don't care much about Steam OS. It makes me wonder what do they even care about

Wwebodan 2023-01-17 github

Such a half-assed attempt at Linux, Valve. Not even respecting the toolkit's scaling settings? what kind of sorry integration attempt is this? When 4K monitors are standard across the board, what are your users going to do? get a magnifying glass to use your client? GDK_SCALE is a hack that will eventally not work anymore, you need to fix this.

Nnextdimension 2023-02-02 github

Read this whole issue after suffering here myself with the same thing. Would love to be able to fix this myself, but I am left to use the GDK_SCALE hack. I still can't believe there has been zero movement on this issue after all these years.

This is not a feature request!
Steam is unusable for many because of this issue.

Mmnn 2023-02-28 github

I am on beta (build Feb 24 2023, 01:01:00) and it got broken recently. Previously the "Enlarge text and icons..." was working somewhat ok, it was at least consistent. After recent update (a week back?), everything except top bars is tiny (again, it was broken like half year back but was fixed). The GDK_SCALE settings seems to be respected only for top bar, it's pretty terrible now (looks pretty similar/barely usable with and without the "Enlarge..." option; scaling is set to 3 here):

2023-02-28_15-11

This is ~20% of my small 4k screen, I can barely read names of games...

Ootuva 2023-03-09 github

After switching to wayland and enabling the experimental fractional scaling, everything works now. Even steam albeit little blurry

gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

Note: Enabling fractional scaling can result in blur for legacy applications using XWayland, even if only integer scales are used, because the rendering method changes.

https://wiki.archlinux.org/title/HiDPI

Llsahnicne 2023-03-23 github

Why didn't anybody mention that GDK_SCALE workaround also causes all the windows spawned from Steam, such as games or web browser in case I click on a link in Steam client, to inherit the scaling option and render at double the resolution? This workaround is pointless if I still have to change scale back to 100% before launching any game so it doesn't assume my monitor is double it's size.

Bboospy 2023-05-02 github

I've checked this here on KDE NEON 22.04. With an without "GDK_SCALE workaround" games have the same size. Tested with:

  • The Greatest Penguin
  • Dying Light2
  • Rise of the Tomb Raider

I haven't noticed this kind of behavior in any game in recent years either.

Rroworu 2023-05-05 github

Wasn't that fixed with latest steam beta client?

Bboospy 2023-05-06 github

Wasn't that fixed with latest steam beta client?

Don't know. I never had this behavior.

Eemirkmo 2023-05-06 github

What do people say? PRAISE GABEN

There is finally a fix!

The beta has fixes for this extremely long standing issue, go and give it a try!

https://store.steampowered.com/news/group/4397053/view/3705943193607193985?l=english

Bboospy 2023-05-06 github

After last BETA update steam does not start anymore. After i have installed steam comletly new, same result. No start anymore with actual BETA. No Error message.

Kkj 2023-05-07 github

According to the notes:

Steam will now use the system's global scale factor as configured in KDE/Gnome settings. Specifically org.gnome.desktop.interface/text-scaling-factor.

Isn't that the wrong value? Shouldn't it be scaling-factor not text-scaling-factor?

https://wiki.archlinux.org/title/HiDPI#GNOME

Llangurmonkey 2023-05-09 github

@kj neither property works for me, nor does the -forcedesktopscaling flag or $GDK_SCALE. I don't know what else to try. Using i3wm (X) with NVIDIA on Arch Linux.

Kkj 2023-05-09 github

The -forcedesktopscaling flag does work for me under Gnome Wayland (in Sway it just results in an oversized UI, but it does 'work').

Actually, I'm not even sure that the scaling-factor setting is correct either, as it's set to 0 for me, although my display uses 200% scaling (the value in Gnome Settings is per-display anyway, not global). That might just be a Wayland thing and perhaps this Steam update is only trying to solve the issue for X.org (as Steam doesn't support Wayland yet). To be honest I don't know exactly how this is supposed to be solved, but text-scaling-factor seems wrong to me and I hope that whatever we end up with just integrates nicely with desktop standards.

If it helps, I'm on a Ryzen 5825U (AMD graphics).

Llangurmonkey 2023-05-09 github

@jk FYI, there is an issue which deals just with that: #9466.

Ggentuser 2023-05-17 github

@kj neither property works for me, nor does the -forcedesktopscaling flag or $GDK_SCALE. I don't know what else to try. Using i3wm (X) with NVIDIA on Arch Linux.

I confirm. Running ubuntu 23.04 and Nvidia drivers on X. both feature are not working for me (neither combined together)

MMrLightningBolt 2023-06-14 github

This is wretched. It worked fine before today's update and now it refuses to respect any scaling settings, with all the text absolutely tiny. Nvidia GPU using binary drivers, Arch Linux running XFCE on X11.

GGrimmLinux 2023-06-15 github

Same problem with the new steam update with Nobara Linux kernel 6.3.7-200 on GNOME 44

Some additional information: resolved by adding -forcedesktopscaling 2.0 to the flatpak launch

Issue happens in x11 only and not wayland, but I can't use wayland

Llangurmonkey 2023-06-15 github

Yep, they went out of beta and full release without having UI scaling sorted out. Worked before the update, UI is tiny now on stable.

OOdinVex 2023-06-15 github

Wayland user here. -forcedesktopscaling 2.0 is working for me. Side feedback: hate the new UI, miss mid 2000s UI, only needed scaling and GPU acceleration.

Edit: Just add a multiplier to the Settings menu already, Steam's “decision” regarding size requires overriding sometimes, especially in my case. Sucks to have to continue to modify .desktop files or shell scripts to keep adding -forcedesktopscaling 2.0 to everything.

RRojikku 2023-06-15 github

Holy *@$% I opened steam and I can't read ANYTHING. Why isn't there just a drop down to set this higher?
Edit: GDK_SCALE seemed to do nothing, but -forcedesktopscaling 1.8 worked out for me.
Pretty confident it'll get overwritten with each major update though.

image

OOdinVex 2023-06-15 github

Holy *@$% I opened steam and I can't read ANYTHING. Why isn't there just a drop down to set this higher? Edit: GDK_SCALE seemed to do nothing, but -forcedesktopscaling 1.8 worked out for me. Pretty confident it'll get overwritten with each major update though.

That was exactly my problem. I can read size 6 font even, but it was just horribly difficult to use my mouse to access the menu (there are no accelerators, what the ...) and attempt to toggle that bool which did nothing (must be some goofy math going on, just a missed situation I'm guessing). The ability to specify a float multiplier for DPI should have definitely been in a beta at least... The ability to access things with the tab key would increase user accessibility, but who knows if that'll ever come to fruition, they're using a web browser as a client ffs. I wish Chromium had never been made, all this HTML as an app is just infuriating. Native controls, people!

RRojikku 2023-06-15 github

That was exactly my problem. I can read size 6 font even, but it was just horribly difficult to use my mouse to access the menu (there are no accelerators, what the ...) and attempt to toggle that bool which did nothing (must be some goofy math going on, just a missed situation I'm guessing). The ability to specify a float multiplier for DPI should have definitely been in a beta at least... The ability to access things with the tab key would increase user accessibility, but who knows if that'll ever come to fruition, they're using a web browser as a client ffs. I wish Chromium had never been made, all this HTML as an app is just infuriating. Native controls, people!

Discord has tab controls. Pretty confident it can be done. Just a matter of them wanting to implement it.

OOdinVex 2023-06-15 github

Discord has tab controls. Pretty confident it can be done. Just a matter of them wanting to implement it.

True, but it's still web pages masquerading as software. As someone developing since 2004, I have a disdain for fake 'apps' (I hate the word app, as well. Hardware, Firmware, Kernels, Drivers, Software)

Mmnn 2023-06-16 github

i3wm, AMD GPU, Manjaro and after today's update I got tiny everything again. I'll have to test more, but GDK_SCALE set to 2 seems to work.

True, but it's still web pages masquerading as software. As someone developing since 2004, I have a disdain for fake 'apps' (I hate the word app, as well. Hardware, Firmware, Kernels, Drivers, Software)

Yeah, I would prefer native everything too (maybe a bit strange, since I am a front-end dev). On the other hand for an end user this hybrid approach might be better - more features and support of less common OSes like Linux, paid with disk space, memory and cpu cycles. It's a trade off in both cases (considering we run Linux) and at least for those with more powerful PCs, this very well could be the better option.

Ss4dic 2023-06-16 github

You can correct all of this problems of the last version, with this command:
steam -forcedesktopscaling 2

OOdinVex 2023-06-16 github

You can correct all of this problems of the last version, with this command: steam -forcedesktopscaling 2

Found the person that didn't read. We know this already. That's just a patch-job and a nuisance at best. It needs integration in Settings already, ffs. This issue has been going on since 2018 at least.

Edit: Why Valve chose Gnome over something else such as Qt, I'll never know. Gnome's an accessibility & user-control nightmare. My guess is licensing, which I'd grant considering Qt's got some fucked up licensing.

Rregulator-g 2023-06-16 github

Lots of reports/complaints here with no hardware details, if you purchased an nvidia card admit it

Llostgoat 2023-06-16 github

@mnn It might be better to use the new STEAM_FORCE_DESKTOPUI_SCALING env var to adjust scaling, as GDK_SCALE can affect other things.

How were you previously configuring your scaling settings? We stopped querying org.gnome.desktop.interface text-scaling-factor outside of KDE, because gnome and KDE interpret it differently. The former uses it for text specific scaling. The latter stores its global scale factor there.

OOdinVex 2023-06-16 github

Lots of reports/complaints here with no hardware details, if you purchased an nvidia card admit it

Pure AMD. I don't touch Nvidia or Intel. amdgpu and sometimes amdvlk, neither is a problem for DPI, it's only Steam. Hardware details aren't necessary if it's just Steam doing this.

How were you previously configuring your scaling settings? We stopped querying org.gnome.desktop.interface text-scaling-factor outside of KDE, because gnome and KDE interpret it differently. The former uses it for text specific scaling. The latter stores its global scale factor there.

That text-scaling-factor doesn't work for me on KDE, but I don't use ancient Xorg, just Wayland. Tired of hanging on to old software that keeps everyone back. :/

WWilldrick 2023-06-18 github

STEAM_FORCE_DESKTOPUI_SCALING

is there a similar env var for the overlay? even when steam launches properly at 100%, the overlay keeps going to 200%

on a high DPI monitor (large 4k screen) the overlay is super cumbersome, feels like I got the "Fisher Price" version of Steam running

Bboospy 2023-06-19 github

With

forcedesktopscaling 2

it works here on KDE Plasma, but with a lot strange of CPU usage, because the mouspointer hangs again and again during normal working. Without scaling, normal usage.

AArumes 2023-07-02 github

Funny reading all those comments. I'm on a 27" 4K screen, but for me it's the other way around. Steam does increase text size by default (WAY too big for my taste), but not the other UI elements. So when I click on a menu only half of the text./menu items fit inside the menu box, the rest is unaccessible. I have to use -forcedesktopscaling 1 to be able to use Steam now. Disabling "Scale text and icons to match monitor settings" doesn't do anything.

Screenshot_2023-07-02_08-47-20

Kkisak-valve maintainer 2023-07-02 github

Hello @Arumes, your screenshot is showing #9708. Opt into Steam's client beta.

OOdinVex 2023-07-02 github

@kisak-valve An exposed float in the Settings of Steam so that we can specify our own factor, for Windows and Linux, to give us manual control, might be best..

Bboospy 2023-07-03 github

I had the same here, but here was helped the automated scaling. But on the stable version of the steamclient. Resolution 5120*1440

Bboospy 2023-07-05 github

New nice thing. Since scaling is activated, i often get this after unlock the screen. Crazy...

steamX-Window

... and the windows can not be closed without exiting steam....

HHenne1191 2023-09-22 github

I still see this issue with the latest steam beta version. forcedesktopscaling 2 is working for me but I would prefer steam to detect the correct desktop scale by itself since I already set it to 200% in Ubuntu settings. I am using Wayland so Steam is running in XWayland.

SShalokShalom 2023-11-12 github

See also this report: https://github.com/ValveSoftware/steam-for-linux/issues/9209

Since Steam can (in principle) already use the GNOME setting, I suggest closing this issue here, and following the other one.

The current issue seems Linux wide, on any environment.

OOdinVex 2023-11-17 github

See also this report: #9209

Since Steam can (in principle) already use the GNOME setting, I suggest closing this issue here, and following the other one.

The current issue seems Linux wide, on any environment.

Why would you close the issue? It's unresolved! The client just needs to expose a float/double multiplier for DPI. Let the user choose!

Mmercster 2023-11-26 github

Valve is a great company, they do amazing things... I can't fathom why after years and years, text scaling doesn't work in their client. While I admit I couldn't fix it myself, it can't be rocket surgery. I wonder if it has something to do with presenting products of companies, like if someone made the fonts look too big it would "deface" the product? I don't understand it.

Nevermind, -forcedesktopscaling 1.3 works for me. Cheers!

(I'm in KDE.)

SShalokShalom 2023-11-29 github

Why would you close the issue? It's unresolved! The client just needs to expose a float/double multiplier for DPI. Let the user choose!

Did you see the issue, that I linked? As far as I know, is the original issue resolved, and a new one appeared. That one is cared for in this link.

Any objections?

OOdinVex 2023-11-29 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/5460#issuecomment-1832650057

What are you talking about? This issue still exists. Steam is not using Gnome's scaling or any desktop scaling correctly (if at all). I'm forced to use STEAM_FORCE_DESKTOPUI_SCALING. The other Issue is newer than this one and they're requesting the same fix as this Issue should have. A bloody float ("slider") to specify a multiplier.

Mmercster 2023-11-29 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/5460#issuecomment-1832778758

In this instance... while I understand your wish your a UI element, the proper "bug fix" would be to properly detect system settings. A feature request for the UI element to scale is another issue (one I think would be nice, but is beside the point.)

OOdinVex 2023-11-29 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/5460#issuecomment-1832785658

System settings will never be right for those that want Steam a certain size aside from the system. Even when I do go out of my way to override Gnome, Steam still doesn't scale. Original Issue still exists, and an easy fix is exactly what me and others have asked for, a way to specify our own size. That'd work across any Desktop Environment. >\

Mmercster 2023-11-29 github

System settings will never be right for those that want Steam a certain size aside from the system. Even when I do go out of my way to override Gnome, Steam still doesn't scale. Original Issue still exists, and an easy fix is exactly what me and others have asked for, a way to specify our own size. That'd work across any Desktop Environment. >\

And again, from a software development standpoint, that is a feature request. Not a bug report.

OOdinVex 2023-11-29 github

System settings will never be right for those that want Steam a certain size aside from the system. Even when I do go out of my way to override Gnome, Steam still doesn't scale. Original Issue still exists, and an easy fix is exactly what me and others have asked for, a way to specify our own size. That'd work across any Desktop Environment. >\

And again, from a software development standpoint, that is a feature request. Not a bug report.

And again, Steam isn't using Gnome's settings that I've forcibly overridden because even Gnome gets it wrong, so this Issue still stands, regardless of 'a feature request'. Gnome softwares do what I've told them to, Steam isn't using Gnome.

Mmercster 2023-11-29 github

even Gnome gets it wrong, so this Issue still stands, regardless of 'a feature request'. Gnome softwares do what I've told them to, Steam isn't using Gnome.

OOdinVex 2023-11-29 github

even Gnome gets it wrong, so this Issue still stands, regardless of 'a feature request'. Gnome softwares do what I've told them to, Steam isn't using Gnome.

Translation for non-devs: "Suck our software."

Mmercster 2023-11-29 github

Translation for non-devs: "Suck our software."

I'm trying to impress upon you that, when a team of developers is working on a complex software project, you don't add band-aid features to "work around" bugs before solving the bug. I am sure whoever at Valve reads these issue reports from end-users are aware of the problem; suggesting a slider is a great idea, but not one that is automatically adopted because you think it would "solve everything." When you write your large software distribution platform, you can include a DPI slider. 😊

OOdinVex 2023-11-29 github

Translation for non-devs: "Suck our software."

I'm trying to impress upon you that, when a team of developers is working on a complex software project, you don't add band-aid features to "work around" bugs before solving the bug. I am sure whoever at Valve reads these issue reports from end-users are aware of the problem; suggesting a slider is a great idea, but not one that is automatically adopted because you think it would "solve everything." When you write your large software distribution platform, you can include a DPI slider. 😊

Not a bandage, an actual necessary "feature" eventually which would address your Issue in the meanwhile. Fixing #9209 or 'closing' #5460 won't address the issue of user DPI, only "we guess this DPI for you". If any DE can't get it perfect neither will you, even if you listen to them. Users may want 2.0 for environment, 1.5 for Steam, for accessibility, it's tied into your approach to resolving all this. Add an exposed float and we can choose for ourselves, no need to even use the DE in that case, Issue can be solved that way, too. I adopted DPI into my development practices before SteamOS was even a thing, I've dealt with accessibility issues and found so many could be solved while fixing other issues and that many times an accessibility-oriented approach solved them.

Rryanabx 2023-12-09 github

Not a bandage, an actual necessary "feature" eventually which would address your Issue in the meanwhile. Fixing #9209 or 'closing' #5460 won't address the issue of user DPI, only "we guess this DPI for you".

If a proper fix is made, it won't be "guessing", it will be respecting the user's choice of display scaling at the DE level.

If any DE can't get it perfect neither will you, even if you listen to them. Users may want 2.0 for environment, 1.5 for Steam, for accessibility, it's tied into your approach to resolving all this. Add an exposed float and we can choose for ourselves, no need to even use the DE in that case,

Most applications do not provide a scaling slider, since it just creates two sources of truth for scaling settings. You can already manually modify the scale of the app using command line arguments, so the feature you request is available already.

Issue can be solved that way, too. I adopted DPI into my development practices before SteamOS was even a thing, I've dealt with accessibility issues and found so many could be solved while fixing other issues and that many times an accessibility-oriented approach solved them.

I think this thread should be used for discussion related to the bug only, and a separate issue should be created for a request such as this.

What should be worked on first and foremost is fixing Steam's lack of awareness for Gnome's scaling. I disagree with the label of "Feature Request" (unless I'm misinterpreting the issue) and I feel that this is more of a bug, since other environments respect the chosen scaling of the user.

OOdinVex 2023-12-10 github

If a proper fix is made, it won't be "guessing", it will be respecting the user's choice of display scaling at the DE level.

If Gnome can't get it right guessing and sometimes individual software needs scaling for specific reasons...no, you can't rely on it. Implement it if you want as a default, but the user should have final say to choose. No one wants to set their entire system to a different DPI just to affect one application that may not look the way they want/need even following DE.

Most applications do not provide a scaling slider, since it just creates two sources of truth for scaling settings.

Many do, even if it's only font-size. The year is 2023, not < 2010. More and more have begun to implement it. So many new screen sizes, so many different devices, so many pixels-to-display ratios and top that off with user preferences and disabilities...

You can already manually modify the scale of the app using command line arguments, so the feature you request is available already.

No one wants to memorize environmental variables for something that should be integrated for the various reasons I've mentioned. The feature requested was a means of specifying DPI via GUI.

What should be worked on first and foremost is fixing Steam's lack of awareness for Gnome's scaling. I disagree with the label of "Feature Request" (unless I'm misinterpreting the issue) and I feel that this is more of a bug, since other environments respect the chosen scaling of the user.

You can't ever guarantee the desired DPI. Some people prefer the application to be bigger or smaller than DE choice. You can default to it, but the ability for a user to specify their own size (you know, like most modern video games?) is pretty much universally desired.

I think this thread should be used for discussion related to the bug only, and a separate issue should be created for a request such as this.

Go for it, I don't care anymore. It seems I'll always be forced to use an *obscure environmental variable (if that even remains constant and available) to set Steam's DPI anyway. Even if Steam did respect Gnome, Gnome is wrong anyway and some software look worse with DE settings and need manual tweaking.

I find it somewhat amusing Steam is a platform based around games and games are known to have accessibility issues...which need user-specific overrides, but the whole approach here about 'suck off, we're going to use Gnome's setting and not let you individually scale Steam except through some obscure means unlike modern software' seems a bit tone-deaf. See what I did there, tone-deaf? No need to reply.

Edit: *A random-ass environmental variable you won't know the name of until you actually resort to search-engines to find the name of and hope you have access to the operating system or permissions to be able to set for whatever reason such as disabilities.

Kkj 2023-12-10 github

This issue is about GNOME's scaling setting, or respecting the desktop environment. A DPI slider has nothing to do with that. You can argue your case for such a feature in a separate issue and stop derailing this one.

OOdinVex 2023-12-10 github

This issue is about GNOME's scaling setting, or respecting the desktop environment. A DPI slider has nothing to do with that. You can argue your case for such a feature in a separate issue and stop derailing this one.

I wasn't derailing it, I was proposing a workaround for this bug's effect, a workaround that would at least allow users the ability to use Steam and solve future issues of 'I want Steam larger/smaller than my DE DPI'. But no worries of 'derailing', I unsubscribed earlier and merely thought I should add earlier's tidbit about the absolutely obscure workaround (for this bug [aka relevant] and of DPI in general) of an environmental variable that no one's going to know about.

Kkj 2023-12-10 github

It's just that you're spending an awful lot of words and energy in a very loosely related thread when you could be opening a new issue where you have all the luxury of framing it as an accessibility issue/feature and discussion can focus on that. The way you're presenting it in this thread is almost as if it's a replacement for proper scaling based on a global setting, so of course you're going to go up against resistance. Those of us who want this fixed don't want a workaround, we want it fixed. You claim that your idea is a necessary feature for accessibility, so open a feature request where that can be discussed on its own merits.

Ddannyman 2023-12-29 github

Plasma on Ubuntu here, running steam:i386 from apt. In order to get the command line argument set, I had to edit /usr/games/steam, which is a shell script ... which calls a shell script? Anyway, changed line 110 from:

test -x "$STEAMDIR/steam.sh" && exec "$STEAMDIR/steam.sh" -nominidumps -nobreakpad "$@"

To:

test -x "$STEAMDIR/steam.sh" && exec "$STEAMDIR/steam.sh" -nominidumps -nobreakpad -forcedesktopscaling 1.5 "$@"

I have Display Configuration > Global scale set to 150%. I think this system was originally Ubuntu 08.04 and has been upgraded over the years. Everything worked fine in Steam until a few years ago, when it one day switched to tiny fonts? Anyway, I am happier for now, until /usr/games/steam gets updated, I guess.

Bboospy 2023-12-29 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/5460#issuecomment-1871775927

OMG, that's it. Waiting for years... but you are the Saviour :1st_place_medal:

... works perfectly here on KDE NEON.

JJamesNKing 2024-01-02 github

Installed Steam through the deb file on Kubuntu 23.10. Using @dannyman's fix, I had to modify /usr/bin/steam/bin_steam.sh on line 216. /usr/games/steam isn't present, don't know if that has to do with my install approach or not.

exec "$LAUNCHSTEAMDIR/$STEAMBOOTSTRAP" "$@"
->
exec "$LAUNCHSTEAMDIR/$STEAMBOOTSTRAP" -forcedesktopscaling 1.5 "$@"

Mmercster 2024-01-02 github

Just curious, is there a reason you guys are editing the shell script that steam installs to invoke itself, rather than just editing the menu entry/.desktop file or whatever you're using to call it?

Ddannyman 2024-01-02 github

Just curious, is there a reason you guys are editing the shell script that steam installs to invoke itself, rather than just editing the menu entry/.desktop file or whatever you're using to call it?

I am not relying on editing the desktop file or whatever it is called because that doesn't work. I don't know if the wrapper script is trying to capture and pass command line args or not, but in my efforts to get things working, I found that invoking /usr/bin/steam -forcedesktopscaling 1.5 did not result in a scaled UI and what I had to do was hack the wrapper script itself. 🤷🏻

JJamesNKing 2024-01-02 github

Just curious, is there a reason you guys are editing the shell script that steam installs to invoke itself, rather than just editing the menu entry/.desktop file or whatever you're using to call it?

Uhhhh because I don't know what I'm doing and I assumed it wouldn't work since appending the option to steam on the command line didn't work :)

Mmercster 2024-01-02 github

@dannyman @JamesNKing Alright, fair enough! Works for me in KDE, but do what ya gotta, I guess.

JJamesNKing 2024-01-02 github

Deleting the change from /usr/lib/steam/bin_steam.sh and adding it to the desktop file seems to have retained the desired scaling effect. Not sure if that's Steam maintaining the old setting it was provided or properly reading the updated one.

TTDuffinNTU 2024-01-20 github

FWIW, I got it working by executing

sudo flatpak override --env=STEAM_FORCE_DESKTOPUI_SCALING=2.0 com.valvesoftware.Steam

in any console. You dont need to modify your .desktop file which is a nice touch! This only works for the flatpak version, of course.

11player 2024-01-21 github

If you use flatpak, you can set it once and for all using something like Flatseal:

Screenshot_20240121_153532

AAED-001 2024-01-27 github

If you use flatpak, you can set it once and for all using something like Flatseal:

Screenshot_20240121_153532

Thanks, this worked!

Oomega552003 2024-02-29 github

On Fedora 39 KDE open /usr/lib/steam/bin_steam.sh edit line 179 from exec "$LAUNCHSTEAMDIR/$STEAMBOOTSTRAP" "$@" to exec "$LAUNCHSTEAMDIR/$STEAMBOOTSTRAP" -forcedesktopscaling 1.5 "$@" the 1.5 can be adjusted to the scaling that the desktop is using.

I think i have to use this because i also have to force steam to default to the non preferred GPU (iGPU).

MMBA380 2024-05-02 github

what worked for me, instead of setting that variable and config (which I didn't try as this was the first thing that worked) was simply toggling "scale text and icons to match monitor settings" from the interface in settings, off and then on and restarting steam both times. If that doesn't work, you should do what others have suggested on here.

FFignys 2024-05-23 github

This has been open since 2018, and it is still a problem. I'm using Fedora 40 (tried both Gnome/Wayland and Cinnamon), and installed Steam from the software store.

Passing arguments from the application menu does nothing. Having to manually go in and adjust configuration files just to make this usable is unacceptable.

JJamesNKing 2024-05-23 github

You get what you paid for :) . Also why complain about stability and run Fedora?

FFignys 2024-05-23 github

You get what you paid for :) . Also why complain about stability and run Fedora?

Yes, I'm paying Valve via the games I purchase. I'd submit a ticket in Steam itself, but that system has its own problems that are secondary to this.

And apparently, this isn't even contained to any particular distribution, as evidenced by the users above me. This isn't even a stability question to begin with, it's an oversight, and we get the same answer from the devs every time: "Deal with it lol"

I literally cannot read the screen. I had to pull out a magnifying glass just to find where "Settings" was in the menu.

JJamesNKing 2024-05-23 github

"Steam only officially supports Ubuntu running Ubuntu 12.04 LTS or newer and SteamOS, but the Steam for Linux community is extremely resourceful and has managed to run Steam on a large variety of distros. Valve approves of these efforts but does not officially endorse or provide support for them. Steam on Linux supports both x86 and x64, it's highly recommended that you ship 64 bit binaries as the vast majority of users will be running that."

Source

MMBA380 2024-05-23 github

Passing arguments from the application menu does nothing. Having to manually go in and adjust configuration files just to make this usable is unacceptable.

If you're on kde, its pretty simple. You don't have to go into any configuration files. Open the search menu, type steam -> right click on steam (runtime) -> edit applications -> go to 'Application' tab -> Put this in your "Arguments:" section:
"-forcedesktopscaling=1.5 %U" (without the quotation marks)

Change 1.5 to whatever scaling you have set your display as. If its 200%, set it to 2.0 and you're done. It's foolproof and simple.

Pperroboc 2024-06-07 github

Just tried to set up GDK_SCALE=2 as a Environment Variable, and then restarted Plasma 6 which is set to 200% in display settings. The results are... something (Obsidian scales to 400%, Steam stays at 100%, and all I wanted was for both to be at 200%):
image

So it seems that, at least Electron apps, scale once for the desktop setting, and again for the GDK_SCALE=2 variable. But Steam doesn't, for neither of them.

So, for now, I'm going back to disabling the GDK_SCALE=2 environment variable, and enabling the STEAM_FORCE_DESKTOPUI_SCALING=2.0 one. It sucks that Steam isn't able to read this value.

Ssotix0 2024-06-28 github

I am seeing this issue on KDE Plasma on a hidpi monitor with scaling set to 150%.

If I set STEAM_FORCE_DESKTOPUI_SCALING=1.5, the scaling is correct. If I launch big picture and then exit back to the normal steam interface, the scaling is correct. However, if I set STEAM_FORCE_DESKTOPUI_SCALING=1.5 and enter big picture and then exit back to the normal interface, the scaling is applied twice.

So something about entering and exiting big picture triggers the correct scaling without any additional environment variables.

Llostgoat 2024-07-26 github

As of today's beta, steam will now query the scaling setting value via SDL3. We've been working with various DE devs to ensure that their DE reports the right value via SDL3 for both wayland and X11 based systems.

The main reason for this change is that there is a myriad of ways scaling settings are stored and trying to keep up to date with this logic in the closed source steam codebase is an uphill battle. Now, if there is a case where we are getting the wrong data via SDL3 the relevant DE devs can inspect the code and provide upstream patches to SDL to address the issue.

Please note the following caveats:

  • STEAM_FORCE_DESKTOPUI_SCALING and -forcedesktopscaling take precedence over the SDL3 query. So if you have made any changes to your environment to set these, you might need to remove them to take advantage of the new logic.
  • We query the scaling settings for the primary monitor.
  • Scaling does not automatically change when a window moves to a different monitor with different scaling settings.
Ddevurandom 2024-07-27 github

I disabled (unset / removed) STEAM_FORCE_DESKTOPUI_SCALING and updated my Steam client to:

Steam Beta Branch:  Steam Families Beta
Steam Version:  1722028579
Steam Client Build Date:  Fri, Jul 26 22:54 UTC -08:00
Steam Web Build Date:  Fri, Jul 26 22:54 UTC -08:00
Steam API Version:  SteamClient021

However, scaling does not appear to be applied in Steam -- the text is tiny. My primary screen is scaled at 175% and the 2nd screen at 125%, see also Window Manager info linked below.

System:

Operating System: NixOS 24.05
KDE Plasma Version: 6.0.5
KDE Frameworks Version: 6.2.0
Qt Version: 6.7.2
Kernel Version: 6.10.0 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 9 6900HS with Radeon Graphics
Memory: 30,6 GiB of RAM
Graphics Processor: AMD Radeon Graphics

Window manager: https://invent.kde.org/-/snippets/3190

Llostgoat 2024-07-27 github

@devurandom A good place to start with that report might be with the NixOS steam package maintainers.

Currently the whole logic in steam amounts to pretty much two function calls (with a bit more error handling in between):

	SDL_InitSubSystem( SDL_INIT_VIDEO );
        float flScale = SDL_GetDisplayContentScale( SDL_GetPrimaryDisplay() );

So bugs will most likely be in either distro or SDL. Since NixOS tends to be fairly different from other distributions it might be best to check with the NixOS steam package maintainers first.

Ddevurandom 2024-07-28 github

I run Steam as a Flatpak. Could that be a problem for this mechanism of getting the scaling factor?

Pperroboc 2024-07-29 github

Doesn't work here, yet. Fedora 40, Plasma 6, Wayland.

I tried a small simple SDL3 program with the function posted (C++), and it succesfully outputs 2.0 as the float value, so at least the DE and SDL3 are correctly informing the value.

Hopefully next beta version will have the update in place.

Steam Beta Branch:  Steam Beta Update
Steam Version:  1722028579
Steam Client Build Date:  Fri, Jul 26 4:54 PM UTC -08:00
Steam Web Build Date:  Fri, Jul 26 4:54 PM UTC -08:00
Steam API Version:  SteamClient021
Operating System: Fedora Linux 40
KDE Plasma Version: 6.1.3
KDE Frameworks Version: 6.4.0
Qt Version: 6.7.2
Kernel Version: 6.9.11-200.fc40.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 32 × AMD Ryzen 9 7950X 16-Core Processor
Memory: 31,0 GiB of RAM
Graphics Processor: AMD Radeon RX 7900 XTX
Manufacturer: ASUS
Llostgoat 2024-07-29 github

@devurandom Flatpak could make a difference, but I tested flatpak on my system (Arch+KDE+wayland) and it worked okay. It is probably still a good idea to test the non-flatpak version of steam on your distro.

@perroboc You need to make sure you run the test app in the same environment as Steam runs in. That includes making sure it is compiled in 32bit mode and running it inside the steam runtime. And make sure you are using SDL3, most distros ship SDL2 at the moment. Additionally, Fedora has non-standard modifications to SDL, which include changing the default SDL backend to wayland. So you'll need to add SDL_VIDEODRIVER=x11 when launching the app. There might be other details here too depending on how your distro launches steam.

I can add some extra logging to dump the scaling information we read to help understand if it is an issue on the steam side or the distro side.

Pperroboc 2024-07-29 github

make sure you are using SDL3, most distros ship SDL2 at the moment

Can confirm I wasn't able to find SDL3 in the Fedora repos (while SDL and SDL2 were available, SDL3 had to be downloaded from source repo for my poc test). Pretty sure this is why it's not detected.

you'll need to add SDL_VIDEODRIVER=x11 when launching the app

Even with this env var it wouldn't detect the DE scale.

I can add some extra logging to dump the scaling information we read to help understand if it is an issue on the steam side or the distro side.

I agree this would be great to have (and help)! Maybe when launching with --verbose. I wasn't able to find if I was using SDL2 or SDL3, for example.

I did cd ~/.steam/root/ubuntu12_32 and file * | grep ELF | cut -d: -f1 | LD_LIBRARY_PATH=. xargs ldd | less and searched for SDL3, and came up with the following:

friendsui.so:
        libSDL3.so.0 => ./libSDL3.so.0 (0xf765c000)
gameoverlayui.so:
        libSDL3.so.0 => ./libSDL3.so.0 (0xf7606000)
libSDL3_image.so.0:
        linux-gate.so.1 (0xf7f38000)
        libSDL3.so.0 => ./libSDL3.so.0 (0xf7c70000)
        libc.so.6 => /lib/libc.so.6 (0xf7a5a000)
        libdl.so.2 => /lib/libdl.so.2 (0xf7a55000)
        librt.so.1 => /lib/librt.so.1 (0xf7a50000)
        /lib/ld-linux.so.2 (0xf7f3a000)
        libm.so.6 => /lib/libm.so.6 (0xf797b000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7976000)
libSDL3.so.0:
        linux-gate.so.1 (0xf7f26000)
        libdl.so.2 => /lib/libdl.so.2 (0xf7c7d000)
        librt.so.1 => /lib/librt.so.1 (0xf7c78000)
        /lib/ld-linux.so.2 (0xf7f28000)
        libm.so.6 => /lib/libm.so.6 (0xf7ba3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7b9e000)
        libc.so.6 => /lib/libc.so.6 (0xf79a1000)
libSDL3_ttf.so.0:
        linux-gate.so.1 (0xf7ecc000)
        libSDL3.so.0 => ./libSDL3.so.0 (0xf7abe000)
        libm.so.6 => /lib/libm.so.6 (0xf79d0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf799a000)
        libc.so.6 => /lib/libc.so.6 (0xf779d000)
        libdl.so.2 => /lib/libdl.so.2 (0xf7798000)
        librt.so.1 => /lib/librt.so.1 (0xf7793000)
        /lib/ld-linux.so.2 (0xf7ece000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf778e000)
steamclient.so:
        libSDL3.so.0 => ./libSDL3.so.0 (0xf54ca000)
steamui.so:
        libSDL3.so.0 => ./libSDL3.so.0 (0xf60f6000)
SSunspark-007 2024-09-07 github

@lostgoat It's worth mentioning that on the Steam Deck in desktop mode, I had to set the variable to have the UI scaling of the Steam for Linux app work. It wasn't auto-detecting the scaling KDE is set to. After I manually exported the value to match the system scaling it was fine.

Pperroboc 2024-10-30 github

@lostgoat Testing flatpak version on Fedora 41: it works without any special env vars! Nice, thanks!

But then I get #9565 where the desktop window is now 2x the scale it was before BPM. One issue at a time :)

Steam Beta Branch:  Steam Beta Update
Steam Version:  1730253536
Steam Client Build Date:  Tue, Oct 29 10:27 PM UTC -04:00
Steam Web Build Date:  Tue, Oct 29 10:01 PM UTC -04:00
Steam API Version:  SteamClient021
Llostgoat 2024-10-30 github

@perroboc thanks for confirming. We've been working with DE devs to improve scaling detection in SDL, and the recent steam client update pulled in those changes.

Launch options

Upstream links