As olivierb2 pointed out there is no simple, global way to accomplish this. However, I did find a way to perform window scaling on a per-app basis that works very well, but not for all applications.
I found a script called run_scaled that acts as a front end for xpra, which is like screen for X. It basically sets up a second X server scaled to whatever you choose, runs your app, and then forwards it to your primary display. In order to use it you need to install some deps:
sudo apt-get install xpra winswitch xvfb
Install it:
curl "https://raw.githubusercontent.com/kaueraal/run_scaled/master/run_scaled" > ~/.local/bin/run_scaled
chmod +x ~/.local/bin/run_scaled
And after that on a new shell you run your app like so:
run_scaled someapp
If you test your app(s) that you need scaled and it works you can make it a little more user friendly by copying the script to somewhere in your path and editing the .desktop file for your app so it will launch scaled from your DE.
The downside is that this doesn't work with every app. It seemed to work fine for all of the FOSS apps I tried, but non-free apps like Steam and HipChat didn't work. Not a perfect solution, but it can help in a pinch.
run_scaled
the way I want and save this to a shell script (say, in$HOME/bin/.MyAppScript.sh
), (2) create a Desktop file (which is a 10-ish line text file, not difficult to learn how to make) that executes the shell script in #1 and save this DEsktop file in$HOME/.local/share/applications
, and finally (3) launch from, place in your dock favorites, etc. – Lexible Dec 21 '20 at 18:31