The DPI problem

Nikolaus Rath Nikolaus at
Thu Dec 18 18:21:48 GMT 2008


I have tried to address the following issue by filing bug reports on
several individual applications. However, this remained by and large
unsuccessful, since there seems to be no consensus on where the
problem actually lies. For that reason, I'm raising the issue here.

The root of the problem is that there are currently two different
values of the screen resolution:

 1. The X11 server's value
 2. The value from the gnome font properties.

The X11 value is automatically calculated from the monitor resolution
and monitor dimensions. It distinguishes between horizontal and
vertical dpi. It can be set by manually specifying the monitor
dimensions in /etc/X11/xorg.conf or by using xrandr --dpi. There is no
graphical way to see or change it.

The gnome DPI is set to 96 by default and can be changed and viewed
graphically. There is no distinction between horizontal and vertical.

Problems now arise because different applications use these two values
for different things, e.g:

 - The gnome value is used to render fonts in gnome applications.
   According to gnome developers, the gnome value should be chosen to
   get a good *angular* resolution, so the correct value depends on
   the distance between monitor and user.

 - Applications like OpenOffice however, also use the gnome value to
   calculate the physical size of the display. So if the gnome value
   does not match the physical dpi, an A4 page shown at 100% zoom does
   not have the size of an A4 page.

 - Applications like evince use both values. The physical dimensions
   are calculated from X11 and the font sizes are based on the gnome

 - Non Gnome-Applications use the X11 value for both font rendering
   and calculation of physical sizes.

 - Applications like Gimp and Adobe Acrobat allow manual specification
   of the dpi, because both X11 and gnome dpi are notoriously
   unreliable in value and meaning.

 - Applications like Mathematica effectively rely on the gnome dpi
   value to be fixed at 96dpi (otherwise the fonts get ridiculously

Personally, I think the following policy would best resolve the mess:

 - The X11 dpi should correspond to the physical monitor dimensions.
   In order to ensure this, the "Screen Resolution" preferences dialog
   should also allow to specify the size of the monitor.
 - The gnome dpi should be renamed to "font magnification" and be
   given as a percentage of the X11 dpi.

 - All font rendering should be done using the x11 dpi scaled by the
   magnification factor.

 - All physical sizes (e.g. "how many pixels do I have to use to show
   something as 10x10cm?) should be calculated based on the X11 dpi.


 - fixes the meaning of the different values.
 - makes the difference between them more apparent by exposing both
   values to the user and giving them meaningful names.

I hope that it will be possible to either find a better solution or to
get a general agreement on the above one. This will hopefully be
enough to remove the confusion around the dpi handling that apparently
prevents the related bugs from being fixed.



 »It is not worth an intelligent man's time to be in the majority.
  By definition, there are already enough people to do that.«
                                                         -J.H. Hardy

  PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6  02CF A9AD B7F8 AE4E 425C

More information about the ubuntu-desktop mailing list