Fixing GNOME HiDPI support after 3.26 upgrade

December 10, 20173 min read

I have a Dell XPS 13 with a HiDPI display and ever since I updated to GNOME 3.26 it’s been a bit of a mess with the window scaling and external monitors. If you’re having the same issue, keep reading to find out how to fix it and why it probably happened. If your time is valuable, thought, just check the solution.

On the previous GNOME versions, I used to change the scaling level manually in the Tweak tools application every time I switched to an external monitor. It did the trick but as a drawback, if the external display had a different resolution, it made everything on the laptop screen look wrongly scaled. I used to turn it off and just use the external one.

GNOME 3.26 introduced a new layout to the Settings application with improvements on GNOME’s display.

The new display settings include a preview version of a new scaling setting. This allows the size of what’s shown on the screen to be adjusted to match the density (often expressed as PPI or DPI) of your display, resulting in the right amount of content being displayed, as well as making it easy to read.

The display scaling feature is expected to mature in future releases. For the best experience, Wayland is recommended over X11, as per-display configuration is not supported on X11.

Introducing GNOME 3.26: “Manchester”

Even thought it’s not explicitly mentioned, it provided, at last, an easy way to configure different scaling settings per display. They also moved the scaling settings from the Tweak tools, now named Tweaks, to the display settings.

Isn’t this cool? I had been waiting for this for such a long time, so I could finally forget about messing around with xrand and change settings every time I switched displays. Unfortunately it didn’t for me.

Tired of waiting for a magical update fixing this issue, I told a couple of friends which I knew were using similar setups, but it was working just fine on their computers. As I already suspected, there was something wrong with my configuration and / or my USB-C Thunderbolt 3 (spoiler alert: it wasn’t this).

After some research, removing old configurations and getting frustrated, nothing changed.

via GIPHY

Today, I recalled that I had a secondary user account on my laptop, which I rarely use, and I decided to remove it. Before proceeding with it, I logged in and checked if I had anything stored in there, just to be on the safe side. I quickly realized that my laptop screen had turned on and that it was properly scaling windows when I dragged them between displays.

I took a wild guess and decided to reset all my GNOME related settings on my main account. And now everything is working as expected.

The fix

These are the steps I took to fix it:

Note that by doing this, all your GNOME settings including the extensions ones will be lost.

  1. Logged out.
  2. Switched to another tty and logged in.
  3. Run dconf reset -f /org/gnome/.
  4. Switched back to GDM, which in my case is tty1, and logged in.

TTY switching: you can switch between ttys with ctrl+alt+F3 where 3 is the tty number you want to switch to.

Voilà, problem solved. What was probably happening, from what I understood from all of this, is that this new scaling factor from GNOME’s preferences was only for Wayland, so the applications running under XWayland (Firefox, Chromium, etc) were still using the old setting instead of the new one.

I’m really excited about the new upcoming improvements on this matter, especially fractional scaling factor, which would be really game-changing. I also hope for a better support on the applications running under XWyland.