Not long ago I purchased a Dell XPS 13 with the HiDPI touchscreen. It was one of the Project Sputnik “Developer Edition” laptops loaded with Ubuntu from the factory; nice and clean. This was my first foray into using a HiDPI screen in Linux. From my research before purchasing, it sounded like a mixed bag of functionality. I fired up a bunch of apps, tested them out and dutifully submitted a bunch of bug reports regarding scaling issues to a number of projects. From there, once ushered into the development side of KDE, I decided to start helping out with fixing some of the issues I saw with KDE/Qt apps.

It appears there are still very few users and even fewer developers with a HiDPI screen who run 2x scaling, so I notice things others don’t. Most of it revolves around window sizes upon loading, interface button and label sizes, and icon pixelation. Minor stuff, but annoying.

The latter of which, is actually really easy to fix in Qt apps.

It’s one line:

QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);

Enter that into main.cpp of the program and you’re set! Even myself, a rather entry-level programmer can perform that task and submit a patch. So that’s what I did for several applications.

Look carefully at the before/after pixelation of the icons here in KTorrent:

Some more examples and links to Phabricator, please ignore any change of icon colors, that is a different issue that has been recently resolved:

I have a few more in my list, such as the AppMenu button you can add to KWin. Anyone want to tackle that?

But anyway, lots of progress is being made! These sorts of fixes, along with ones like display of scaled icons from intended folder, 2x icons in Breeze, enhanced scaling abilities in Wayland, and implementation of HiDpiScaling in some older apps are being committed constantly.

Running the latest Plasma release, there are very few HiDPI issues left, and a good portion of them can be blamed on X.

You could help do easy tasks like this too!

Visit KDE’s Get Involved page for more information, or contact me!