Question: I am running Gnome Shell with a 4k monitor and there are a few applications that I use that don't scale at all with the high resolution.

Here is an example of LMMS, an application that hasn't yet been ported Qt 5, so it doesn't have high dpi scaling capabilities:

[![Screenshot](https://i.stack.imgur.com/Af0Vr.jpg)](https://i.stack.imgur.com/Af0Vr.jpg)  

(Click images to enlarge)

Is there any way to scale a specific X window without changing the display resolution?

My current solution is to half the dimensions of my display resolution, but this degrades the resolution of every other application that supports proper dpi scaling:

[![Screenshot](https://i.stack.imgur.com/fJVFL.jpg)](https://i.stack.imgur.com/fJVFL.jpg)

Answer: 
I finally managed to find a solution that scales old applications without any noticeable visual or performance degradation.

Thanks to kaueraal, you can now scale old applications using `run_scaled`. You can obtain the script from either his [GitHub page](https://github.com/kaueraal/run_scaled) or as part of the `xpra` package if you are running Arch Linux.

Here is an example of two applications running side by side:

* Firefox with HiDPI support on the left
* LMMS running with `run_scaled` on the right

[![enter image description here](https://i.stack.imgur.com/VwIjQ.jpg)](https://i.stack.imgur.com/VwIjQ.jpg)

I discovered this script through the [Arch Linux Wiki](https://wiki.archlinux.org/index.php?title=HiDPI&oldid=468803#Unsupported_applications).
I think I've found a GPU-accelerated solution! Install `weston` and run this:

```
weston --xwayland --scale=2
DISPLAY=:1 your_app

```

That's it!

Tuning
------

Note 1: You may have noticed a magical number has been used, `DISPLAY=:1`. The underlying assumption here was that your main xorg display is `:0`. If it's not, adjust accordingly.

Note 2: You may have noticed that `weston` has a top panel by default. You may want to remove it. To do that, create a `weston.ini` file:

```
[core]
idle-time=0

[shell]
panel-position=none
locking=false

```

And use it when starting weston `weston --config=/path/to/weston.ini`. You can also place it to `~/.config/weston.ini` for it to be picked up by weston automatically, please refer to `man weston.ini` for further details.

EDIT: I've also documented the newly found approach here: <https://wiki.archlinux.org/title/HiDPI#Unsupported_applications,_via_weston>