# "true" DPI and multiple monitor (multihead) setup



## Mjölnir (May 30, 2020)

I need help in setting up _"true"_ DPI screen resolution in a multihead setup.
With _"true"_ DPI I mean:

when I place a printed letter right on top of the surface of the screen, the sizes of the fonts/letters and other items on the monitor are exactly the same as on the letter (so-called _DTP configuration_).
When an item spans multiple monitors, the magnification is unified, i.e. it is not stretched on one of them.
Before telling this "_a story of poor defaults"_, I would like to have more input of s/o with more insight on this topic, because from what I learned about the complexity of this topic (readablity, different eye-distance in different use-cases, other specials like xinerama etc. pp.), it seems to be a reasonable decision for the developers to keep things simple and set a fixed default DPI=96 no matter what the real display device is, unless explicitely stated otherwise.

The FreeBSD Handbook mentions an example with two monitors of _exactly the same resolution_ for good reason 
My system is an "Intel integrated HD Graphics 5500" intel(4) in a docking station (ThinkPad T450s), with an external LCD monitor connected to the docking station's VGA (DP2-3).
So, the two monitors have different resolutions and screen sizes, thus DPIs (1600x900 and 1280x1024, 131 and 96 DPI).
The GPU and the driver can handle split-view (non-clone) setups, but from what I see the driver keeps only one DPI.
I do have nearly what I want: a desktop that spans multiple monitors, but _fonts are shrinked_ on the primary one. Surprisingly, _some, not all_ other items are of the same size as with the _"natural/true"_ DPI of that monitor.  Some others are enlarged...
With only one monitor -- i.e. the internal laptop TFT (eDP1) --  I can get the "true" DPI very easily.
But once I use a multihead "Server Layout", the intel(4) driver sets the physical screen size to a funny value and consequently sets a "wrong" DPI
- even when the external monitor is switched off!
- Another surprising effect: fonts are shrinked but _some_ icons are enlarged on the "primary" (laptop internal) monitor
How can I have two DPI, the right one for each "Screen" derived from the monitors physical screen size and resolution?
Obviously, if done right, this would have to be dynamic based on the current settings (because on TFT and LCD the physical display size varies related to the resolution and stretching mode), but I can live with sticking to one resolution (the largest).
Running two driver instances, as mentioned by xorg.conf(5), does not work (black screens)
I guess that's related to a message in the Xorg.0.log: "(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support"
If this can be solved by connecting the monitor on a DVI or HDMI port, _YES! Hurray!_ I'll buy a cable!
/usr/local/etc/X11/xorg.conf/intel-HD-5500.conf

```
Section "Module"
    load "glamoregl"
EndSection
Section "Device"
    Identifier    "<Intel HD Graphics 5500>"
    Driver    "intel"
    #Screen    0
    #Option    "XvMC"        "on"        # Default: disabled
    #Option    "XvMCSurfaces"    "6"        # Default: disabled
    Option    "TearFree"    "on"
    #Option    "AccelMethod"    "glamor"    # Default: UXA (although intel(4) man page says "SNA")
    #Option    "AccelMethod"    "UXA"        # Default: UXA
    #Option    "AccelMethod"    "SNA"        # Default: UXA?
    Option    "Monitor-eDP1"    "<Notebook internal TFT>"
    Option    "Monitor-DP2"    "<external monitor (needs setup)>"
    Option    "Monitor-DP2-3"    "<external LCD [VGA,docked]>"
EndSection
# RTFM xorg.conf(5) says: one "Device" section for each head.
# But this fails:
#Section "Device"
#    Identifier    "<Intel HD Graphics 5500 [VGA,docked]>"
#    Driver    "intel"
#    Screen    1
#    Option    "TearFree"    "on"
#    #Option    "AccelMethod"    "glamor"    # Default: UXA
#    #Option    "AccelMethod"    "UXA"        # Default: UXA
#    #Option    "AccelMethod"    "SNA"        # Default: UXA?
#    Option    "Monitor-DP2-3"    "<external LCD [VGA,docked]>"
#EndSection
#Section "Device"
#    Identifier    "<Intel HD Graphics 5500 [VGA,internal]>"
#    Driver    "intel"
#    Screen    2
#    Option    "TearFree"    "on"
#    #Option    "AccelMethod"    "glamor"    # Default: UXA
#    #Option    "AccelMethod"    "UXA"        # Default: UXA
#    #Option    "AccelMethod"    "SNA"        # Default: UXA?
#    Option    "Monitor-DP2"    "<external monitor (needs setup)>"
#EndSection
```
/usr/local/etc/X11/xorg.conf/monitors.conf

```
# The Xserver(8) recognizes the dimensions of the monitor correctly, but
# later the intel(5) driver sets them to much larger values.  I guess this
# is considered a feature, intended to shrink the output on very small
# screens like subnotebooks/tablets/phones.
# Pro:
#     + for the GUI it appears like a larger monitor, and more items can be
#      placed on the sceen -- this improves the usability of these devices.
#    + for developers it's much simpler to agree on a standard resolution
#      (nowadays 96 DPI), and write their programs just for that.
#      Then the requirements of different use-cases are done by scaling.
# Contra:
#    - the server lies (intentionally) about the DPI, thus all the fonts are
#      shrinked and often difficult to read, esp. when browsing the internet.
#
# While this may make sense on a smartphone/tablet, I want "the truth" on
# my 14" laptop.
#
# The key is to link the monitor to the card in the device section of the
# graphics card: e.g. in /usr/local/etc/X11/xorg.conf.d/intel-HD-5500.conf
# Option "Monitor-LVDS1"    "<Notebook internal LCD>" or
# Option "Monitor-eDP1"        "<Notebook internal TFT>"
# Option "Monitor-DP2"        "<external monitor (needs setup)>"
# NOTE: beware, naturally in a docking station the numbering changes:
# Option "Monitor-DP2-3"    "<external LCD [VGA,docked]>"
#
Section "Monitor"
    Identifier        "<Notebook internal TFT>"
    VendorName        "CMN"
    ModelName        "1482"
    #Option        "primary"    "yes"
    # This monitor does not report power management features...
    Option        "DPMS"        "on"
    # You can grep(1) these values from /var/log/Xorg.0.log
    # Although the Xserver(8) detects it, we have to tell intel(5) explicitely
    # to use this and not setting the wrong DPI.
    DisplaySize        309    174    # also in Xorg.0.log
EndSection
Section "Monitor"
    Identifier        "<external LCD [VGA,docked]>"
    # If you coment out the next two lines, this will any monitor...
    VendorName        "PHL"        # Philips
    ModelName        "81d"        # Philips 170b
    # For multihead-setup:
    #Option        "primary"    "no"
    # tell the GPU driver to use this and do not set the wrong DPI.
    DisplaySize        338    270    # grep(1) from Xorg.0.log: "Image size"
EndSection
Section "Monitor"
    Identifier        "<external monitor (needs setup)>"
    #Option        "primary"    "no"
    # tell the GPU driver to use this and do not set the wrong DPI.
    #DisplaySize     horiz    vert    # TODO: grep(1) from Xorg.0.log: "Image size"
EndSection
```
/usr/local/etc/X11/xorg.conf/server-layout.conf

```
Section "Screen"
    Identifier    "<internal Screen>"
    Device    "<Intel HD Graphics 5500>"
    Monitor    "<Notebook internal TFT>"
EndSection
Section "Screen"
    Identifier    "<external Screen [VGA,docked]>"
    Device    "<Intel HD Graphics 5500>"
    #Device    "<Intel HD Graphics 5500 [VGA,docked]>"
    Monitor    "<external LCD [VGA,docked]>"
EndSection
Section "Screen"
    Identifier    "<external Screen [unknown]>"
    Device    "<Intel HD Graphics 5500>"
    Monitor    "<external monitor (needs setup)>"
EndSection
Section    "ServerLayout"
    Identifier    "<Multi Screen Layout [docked]>"
    Screen    "<internal Screen>"
    Screen    "<external Screen [VGA,docked]>" leftOf "<internal Screen>"
EndSection
Section    "ServerLayout"
    Identifier    "<Multi Screen Layout [unknown]>"
    Screen    "<internal Screen>"
    Screen    "<external Screen [unknown]>" leftOf "<internal Screen>"
EndSection
Section    "ServerLayout"
    Identifier    "<Default Screen Layout [solo]>"
    Screen    "<internal Screen>"
EndSection
#
# Here we switch between layouts -- TODO: find out out to do that from sddm(8)
#
Section    "ServerFlags"
    #Option    "DefaultServerLayout"    "<Default Screen Layout [solo]>"
    Option    "DefaultServerLayout"    "<Multi Screen Layout [docked]>"
    Option    "DPMS"            "on"
EndSection
```
The Xorg.0.log:

```
[  2629.104] (--) Log file renamed from "/var/log/Xorg.pid-15773.log" to "/var/log/Xorg.0.log"
[  2629.105]
X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
[  2629.106] Build Operating System: FreeBSD 12.1-RELEASE-p4 amd64
[  2629.106] Current Operating System: FreeBSD t450s.local.domain 12.1-RELEASE-p5 FreeBSD 12.1-RELEASE-p5 GENERIC amd64
[  2629.106] Build Date: 05 May 2020  01:10:17AM
[  2629.106]
[  2629.107] Current version of pixman: 0.38.4
[  2629.107]     Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[  2629.107] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  2629.107] (==) Log file: "/var/log/Xorg.0.log", Time: Sat May 30 16:45:30 2020
[  2629.108] (==) Using config file: "/etc/X11/xorg.conf"
[  2629.108] (==) Using config directory: "/usr/local/etc/X11/xorg.conf.d"
[  2629.108] (==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
[  2629.110] (**) Option "defaultserverlayout" "<Multi Screen Layout [docked]>"
[  2629.110] (**) ServerLayout "<Multi Screen Layout [docked]>"
[  2629.110] (**) |-->Screen "<internal Screen>" (0)
[  2629.110] (**) |   |-->Monitor "<Notebook internal TFT>"
[  2629.111] (**) |   |-->Device "<Intel HD Graphics 5500>"
[  2629.111] (**) |-->Screen "<external Screen [VGA,docked]>" (1)
[  2629.111] (**) |   |-->Monitor "<external LCD [VGA,docked]>"
[  2629.111] (**) |   |-->Device "<Intel HD Graphics 5500>"
[  2629.111] (==) Automatically adding devices
[ ... UNRELATED ... ]
[  2629.130] (II) LoadModule: "intel"
[  2629.131] (II) Loading /usr/local/lib/xorg/modules/drivers/intel_drv.so
[  2629.132] (II) Module intel: vendor="X.Org Foundation"
[  2629.132]     compiled for 1.20.8, module version = 2.99.917
[  2629.132]     Module class: X.Org Video Driver
[  2629.132]     ABI class: X.Org Video Driver, version 24.1
[  2629.132] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets:
    i810, i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G,
    915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM,
    Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33,
    GM45, 4 Series, G45/G43, Q45/Q43, G41, B43
[  2629.136] (II) intel: Driver for Intel(R) HD Graphics
[  2629.136] (II) intel: Driver for Intel(R) Iris(TM) Graphics
[  2629.136] (II) intel: Driver for Intel(R) Iris(TM) Pro Graphics
[  2629.136] (--) Using syscons driver with X support (version 0.x)
[  2629.136] (++) using VT number 9
[  2629.138] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[  2629.138] (II) intel(0): Creating default Display subsection in Screen section
    "<internal Screen>" for depth/fbbpp 24/32
[  2629.138] (==) intel(0): Depth 24, (--) framebuffer bpp 32
[  2629.138] (==) intel(0): RGB weight 888
[  2629.138] (==) intel(0): Default visual is TrueColor
[  2629.138] (**) intel(0): Option "TearFree" "on"
[  2629.138] (--) intel(0): Integrated Graphics Chipset: Intel(R) HD Graphics 5500
[  2629.139] (**) intel(0): Relaxed fencing enabled
[  2629.139] (**) intel(0): Wait on SwapBuffers? enabled
[  2629.139] (**) intel(0): Triple buffering? enabled
[  2629.139] (**) intel(0): Framebuffer tiled
[  2629.139] (**) intel(0): Pixmaps tiled
[  2629.139] (**) intel(0): 3D buffers tiled
[  2629.139] (**) intel(0): SwapBuffers wait enabled
[  2629.139] (==) intel(0): video overlay key set to 0x101fe
[  2629.144] (II) intel(0): Output eDP1 using monitor section <Notebook internal TFT>
[  2629.144] (**) intel(0): Option "Primary" "yes"
[  2629.144] (II) intel(0): Output DP1 has no monitor section
[  2629.295] (II) intel(0): Output HDMI1 has no monitor section
[  2629.297] (II) intel(0): Output DP2 using monitor section <external monitor (needs setup)>
[  2629.297] (**) intel(0): Option "Primary" "no"
[  2629.299] (II) intel(0): Output HDMI2 has no monitor section
[  2629.299] (II) intel(0): Output DP2-1 has no monitor section
[  2629.299] (II) intel(0): Output DP2-2 has no monitor section
[  2629.312] (II) intel(0): Output DP2-3 using monitor section <external LCD [VGA,docked]>
[  2629.312] (**) intel(0): Option "Primary" "no"
[  2629.314] (II) intel(0): EDID for output eDP1
[  2629.314] (II) intel(0): Manufacturer: CMN  Model: 1482  Serial#: 0
[  2629.314] (II) intel(0): Year: 2012  Week: 31
[  2629.314] (II) intel(0): EDID Version: 1.4
[  2629.314] (II) intel(0): Digital Display Input
[  2629.314] (II) intel(0): 6 bits per channel
[  2629.314] (II) intel(0): Digital interface is DisplayPort
[  2629.314] (II) intel(0): Max Image Size [cm]: horiz.: 31  vert.: 17
[  2629.314] (II) intel(0): Gamma: 2.20
[  2629.314] (II) intel(0): No DPMS capabilities specified
[  2629.314] (II) intel(0): Supported color encodings: RGB 4:4:4
[  2629.314] (II) intel(0): First detailed timing is preferred mode
[  2629.314] (II) intel(0): Preferred mode is native pixel format and refresh rate
[  2629.314] (II) intel(0): redX: 0.580 redY: 0.335   greenX: 0.325 greenY: 0.575
[  2629.314] (II) intel(0): blueX: 0.160 blueY: 0.140   whiteX: 0.313 whiteY: 0.329
[  2629.314] (II) intel(0): Manufacturer's mask: 0
[  2629.314] (II) intel(0): Supported detailed timing:
[  2629.314] (II) intel(0): clock: 107.8 MHz   Image Size:  309 x 174 mm
[  2629.314] (II) intel(0): h_active: 1600  h_sync: 1648  h_sync_end 1680 h_blank_end 1940 h_border: 0
[  2629.314] (II) intel(0): v_active: 900  v_sync: 903  v_sync_end 908 v_blanking: 926 v_border: 0
[  2629.314] (II) intel(0):  N140FGE-EA2
[  2629.314] (II) intel(0):  CMN
[  2629.314] (II) intel(0):  N140FGE-EA2
[  2629.314] (II) intel(0): EDID (in hex):
[  2629.314] (II) intel(0):     00ffffffffffff000dae821400000000
[  2629.315] (II) intel(0):     1f160104951f117802b5359455539329
[  2629.315] (II) intel(0):     23505400000001010101010101010101
[  2629.315] (II) intel(0):     0101010101011c2a405461841a303020
[  2629.315] (II) intel(0):     350035ae10000018000000fe004e3134
[  2629.315] (II) intel(0):     304647452d4541320a20000000fe0043
[  2629.315] (II) intel(0):     4d4e0a202020202020202020000000fe
[  2629.315] (II) intel(0):     004e3134304647452d4541320a200060
[... MESSAGES ABOUT INPUT DEVICES ... ]
[  2629.316] (II) intel(0): Printing probed modes for output eDP1
[  2629.317] (II) intel(0): Modeline "1600x900"x60.0  107.80  1600 1648 1680 1940  900 903 908 926 -hsync -vsync (55.6 kHz eP)
[  ... MORE MODELINES ... ]
[  2629.317] (II) intel(0): EDID for output DP1
[  2629.468] (II) intel(0): EDID for output HDMI1
[  2629.470] (II) intel(0): EDID for output DP2
[  2629.471] (II) intel(0): EDID for output HDMI2
[  2629.471] (II) intel(0): EDID for output DP2-1
[  2629.472] (II) intel(0): EDID for output DP2-2
[  2629.485] (II) intel(0): EDID for output DP2-3
[  2629.485] (II) intel(0): Manufacturer: PHL  Model: 81d  Serial#: 4488
[  2629.485] (II) intel(0): Year: 2004  Week: 48
[  2629.485] (II) intel(0): EDID Version: 1.3
[  2629.485] (II) intel(0): Analog Display Input,  Input Voltage Level: 0.700/0.300 V
[  2629.485] (II) intel(0): Signal levels configurable
[  2629.485] (II) intel(0): Sync:  Separate  Composite  SyncOnGreenSerration on. V.Sync Pulse req. if CompSync or SyncOnGreen
[  2629.485] (II) intel(0): Max Image Size [cm]: horiz.: 34  vert.: 27
[  2629.485] (II) intel(0): Gamma: 2.20
[  2629.485] (II) intel(0): DPMS capabilities: StandBy Suspend Off; RGB/Color Display
[  2629.486] (II) intel(0): Default color space is primary color space
[  2629.486] (II) intel(0): First detailed timing is preferred mode
[  2629.486] (II) intel(0): redX: 0.641 redY: 0.342   greenX: 0.292 greenY: 0.611
[  2629.486] (II) intel(0): blueX: 0.147 blueY: 0.068   whiteX: 0.313 whiteY: 0.329
[  2629.486] (II) intel(0): Supported established timings:
[  2629.486] (II) intel(0): 720x400@70Hz
[  ... OTHER TIMINGS ... ]
[  2629.486] (II) intel(0): 1280x1024@75Hz
[  2629.486] (II) intel(0): 1152x864@75Hz
[  2629.486] (II) intel(0): Manufacturer's mask: 0
[  2629.486] (II) intel(0): Supported standard timings:
[  2629.486] (II) intel(0): #0: hsize: 1152  vsize 864  refresh: 70  vid: 19057
[  2629.486] (II) intel(0): #1: hsize: 1152  vsize 864  refresh: 75  vid: 20337
[  2629.486] (II) intel(0): #2: hsize: 1280  vsize 960  refresh: 60  vid: 16513
[  2629.486] (II) intel(0): #3: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
[  2629.486] (II) intel(0): Supported detailed timing:
[  2629.486] (II) intel(0): clock: 108.0 MHz   Image Size:  338 x 270 mm
[  2629.486] (II) intel(0): h_active: 1280  h_sync: 1328  h_sync_end 1440 h_blank_end 1688 h_border: 0
[  2629.486] (II) intel(0): v_active: 1024  v_sync: 1025  v_sync_end 1028 v_blanking: 1066 v_border: 0
[  2629.486] (II) intel(0): Serial No:  VN  004488
[  2629.486] (II) intel(0): Monitor name: Philips 170B
[  2629.486] (II) intel(0): Ranges: V min: 56 V max: 76 Hz, H min: 30 H max: 82 kHz, PixClock max 145 MHz
[  2629.486] (II) intel(0): EDID (in hex):
[  2629.486] (II) intel(0):     00ffffffffffff00410c1d0888110000
[  2629.486] (II) intel(0):     300e01031f221b78ee2ee5a4574a9c25
[  2629.487] (II) intel(0):     115054bfef80714a714f814081800101
[  2629.487] (II) intel(0):     010101010101302a009851002a403070
[  2629.487] (II) intel(0):     1300520e1100001e000000ff0020564e
[  2629.487] (II) intel(0):     20203030343438380a20000000fc0050
[  2629.487] (II) intel(0):     68696c69707320313730420a000000fd
[  2629.487] (II) intel(0):     00384c1e520e000a20202020202000c0
[  2629.487] (II) intel(0): Printing probed modes for output DP2-3
[  2629.487] (II) intel(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz eP)
[  2629.487] (II) intel(0): Modeline "1280x1024"x75.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[  ... MORE MODELINES ... ]
[  2629.487] (II) intel(0): Output eDP1 connected
[  2629.487] (II) intel(0): Output DP1 disconnected
[  2629.487] (II) intel(0): Output HDMI1 disconnected
[  2629.487] (II) intel(0): Output DP2 disconnected
[  2629.487] (II) intel(0): Output HDMI2 disconnected
[  2629.487] (II) intel(0): Output DP2-1 disconnected
[  2629.487] (II) intel(0): Output DP2-2 disconnected
[  2629.487] (II) intel(0): Output DP2-3 connected
[  2629.487] (II) intel(0): Using spanning desktop for initial modes
[  2629.487] (II) intel(0): Output eDP1 using initial mode 1600x900 +0+0
[  2629.488] (II) intel(0): Output DP2-3 using initial mode 1280x1024 +1600+0
[  2629.488] (II) intel(0): Kernel page flipping support detected, enabling
[  2629.488] (==) intel(0): Using gamma correction (1.0, 1.0, 1.0)
[  2629.488] (**) intel(0): Display dimensions: (309, 174) mm
[  2629.488] (**) intel(0): DPI set to (236, 149)
[  2629.488] (II) Loading sub module "fb"
[  2629.488] (II) LoadModule: "fb"
[  2629.488] (II) Loading /usr/local/lib/xorg/modules/libfb.so
[  2629.488] (II) Module fb: vendor="X.Org Foundation"
[  2629.488]     compiled for 1.20.8, module version = 1.0.0
[  2629.488]     ABI class: X.Org ANSI C Emulation, version 0.4
[  2629.488] (II) Loading sub module "dri2"
[  2629.488] (II) LoadModule: "dri2"
[  2629.488] (II) Module "dri2" already built-in
[  2629.488] (II) intel(0): Allocated new frame buffer 2880x1024 stride 11776, tiled
[  2629.488] (II) UXA(0): Driver registered support for the following operations:
[  2629.488] (II)         solid
[  2629.489] (II)         copy
[  2629.489] (II)         put_image
[  2629.489] (II)         get_image
[  2629.489] (II) intel(0): [DRI2] Setup complete
[  2629.489] (II) intel(0): [DRI2]   DRI driver: i965
[  2629.489] (II) intel(0): [DRI2]   VDPAU driver: va_gl
[  2629.489] (==) intel(0): Backing store enabled
[  2629.489] (==) intel(0): Silken mouse enabled
[  2629.489] (II) intel(0): Initializing HW Cursor
[  2629.489] (**) intel(0): DPMS enabled
[  2629.489] (==) intel(0): Intel XvMC decoder enabled
[  2629.489] (WW) intel(0): Disabling Xv because no adaptors could be initialized.
[  2629.489] (II) intel(0): DRI2: Enabled
[  2629.489] (II) intel(0): DRI3: Disabled
[  2629.489] (WW) intel(0): Option "primary" is not used
[  2629.623] (II) Initializing extension Generic Event Extension
[  2629.623] (II) Initializing extension SHAPE
[  2629.623] (II) Initializing extension MIT-SHM
[  2629.623] (II) Initializing extension XInputExtension
[  2629.624] (II) Initializing extension XTEST
[  2629.624] (II) Initializing extension BIG-REQUESTS
[  2629.624] (II) Initializing extension SYNC
[  2629.624] (II) Initializing extension XKEYBOARD
[  2629.625] (II) Initializing extension XC-MISC
[  2629.625] (II) Initializing extension SECURITY
[  2629.625] (II) Initializing extension XFIXES
[  2629.625] (II) Initializing extension RENDER
[  2629.625] (II) Initializing extension RANDR
[  2629.626] (II) Initializing extension COMPOSITE
[  2629.626] (II) Initializing extension DAMAGE
[  2629.626] (II) Initializing extension MIT-SCREEN-SAVER
[  2629.626] (II) Initializing extension DOUBLE-BUFFER
[  2629.626] (II) Initializing extension RECORD
[  2629.627] (II) Initializing extension DPMS
[  2629.627] (II) Initializing extension Present
[  2629.627] (II) Initializing extension DRI3
[  2629.627] (II) Initializing extension X-Resource
[  2629.627] (II) Initializing extension XVideo
[  2629.627] (II) Initializing extension XVideo-MotionCompensation
[  2629.627] (II) Initializing extension GLX
[  2629.637] (II) AIGLX: Loaded and initialized i965
[  2629.637] (II) GLX: Initialized DRI2 GL provider for screen 0
[  2629.637] (II) Initializing extension XFree86-VidModeExtension
[  2629.637] (II) Initializing extension XFree86-DGA
[  2629.637] (II) Initializing extension XFree86-DRI
[  2629.637] (II) Initializing extension DRI2
[  2629.638] (II) intel(0): Setting screen physical size to 338 x 270
[  2629.671] (II) config/udev: Adding input device System keyboard multiplexer (/dev/input/event0)
[ ... MESSAGES ABOUT INPUT DEVICES ...]
[  2640.288] (II) intel(0): EDID vendor "PHL", prod id 2077
[  2640.288] (II) intel(0): Using EDID range info for horizontal sync
[  2640.288] (II) intel(0): Using EDID range info for vertical refresh
[  2640.288] (II) intel(0): Printing DDC gathered Modelines:
[  2640.288] (II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz eP)
[  ... MORE MODELINES ... ]
[  2641.808] (II) intel(0): Allocated new frame buffer 2880x1249 stride 11776, tiled
[  2642.180] (II) intel(0): EDID vendor "PHL", prod id 2077
[  2642.180] (II) intel(0): Using hsync ranges from config file
[  2642.180] (II) intel(0): Using vrefresh ranges from config file
[  2642.180] (II) intel(0): Printing DDC gathered Modelines:
[  2642.180] (II) intel(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz eP)
[  ... MORE MODELINES ... ]
[  2643.598] (II) intel(0): Allocated new frame buffer 2880x1249 stride 11776, tiled
```


----------



## T-Daemon (May 31, 2020)

Try this wiki:




__





						Multihead - ArchWiki
					






					wiki.archlinux.org


----------



## Mjölnir (May 31, 2020)

T-Daemon said:


> Try this wiki:
> 
> 
> 
> ...


Ya that wiki is funny... Did you try their examples?


----------



## shkhln (May 31, 2020)

Afaik, Xorg doesn't handle displays with different pixel densities. There is nothing you can do.


----------



## T-Daemon (May 31, 2020)

There is an article about mixed DPI’s. Interesting read:





__





						Mixed DPI and the X Window System
					





					wok.oblomov.eu


----------



## shkhln (May 31, 2020)

T-Daemon said:


> There is an article about mixed DPI’s. Interesting read:
> 
> 
> 
> ...





> I'm getting tired of repeating the same concepts every time someone makes misinformed statements about the (lack of) support for mixed-DPI configurations in X11



Oh, for f* sake. As an actual owner of a 184 PPI display, I'm not amused. Xorg's scope seems to be everything except, you know, sane rendering. Nothing prevents that thing from upscaling or downscaling bitmaps, it won't look pretty but at least it would be readable. Blaming toolkits for everything is a total cop-out.


----------



## Mjölnir (Jun 1, 2020)

T-Daemon said:


> Interesting read:
> 
> 
> 
> ...


THX! I crawled the net for days and did not stumble over this.  Maybe I have to use another search engine?
After beeing hit by a few bad consequences of my pristine intention to have the _"true"_ DPI on each monitor, I adjusted my goal to instead unify the magnification of all monitors connected, and besides that stick to the default of a _virtual_ DPI=96. 

An innocent mind is asking: Why is this not the _automagic_ default behaviour once a 2nd monitor is pluged in? IMHO it should be, because other use-cases like e.g. connecting a beamer or a public information panel (in the bus/train/station/etc.) are the exception, whereas a 2nd monitor on the desk is what most likely happens, and then a unified magnification is what most users would want and expect.  Am I wrong here?
When it's done I'll document it here, so it might evolve into a HOWTO after some critical proof-reading.


----------



## Snurg (Mar 25, 2021)

Mjölnir said:


> An innocent mind is asking: Why is this not the _automagic_ default behaviour once a 2nd monitor is pluged in?


Is there a system event MONITOR_CONNECTED or the like, which would be necessary for this?

In lack of such, is there a way of probe-only running xorg, detecting all connected monitors via the drivers and the EDID infos, without actually starting X, and log some way what has been found?
Maybe this would be nice, as then one could prepare all those Screen/Monitor entries so they are there when one actually starts X.

But, is this even possible without extra Device entries polling the various outputs?


----------

