Comment 17 for bug 118745

Revision history for this message
Nick_Hill (nick-nickhill) wrote : Re: Font sizes in Gutsy are vulnerable to bad X.org DPI detection

I have a switch box. The switch box doesn't appear to send DDC signals through, whether or not the monitor is live when X starts.

If I start X with the monitor connected directly to the computer, X sets DPI at 95, 96 . If the monitor is not connected, it sets the DPI at 75. At 75dpi, the fonts are usually intolerably small.

The most common screen resolutions/sizes tend to be (appx) :
Diagonal Width Height ResolutionWxH DPI
14.1" 11.28 8.46 1024X768 90.5 90.5
15" 12 9 1024x768 85 85
17" 13.25 10.65 1280x1024 97 96
19" 14.8 11.85 1280x1024 86 86

The most common resolution today is probably 17" 1280x1024. for desktops, and something close to 14.1" 1024x768 for laptops. The weighted average is probably around 92dpi.

We must assume that it is not always possible to determine the monitor's characteristics - any of them. Screen size, H/V sync, max resolution, DPI.

Where no information is available, we need to set sensible defaults so that the user can at least get something on screen to make initial changes..

If the user has not set preferences (ie all fields are on autodetect in the attached example) and we have no DDC information whatsoever, AND no settings have been put in xorg.conf, then 800x600,60Hz75dpi is a sensible default.

However, if a resolution has been set and a DPI has not been set, I suggest we have an automatic DPI mapping based on the highest resolution axis as follows:
<700 56dpi (eg 640x480)
<950 75dpi (eg 800x600)
<1200 85dpi (eg 1024x768)
<1400 95dpi (eg 1280x1024)
>1400 100dpi. (eg 1440x1024)

Whenever display settings changes are made within Gnome, I suggest we also store the mtime for file /etc/X11/xorg.conf. If xorg.conf exists, and the time stamp differs, then all settings in Gnome should be re-set to Autodetect / default. Otherwise, Gnome settings should take precedence.

This way, if the user does dpkg-reconfigure xserver-xorg, the settings will take precedence. If the user then logs into Gnome then changes settings, they then take precedence.

So we have an order of precedence for each parameter Res, Freq, DPI:

Resoution
1) The most recently changed of Gnome or xorg.conf
2) DDC
3) 800x600

Frequency (refresh rate)
1) The most recently changed of Gnome or xorg.conf
2) DDC
3) 60Hz

DPI:
1) The setting in Gnome
2) DDC
3)
<700 56dpi (eg 640x480)
<950 75dpi (eg 800x600)
<1200 85dpi (eg 1024x768)
<1400 95dpi (eg 1280x1024)
>1400 100dpi. (eg 1440x1024)