Mailinglist Archive: opensuse (714 mails)

< Previous Next >
Re: [opensuse] 120 DPI desktop (was: help forum no help...)
On 2011/10/07 11:13 (GMT+0200) Per Jessen composed:

I don't know how to "open a 120 DPI desktop" ?

What follows really belongs on a Wiki page.

For any not privy to _why_ to open a 120 DPI desktop, the reason is that it is an unofficial but very highly effective way to scale desktop object sizes up or down while keeping the entirety of the desktop itself confined to the display's physical boundaries. Depending on the DTE and the various objects on it, scaling can have some unwelcome consequences to go along the primary positive one of making smaller stuff like icons and UI text comfortable to work with, typically making them bigger for use on a higher than average pixel density display device.

Regardless what the physical pixel density and numerical resolution of the display device are, X can be directed to assume that they are something else. By raising X's working DPI, objects are made bigger, and vice versa by lowering it.

One example is 12pt text @ 96 DPI is 16 pixels, which becomes 20 pixels instead @ 120 DPI, 24 pixels @ 144 DPI, and 32 pixels at 192 DPI. Note that a 32 pixel size is actually a fourfold increase in size over 16 pixels, because size is a function of area, height and width, not just the nominal 16px so-called "size". That means a 32 pixel character box nominally has 512 (32 high X 16 wide) pixels to draw with, compared to 128 (16 high X 8 wide) for a 16px box. The impact of this is significant WRT to text quality. At large enough sizes, anti-aliasing, hinting and other font smoothing apparatus become irrelevant.

Forcing DPI is an effective overall DTE scaler, whether it's because eyesight deviates from average, preferred distance to display is closer or farther than average, need is present to work around font rendering anomalies, or need exists to test other environmental factors, like what happens to users of high DPI devices trying to use apps and DTEs designed and/or tested only by and/or for users of the 96 DPI assumption standard.

How to get X to use a particular DPI depends on distro, version, X version, video hardware, & video driver, though not necessarily all at once. DPI is often forced to 96 (the default in Windows, and what all current browsers except Konqueror do within their viewports), and discovering how the forcing occurs in order to undo it is not straightforward, so I won't get into that discovery process at all here.

If you are not using proprietary NVidia drivers, the most reliable method of forcing DPI is to set DisplaySize in either xorg.conf or in whichever xorg.conf.d/ file contains 'Identifier "MonitorXXX"'. In openSUSE releases that file is 50-monitor.conf. In openSUSE, for placement in 50-monitor.conf to work, 50-screen.conf and 50-device.conf must contain valid actual content (commented lines do not count as valid actual content).

Example 50-monitor.conf file:

Section "Monitor"
Identifier "Monitor[0]"
DisplaySize 378 284 # 120 DPI @ 1792x1344

The same DisplaySize line as above would work equally well in an otherwise valid xorg.conf file.

This method requires precalulating the horizontal and vertical dimensions required in combination with the desired resolution to get the desired DPI. Many of these I've already done in to make it simpler for whose who know about it and/or aren't so good with math.

If using proprietary NVidia drivers, DPI can be set explicitly in its xorg.conf or /etc/X11/xorg.conf.d/20-nvidia.conf

Example of latter:

Section "Device"
Identifier "Default Device"
Option "UseEdidDpi" "False"
Option "DPI" "120 x 120"

For further reading:
"The wise are known for their understanding, and pleasant
words are persuasive." Proverbs 16:21 (New Living Translation)

Team OS/2 ** Reg. Linux User #211409 ** a11y rocks!

Felix Miata ***
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx

< Previous Next >