GNOME and high-DPI screens

I've recently acquired a Retina Display MacBook Pro, with a native 2880x1800 15" screen. Apple's approach to this on Mac OS X is similar to iOS and Android running on high-density mobile displays: providing a device-independent coordinate system that matches "traditional" pixel size, scaled at some fixed factor to native device pixels. This leaves "old" apps looking the right size but pixelated, while newer apps can drop in high-resolution imagery where necessary without changing layout. [Detail: any given window has a backing store at either 1.0 or 2.0 scale, and the window manager / compositor scales them to fit the screen(s) they appear on appropriately.]

Of course I'd love to see GNOME thrive on screens like this too... some day this MacBook should become a proud Linux machine. :) I've been fiddling with Ubuntu in a virtual machine while manually setting the screen to 2880x1800 unscaled to see what I get today. (VirtualBox gets backwards-compatibility zoom mode normally, so I have to crank up to unscaled mode to get all the pixels available to the Linux VM.)

From what I can see the GNOME/Gtk+/X11 world so far works similarly to the Windows desktop in that you can scale up text or DPI, but most everything continues to address device pixels directly no matter how high you crank it up -- leaving icons and other fixed-pixel-size elements tiny on a high-DPI screen.

I've found that I can use the gnome-tweak tool to bump the text scaling factor up to 2.0 and a lot of stuff looks pretty nice. Ubuntu's Unity doesn't fare well, but GNOME-Shell w/ Adwaita theme scales up its dialogs, status bar icons, and window decorations reasonably well -- with exceptions like the on/off switches in the menus remaining small. On launching a few apps, there are lots of problems, generally from seeing a mix of text-relative-scaled objects and fixed-pixel-size icons or windows. Firefox and Epiphany show UI scaled to the text factor, but web pages default to showing tiny. The GNOME system settings app can't be resized, making it a bit awkward. :)

Here's a screenshot of Gimp, showing a representative mix of good and bad UI elements:

Is there a strategy within GNOME for handling high-density displays of this sort in the future?
* scaling more icons and widgets against the text scaling factor automatically?
* sizing windows based on the text scaling factor, rather than raw pixels?
* making mouse cursors larger to maintain visibility?
* more SVG for icons?
* should things use device DPI instead of a GNOME-specific scaling factor? How can this be easily overridden when Xorg seems to force it to 96dpi?
* even if DPI is cranked up, do we have to deal with scaling widgets to fit?
* most scarily: how to deal with multiple monitors with different display densities?
* do we care about app backward-compatibility, or assume that good apps will be updated to work in the future?

What can regular users and casual developers do to help today? Should we report things that don't scale as expected, or wait for something to get into place before we start?

I'm sure there won't be any fast fix-all solutions, but as screens with 1.5 and 2x the resolution of classic screens trickle out to more laptops in the future, this'll be something that needs addressing...

-- brion vibber (brion @ / bvibber @

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]