ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.23k stars 174 forks source link

Steam client UI scale incorrectly set after exiting new Big Picture Mode #9565

Open AlmaPlata opened 1 year ago

AlmaPlata commented 1 year ago

Your system information

Please describe your issue in as much detail as possible:

When exiting Big Picture mode, Steam client base UI gets scaled up compared to its previous state before entering BP. The scale factor seems about x1.25 times base scale, and happens with or without -forcedesktopscaling being set. When it is set, the scale factor adds up. For example, having it set to 1.25 seems to increase it to about 1.5 after exiting BP. Not so sure since which Beta update happens, most likely since new Steam UI arrived (haven't used BP lately).

Steps for reproducing this issue:

  1. Open Steam client, shown at normal scale.
  2. Enter Big Picture
  3. Exit Big Picture, Steam client UI now shown at a bigger scale.

Steam at regular scale image

Steam at bigger scale after exiting BP mode image

Mar2ck commented 1 year ago

From my testing it seems like this is caused by Steam adding the values from -forcedesktopscaling and org.gnome.desktop.interface/text-scaling-factor together after Big Picture exit. I have both set to 1.25 so the UI becomes scaled to 150%.

If I use -forcedesktopscaling 1 with text-scaling-factor at 1.25 then the UI starts at 100% but changes to 125% after exiting Big Picture. If I use -forcedesktopscaling 1.25 with text-scaling-factor at 1 then the UI correctly starts at 125% and doesn't change after using big picture.

stanczew commented 1 year ago

I think the issue is the other way around: the scaling is correct after exiting Big Picture, but incorrect before entering it.

I noted different UI scaling at the following points in time:

  1. Desktop mode just after launching Steam
  2. In-game overlay
  3. Big Picture
  4. Desktop mode after exiting Big Picture

If I launch Steam without -forcedesktopscaling, then I get incorrect scaling (100%) at point 1, and correct scaling (200% in my case) at points 2, 3, and 4. With -forcedesktopscaling 2 I get correct scaling (200%) at points 1 and 3, and incorrect scaling (400%) at points 2 and 4. (I leave text-scaling-factor at default 1.0, because changing it completely messes up scaling in Firefox.)

I assume the scaling should work automatically without the need to use -forcedesktopscaling or text-scaling-factor. And in this case it seems that the only issue is with the initial scaling after launching Steam – all other scenarios scale correctly on my setup.

Sevenseraphim commented 1 year ago

Hey I just wanna ask if there's a temporary solution to this, because I have to start steam in big picture mode every time and then exit for it to properly follow my desktop scaling (which is at 125%) please if anyone has a way to temporarily solve this I would be grateful. If there are any commands I can manually run or some config file somewhere I can change and set the scaling level to 125%...

I'm on Manjaro using KDE Plasma 5.27.5 as a Desktop environment

Sevenseraphim commented 1 year ago

Ok I found a temporary solution in case anyone else wants to know...

navigate to: /usr/bin and find the file "steam-runtime" (i'm on manjaro and steam is installed from the repos so this is where the executable file is located for me)

Open the file with whatever text editor you have (I used Kate in KDE)

there is a line that says: exec /usr/lib/steam/steam "$@"

change it to: exec /usr/lib/steam/steam -forcedesktopscaling 1.3 "$@"

The 1.3 here is the scaling factor so its 130% in the case above, if you wanted 125% scaling you would write 1.25 instead

Save the file and it will ask you for your admin password.

Now whenever you launch steam from your desktop it will have the scaling factor you entered above. After doing this I no longer need to open steam in Big picture mode and then exit again to get the correct scaling.

I hope this helps someone out there. Cheers.

AlmaPlata commented 1 year ago

This is still an issue in the latest beta. To further help finding a solution, a couple things I noticed:

AlmaPlata commented 1 year ago

I have kind of a new lead. Tried messing with the DE's font and scale settings. I'm running KDE, but tried setting org.gnome.desktop.interface text-scaling-factor 2.0, but doesn't seem to have any effect. Then I tried changing the force font DPI setting on KDE. I usually have it at 120, since I have 1440p screen. When setting it back to 96, if I run Steam with -forcedesktopscaling set to 1.2, things seem to behave as intended, when entering and then exiting BPM the scale stays the same.

So, I wonder if there's any way or env variable to set to make Steam get the default DPI value instead of the modified one.

Red-Luci4 commented 6 months ago

OMG this thread just save my life, now I don't have to enter and exit Big Picture Mode to scale up my UI.

Sevenseraphim commented 6 months ago

I found another workaround that I had posted before on a steam discussions thread and is easier to do than my previous instructions above if anyone is still struggling with this:

Open terminal and type: sudo nano /etc/environment (this will open the above file with the nano editor program if you have it installed, if you have another program or are able to edit this file through a GUI program then go ahead and use that instead)

On a new line write: STEAM_FORCE_DESKTOPUI_SCALING=1.3 (the line above basically tells steam what scaling you want: 1.3 is 130% if you want 150% scaling just type 1.5 instead... etc...)

Now type in terminal: source /etc/environment (this will reload the environment file to become active with the changes you made above)

Now anytime you launch steam from anywhere it will follow the scaling you set above, this change is persistent even if you restart your computer. If you want to change the scaling just repeat the steps above and don't forget to use "source /etc/environment" each time to make the new settings active.

If you've followed my previous instructions just undo those changes and then do this instead and it will also work.

Hopefully someday Valve will sort this issue out. 🥲