One thing that's for certain is that I made things very hard for myself by using a hidpi monitor, but it's actually very difficult now to buy a laptop that isn't hidpi!
Some people have claimed the problem is not hidpi per se but the fact that 150% DPI, "fractional" DPI, is a big problem on Linux, but this too confuses me because 150% DPI has been bog standard on Lenovo laptops since 2015 (and, on Windows, entirely Not A Problem) and CW says Lenovos are good for Linux. So WTF.
My conclusion from installing Linux on a Surface tablet is that they *also* did not really consider the mode where you have a touchscreen and no keyboard plugged in, because it has the same problem. There was seemingly no way to get the onscreen keyboard to show up only when you interact with an input, and a lot of apps didn't seem to support scrolling via the touchscreen.
@mcc Last time I've read about fractional scaling, it looked liked this: https://blog.elementary.io/what-is-hidpi/ (but I guess @cassidy could give us an update?)
as for fractional scaling on Windows, I've seen it work but doesn't it look a bit... bad? Like with blurred stuff all over the place?
@ailepet @mcc @cassidy Windows supported fractional DPI scaling from Windows 3.0 onwards, though most programs were only ever tested at 96 DPI (the default) and some at 120 DPI ("Large Fonts" mode). Windows Vista added a manifest setting and an API to declare a program as high DPI compatible, and made every program that didn't declare themselves as high DPI compatible render at 96 DPI, then bitmap stretch (Vista and 7 only did this if you set DPI above 120, from 8 onwards it happens even at 120 DPI). There was also a compatibility setting for older programs you could set to mark them as high DPI compatible.
Later when monitors with even higher pixel density appeared, some high-DPI-compatible programs started having problems again, as they weren't really tested above 150%, so Windows 10 1809 added two more DPI compatibility settings – one that makes the program always render at 96 DPI and bitmap-stretch, and another that does the same, but intercepts (most) font drawing calls, which makes text sharp (it can cause some rendering problems, so it's not the default).
But otherwise Windows always supported fractional scaling, and programs that did not make assumptions can always render sharply.
The only remaining problem is when you have displays with different DPI – this is fully supported by Windows, but programs need to specifically support it, otherwise moving a window between different DPI monitors will result in blurriness.
I installed Endeavor on some random cheap Walmart laptop (Gateway) and have had NO problems at all with audio
@mcc Fractional scaling is a problem on Wayland because the protocol it's designed around integer factors, so that a new extension had to be devised specifically to support fractional scaling
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/143
and it's still … questionable.
On X the situation is (or was, depending on perspective) very inconsistent, and highly dependent on application and toolkit. Qt apps work best IME, GTK3 apps work worst, most of anything else is entirely app-specific.
Previously wp-surface-scale-v1. This protocols allows for communicating preferred fractional scales to surfaces, which in combination with wp_viewport can be used to render surfaces at fractional scales...
@mcc yeah, the fractional scaling situation is unfortunate, and as you say, you really can't buy a good laptop these days that doesn't need fractional scaling.
That said, the situation is improving, and I think over the next year it there's a good chance that the remaining issues will be basically solved.
@mcc at least for me, the only remaining issues are IntelliJ, which still runs under XWayland and therefore doesn't scale properly, and games (which also run under XWayland).
A native Wayland backend for IntelliJ is underway, so hopefully that problem will be solved soon, and games will be fixed either by a Proton port to Wayland (which may be a while off) or by using a hack like KDE has where the compositor doesn't even try to scale XWayland apps, and just leaves them to do what they want.