Scaling improvements for X11 applications

Any reason we don’t have a hybrid scaling option for legacy x11 applications?
If it’s impossible for the system to identify an application automatically, maybe include an override for specific programs? That way I can force system scaling, without all my applications appearing blurry.

Screenshot_20260615_182907

What do you mean by this, exactly?

My best guess is “per application scaling options”? I’m not sure if something like this would be feasible through kwin application rules. I’m not really using many x11 applications anymore, so I don’t know how big a problem this really is.

One workaround is to use “Apply scaling themselves”, then launch those who doesn’t scale with Gamescope.

Yeah, that turns out to be really challenging. XWayland uses a global scale (just like good old X11 did) so to have per-app XWayland scaling, you’d need to run multiple XWayland instances, one per scale factor used. This is something we don’t have the ability to do right now, and if we did, the result would be higher background resource usage — potentially a lot, if you have multiple screens with different scale factors and you run more than a few XWayland-using apps with their own scale factors. You could easily wind up with 5 or 10 XWayland instances running!

Well, that makes sense. And I guess it would basically be @jinliu’s solution but with extra steps

jinliu’s recommendation will work for my use case, but I would imagine that it would be heavier than what I need. I would imagine only 1 or 2 XWayland instances would be necessary. I am not asking for “per application scaling.”

Here’s the proposal:

  1. The way the Legacy applications radio select works currently is perfect, this acts as the “default rendering method”
  2. If the “Apply scaling themselves” method is selected, a separate blacklist can be created for applications that the user chooses.
  3. The blacklisted applications will follow the “scaled by the system” instructions, instead of the default “Apply scaling themselves” because the user has deemed them not able to do so.

So basically the exact same as how the scaling already works, but just let me scale some apps to the system scale.