MacBook Pro Retina

Martin "eto" Misuth et at
Tue Jul 14 21:16:48 CEST 2015

On Thu, 2 Jul 2015 11:56:33 +0200
Johannes Jordan <jordan at> wrote:

Hehe, welcome to *nix gui "fragmentation".

I was experimenting with hires display too, but gave up in the end and returned 
to "lowres".

Correct way, as Johannes pointed out, should be to set DPI at XOrg level.
The problem with X is that it supposedly defines "mechanisms not policy".

What that means: it is really lower level stuff. And doesn't enforce anything.

More over, X accumulated lot of cruft over the years, and it seems to be
incredibly hard to program for.
As such it has several font subsystems: bitmap and clientside Xft.

Bitmap fonts which urxvt and most "simpler" terminals can use, depend directly
on onscreen pixel sizes.

Then you have so called client side fonts (I hope that is the correct term here)
provided through Xft, where applications themselves manage it's font glyph
cache (seems to me that this is controlled by some complex interaction between
Xft and fontconfig technologies).

The situation is made even more complex by GUI middlemen, called toolkit
libraries (gtk, qt) which do their own thing and each one in different way.

Toolkit libraries can decide on font sizes by pulling DPI size from different
sources: XOrg DPI settings perhaps, config files, and various configuration
management daemons (gnome helpers, kde helpers, xsettingsd and whatnot).

Then there are programs like chromium, firefox, libreoffice and others which
seem to use one DPI source for drawing generic GUI elements (menus and butons),
where they offload decision to GUI toolkit, and yet others more direct ways for
drawing text in document content windows (webpages, documents).

As such any application, depending on a way it's programmed, can mix various
approaches, making you as user almost lose all sanity :).

This can end up being one giant mess of config sources, and many
desktop environments go out of their ways to somehow consolidate it.

herbstluftwm is however window manager only, so it doesn't deal with any of

I personally use mix of xsettingsd, fontconfig and xrandr DPI and after years
got to somewhat workable environment.

It's infuriating, but your best bet is to solve size issues on per application


More information about the hlwm mailing list