.___.
     /     \
    |-■ ― ■-|
    /  \_/  \ 
  .' /     \ `.
 / _|       |_ \
(_/ |       | \_)
    \       /
   __\_>-<_/__
   ~;/     \;~
<< back

Scaling Gnome 3 HiDPI using xrandr

For work, I’m using a Dell M3800 notebook. Unfortunately, it comes with a HiDPI display (or retina as others prefer to call it). HiDPI on Linux is still not perfect, even though it improved a lot in the past. Especially Gnome 3 has good support for such displays. However, there are still two things bothering me:

  • Some applications still don’t support HiDPI, leaving the UI in an inconsistent state.
  • At least for me, everything seems to be much slower, making work not as snappy as it should be. Maybe it’s a bug, maybe screen drawing procedures are slower for HiDPI. I don’t know why.

Therefore, I still prefer to scale my resolution down. This can be done using xrandr’s --scale option. Because everything looks kind of blurry when using this option, there is a small patch for xrandr to make things look crisp when being scaled down.

Furthermore, scaling the display while Gnome is in use, leaves its interface in a HiDPI state, probably because of the resolution still being maximum, and not respecting the scaling. This is remedied by calling xrandr before Gnome is loaded. Create a global xinitrc script (I’m using Fedora but it should be the same for most distributions) which calls xrandr:

> cat /etc/X11/xinit/xinitrc.d/99-xrandr.sh
xrandr --output eDP1 --mode "3200x1800" --scale "0.5x0.5"

Don’t forget to make the script executable.

Last, Gnome’s internal scaling factor has to be reset to 1:

> gsettings set org.gnome.desktop.interface scaling-factor 1