You are not logged in.

#1 2010-01-20 11:15:54

sahilm
Member
From: Noida, India
Registered: 2010-01-01
Posts: 12

Of fonts, DPI and Gnome

Firstly I would like to thank the Arch community for running this excellent message board and the invaluable ArchWiki.
I have a 22" 16:10 LCD monitor(Dell E228WFP).  I am driving it with an ATI 4350 and I'm running the free radeon drivers(xfree86-video-ati).  My monitor's DPI(96x96) and native resolution(1680x1050) get detected perfect.  I'm not using an xorg.conf file but I can generate one if the need arises for any debugging.

Now at my native DPI fonts in xorg are too small and are pretty much unreadable.  Gnome solves the issue by allowing me to set the font DPI at 120(Gnome Panel > System > Preferences > Appearance > Fonts > Details > Resolution).  Now I would like to move away from Gnome to a bare xorg/WM setup so that I can learn more about the Linux environment in general.  I would like to know how Gnome overrides the default xorg DPI.  I looked at /etc/fonts/ but I find no mention of a DPI override in any one of the files.

Achieving this is important otherwise I wont be able to move away from Gnome.  I'm sure a lot of people here use large LCD monitors with xorg.  How does Gnome do it and how to I replicate it without Gnome.

A big thanks to the Arch team and everyone around here.
Sahil

Last edited by sahilm (2010-01-20 11:16:59)

Offline

#2 2010-01-20 11:19:08

hullap
Member
From: New Delhi, India
Registered: 2008-08-17
Posts: 84
Website

Re: Of fonts, DPI and Gnome

im not completely sure, but try editing /etc/X11/xorg.conf to add

Option "DPI" "120x120"

to the Section "Monitor"

PS:can someone verify?

Last edited by hullap (2010-01-20 11:19:33)

Offline

#3 2010-01-20 11:22:57

sahilm
Member
From: Noida, India
Registered: 2010-01-01
Posts: 12

Re: Of fonts, DPI and Gnome

hullap wrote:

im not completely sure, but try editing /etc/X11/xorg.conf to add

Option "DPI" "120x120"

to the Section "Monitor"

PS:can someone verify?

Doesn't work.  That's the catch, xorg still sees my DPI as(96x96) but my fonts get rendered at 120 DPI.

Offline

#4 2010-01-20 11:47:29

sahilm
Member
From: Noida, India
Registered: 2010-01-01
Posts: 12

Re: Of fonts, DPI and Gnome

I just found this: ~/.gconf/desktop/gnome/font_rendering/%gconf.xml

<?xml version="1.0"?>
<gconf>
    <entry name="rgba_order" mtime="1262819969" type="string">
        <stringvalue>rgb</stringvalue>
    </entry>
    <entry name="dpi" mtime="1262819688" type="float" value="120"/>
    <entry name="hinting" mtime="1263985805" type="string">
        <stringvalue>full</stringvalue>
    </entry>
    <entry name="antialiasing" mtime="1263985805" type="string">
        <stringvalue>rgba</stringvalue>
    </entry>
</gconf>

I guess this is the setting I was looking for.  I guess I'll have to put this in my fontconfig file.  Can someone please verify?

Offline

#5 2010-01-20 12:29:26

JuseBox
Member
Registered: 2009-11-27
Posts: 260

Re: Of fonts, DPI and Gnome

also putting -dpi 120 in your /etc/X11/xinit/xserverrc might help.  but putting it in your xorg and xserverrc is over kill maybe....


EDIT: Here is my screen section of xorg.conf

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "DPI" "96 x 96" <================= Here ( Just replace with your DPI settings)
    Option         "UseEdidDpi" "FALSE" <============= Here
    Option         "TwinView" "0"  
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "1920x1080_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

EDIT: Here is the xserverrc

exec /usr/bin/X -dpi 96 -nolisten tcp

Last edited by JuseBox (2010-01-20 12:38:55)


Linux ArchLinux 3.2.8-1-ARCH
#1 SMP PREEMPT Mon Feb 27 21:51:46 CET 2012 x86_64 AMD FX(tm)-8120 Eight-Core Processor AuthenticAMD GNU/Linux
8192MB DDR3 1300MHz | Asus m5a97 | GeForce GTX 550 Ti | 120 GB SSD

Offline

#6 2010-01-20 13:55:07

sahilm
Member
From: Noida, India
Registered: 2010-01-01
Posts: 12

Re: Of fonts, DPI and Gnome

No joy. xdpyinfo still reports my DPI to be 96x96.
Here is my xorg.conf

Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/misc"
    FontPath     "/usr/share/fonts/100dpi:unscaled"
    FontPath     "/usr/share/fonts/75dpi:unscaled"
    FontPath     "/usr/share/fonts/TTF"
    FontPath     "/usr/share/fonts/Type1"
EndSection

Section "Module"
    Load  "dri"
    Load  "glx"
    Load  "extmod"
    Load  "dbe"
    Load  "dri2"
    Load  "drm"
EndSection

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/input/mice"
    Option        "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
    DisplaySize      474   296    # mm
    Identifier   "Monitor0"
    VendorName   "DEL"
    ModelName    "DELL E228WFP"
    HorizSync    30.0 - 83.0
    VertRefresh  56.0 - 75.0
    Option        "DPMS"
    Gamma        0.8
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"                # [<bool>]
        #Option     "SWcursor"               # [<bool>]
        #Option     "Dac6Bit"                # [<bool>]
        #Option     "Dac8Bit"                # [<bool>]
        #Option     "BusType"                # [<str>]
        #Option     "CPPIOMode"              # [<bool>]
        #Option     "CPusecTimeout"          # <i>
        #Option     "AGPMode"                # <i>
        #Option     "AGPFastWrite"           # [<bool>]
        #Option     "AGPSize"                # <i>
        #Option     "GARTSize"               # <i>
        #Option     "RingSize"               # <i>
        #Option     "BufferSize"             # <i>
        #Option     "EnableDepthMoves"       # [<bool>]
        #Option     "EnablePageFlip"         # [<bool>]
        #Option     "NoBackBuffer"           # [<bool>]
        #Option     "DMAForXv"               # [<bool>]
        #Option     "FBTexPercent"           # <i>
        #Option     "DepthBits"              # <i>
        #Option     "PCIAPERSize"            # <i>
        #Option     "AccelDFS"               # [<bool>]
        #Option     "IgnoreEDID"             # [<bool>]
        #Option     "DisplayPriority"        # [<str>]
        #Option     "PanelSize"              # [<str>]
        #Option     "ForceMinDotClock"       # <freq>
        #Option     "ColorTiling"            # [<bool>]
        #Option     "VideoKey"               # <i>
        #Option     "RageTheatreCrystal"     # <i>
        #Option     "RageTheatreTunerPort"     # <i>
        #Option     "RageTheatreCompositePort"     # <i>
        #Option     "RageTheatreSVideoPort"     # <i>
        #Option     "TunerType"              # <i>
        #Option     "RageTheatreMicrocPath"     # <str>
        #Option     "RageTheatreMicrocType"     # <str>
        #Option     "ScalerWidth"            # <i>
        #Option     "RenderAccel"            # [<bool>]
        #Option     "SubPixelOrder"          # [<str>]
        #Option     "ShowCache"              # [<bool>]
        #Option     "DynamicClocks"          # [<bool>]
        #Option     "VGAAccess"              # [<bool>]
        #Option     "ReverseDDC"             # [<bool>]
        #Option     "LVDSProbePLL"           # [<bool>]
        #Option     "AccelMethod"            # <str>
        #Option     "DRI"                    # [<bool>]
        #Option     "ConnectorTable"         # <str>
        #Option     "DefaultConnectorTable"     # [<bool>]
        #Option     "DefaultTMDSPLL"         # [<bool>]
        #Option     "TVDACLoadDetect"        # [<bool>]
        #Option     "ForceTVOut"             # [<bool>]
        #Option     "TVStandard"             # <str>
        #Option     "IgnoreLidStatus"        # [<bool>]
        #Option     "DefaultTVDACAdj"        # [<bool>]
       #Option     "Int10"                  # [<bool>]
        #Option     "EXAVSync"               # [<bool>]
        #Option     "ATOMTVOut"              # [<bool>]
        #Option     "R4xxATOM"               # [<bool>]
    Identifier  "Card0"
    Driver      "radeon"
    VendorName  "ATI Technologies Inc"
    BoardName   "RV710 [Radeon HD 4350]"
    BusID       "PCI:5:0:0"
    Option      "AllowGLXWithComposite" "true"
    Option      "AccelMethod"    "exa" # or "xaa" default shadowfb
    Option      "DRI"        "true"
    Option      "AccelDFS"    "1"
    Option      "AGPMode" "1"
    Option      "AGPFastWrite" "1"
    Option      "GARTSize" "64"
    Option      "EnablePageFlip" "1"
    Option      "ColorTiling" "1"
    Option "EXAVSync" "yes"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    DefaultDepth 24
    Option         "DPI" "120 x 120"
        Option         "UseEdidDpi" "FALSE"
    SubSection "Display"
        Viewport   0 0
        Depth     1
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
        Modes "1680x1050"

    EndSubSection
EndSection

Section "Extensions"  
Option "Composite" "Enable"  
EndSection

xdpyinfo full output

name of display:    :0.0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    10703902
X.Org version: 1.7.3.902
maximum request size:  16777212 bytes
motion buffer size:  256
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    7
supported pixmap formats:
    depth 1, bits_per_pixel 1, scanline_pad 32
    depth 4, bits_per_pixel 8, scanline_pad 32
    depth 8, bits_per_pixel 8, scanline_pad 32
    depth 15, bits_per_pixel 16, scanline_pad 32
    depth 16, bits_per_pixel 16, scanline_pad 32
    depth 24, bits_per_pixel 32, scanline_pad 32
    depth 32, bits_per_pixel 32, scanline_pad 32
keycode range:    minimum 8, maximum 255
focus:  window 0x1600292, revert to Parent
number of extensions:    27
    BIG-REQUESTS
    Composite
    DAMAGE
    DOUBLE-BUFFER
    DPMS
    DRI2
    GLX
    Generic Event Extension
    MIT-SCREEN-SAVER
    MIT-SHM
    RANDR
    RENDER
    SECURITY
    SGI-GLX
    SHAPE
    SYNC
    X-Resource
    XC-MISC
    XFIXES
    XFree86-DGA
    XFree86-DRI
    XFree86-VidModeExtension
    XINERAMA
    XInputExtension
    XKEYBOARD
    XTEST
    XVideo
default screen number:    0
number of screens:    1

screen #0:
  print screen:    no
  dimensions:    1680x1050 pixels (445x278 millimeters)
  resolution:    96x96 dots per inch
  depths (7):    24, 1, 4, 8, 15, 16, 32
  root window id:    0x70
  depth of root window:    24 planes
  number of colormaps:    minimum 1, maximum 1
  default colormap:    0x20
  default number of colormap cells:    256
  preallocated pixels:    black 0, white 16777215
  options:    backing-store NO, save-unders NO
  largest cursor:    64x64
  current input event mask:    0xfa8033
    KeyPressMask             KeyReleaseMask           EnterWindowMask          
    LeaveWindowMask          ExposureMask             StructureNotifyMask      
    SubstructureNotifyMask   SubstructureRedirectMask FocusChangeMask          
    PropertyChangeMask       ColormapChangeMask       
  number of visuals:    8
  default visual id:  0x21
  visual:
    visual id:    0x21
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x22
    class:    DirectColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x6a
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x6b
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x6c
    class:    DirectColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x6d
    class:    DirectColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x6e
    class:    DirectColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits
  visual:
    visual id:    0x61
    class:    TrueColor
    depth:    32 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff0000, 0xff00, 0xff
    significant bits in color specification:    8 bits

Last edited by sahilm (2010-01-20 13:57:19)

Offline

#7 2010-01-20 15:56:42

anonymous_user
Member
Registered: 2009-08-28
Posts: 3,059

Re: Of fonts, DPI and Gnome

Create the ~/.Xdefault file if it doesn't already exist and add:

Xft.dpi: 120

This will change the font DPI but not the monitor's.

Offline

#8 2010-01-21 03:21:51

RobbeR49
Member
From: Columbus, OH
Registered: 2006-01-17
Posts: 178

Re: Of fonts, DPI and Gnome

You should be able to change your DPI with xrandr, I believe. I think that it's the way you're supposed to do it with xorg nowadays, not totally sure though.

Offline

#9 2010-01-21 09:42:39

beroal
Member
From: Ukraine
Registered: 2009-06-07
Posts: 325
Website

Re: Of fonts, DPI and Gnome

IMHO DPI reflects physical dimensions of a monitor and should not be changed if they are correct. You can change font size in options of a particular program.

Last edited by beroal (2010-01-21 09:43:27)


we are not condemned to write ugly code

Offline

#10 2010-01-21 10:01:12

shrimphead
Member
Registered: 2008-10-13
Posts: 9

Re: Of fonts, DPI and Gnome

edit /etc/X11/xinit/xserverrc and add the flag -dpi 120 would also work.

THis would have the added benefit of making the change in any DE/WM you try and not tying you to having an xorg.conf.

Offline

#11 2010-01-23 17:11:02

litemotiv
Forum Fellow
Registered: 2008-08-01
Posts: 5,026

Re: Of fonts, DPI and Gnome

one thing i wonder, can you enlarge everything on screen by changing the DPI (or something else?) or just the fontsize? i do a lot of webdesign so for me it's important that the proportions between text and graphics stay the same. i would like to enlarge things a bit though since my highres screen makes everything quite small.


ᶘ ᵒᴥᵒᶅ

Offline

#12 2011-03-16 15:00:08

RadicalThought
Member
Registered: 2011-03-16
Posts: 1

Re: Of fonts, DPI and Gnome

The whole problem is explained very well here:
http://www.monkeybreadsoftware.eu/lista … 01-2.shtml

Offline

#13 2011-03-16 16:14:24

brebs
Member
Registered: 2007-04-03
Posts: 3,742

Re: Of fonts, DPI and Gnome

sahilm wrote:

Gnome solves the issue by allowing me to set the font DPI at 120

Wrong. 96 and 120 are the common values, for good historical reason. However, they are fudges.

Font rendering in Linux is generally being held back - by the scare of patents. Ubuntu isn't scared though.

With LCD monitors, we have sub-pixel rendering - how do you think that can work properly, if you try to lie to the renderer about the layout of the pixels wink  If you lie about the horizontal and vertical, then a circle doesn't quite look like a circle anymore, or at least the best attempt that the renderer was calculating, based on its information, to show on your screen.

Just alter the fontsize, or choose different fonts. There's tons of free fonts out there.

Your method is just adding another layer of distortion. This distortion might not even be noticeable, because freetype's default rendering is so pathetic compared to Ubuntu's or Infinality's (or others) sad

Offline

Board footer

Powered by FluxBB