Thanks to a generous donation a couple months ago, we’ve been able to target hi-dpi (or Retina) displays for support in the next Cinnamon release.

The changes are largely complete, and live on the ‘hidpi’ branch of a number of Cinnamon repositories. They are:

cinnamon

muffin

cinnamon-settings-daemon

cinnamon-desktop

nemo

We would welcome anyone who wishes to test this out (and hopefully report back anything that’s been missed in the process.)

The requirements are:

Gtk 3.10+

a laptop or display that rates as hi-dpi (this is not necessarily a high pixel count, but the actual density of the pixels to the size of the display.)

For Mint/Ubuntu users, unfortunately you’re restricted to using an up-to-date Ubuntu Trusty for now. Most other, more ‘pure’ distributions like Fedora, Arch, can likely use these branches in their current system as long as they’re on Gtk 3.10 or higher. Note, if you’re not sure, or things don’t seem to be working as they should, check your cairo version – you’ll need a snapshot version (like 1.13 shipped in Fedora) with a Gtk built against that or else you won’t have full support.

Known issues:

On certain Cinnamon themes, the menu icon can be the wrong size. Still looking into this.

MDM does not support hidpi yet – it works, it will just be tiny.

Changing the scale during a session, or changing the display resolution will cause some ugliness – recommended that you restart/logout-back in after setting a custom scale.

Window manager buttons (close, minimize, etc..) are unscaled right now – still working on this.

Features/Noteworthy items:

At the start of a Cinnamon session, the settings daemon does some calculation and tries to set the correct scaling value for you… no other intervention or setting should be required. You can manually select a scale using the selector in Cinnamon Settings->General. Usually it should be left at Auto.

Cinnamon settings panel icons are now themeable: Icon sets can now override the icons for each of the cinnamon-settings panels, as well as their display in the menu.

For applet/desklet/extension developers, you generally should be able to use your applets un-modified – they should just work, regardless of scale. However, in certain cases, where you may be doing some drawing or allocations based on screen size, you can access global.ui_scale to get the current scale (will be an integer, 1 or 2) and modify your math accordingly. Checkout the stock menu applet to see an example of where that’s been used.

Cinnamon themers: Your themes should work as is, without modification. All theme elements, pixel sizes, etc.. are scaled automatically.

Gtk themers: There are a lot of changes to absorb, not the least of which is supplying double-scale resources for various widgets. I would recommend checking out https://git.gnome.org/browse/gnome-themes-standard/log/?qt=grep&q=hidpi to get an idea of what’s involved. Themes will work ok unmodified, but widgets will have weird sizes, things may be pixelated, etc.. Not the end of the world, but not pretty either.

Gtk2 apps only appear to scale their text, not their icons. So, while they work fine, they don’t look great. Same with QT apps. I’m not knowledgeable enough to speak on how to address this right now.

There is only one scale factor for the desktop – I’ve not tested this in a multi-monitor configuration, but I can say that if they’re not both the same DPI (or close) monitors, then one will look good, and the other bad. As far as I know right now this is a limitation in x-server.

So anyhow, I know hi-dpi tech is still relatively new, but more and more laptops are coming out with this, and we want to ensure support. If anyone out there with one of these new devices wants to give Cinnamon a spin, we would welcome any feedback or criticism. I know personally I don’t use every single feature in Cinnamon, so there are likely areas that I’ve overlooked.

Enjoy!