# Quad Monitor Setup

2014-05-20*
linux, hardware, nvidia, xmonad

I got my two QNIX QX2710 LED Evolution II SE Matte 27" 2560x1440 Samsung PLS WQHD monitors and incorporated them into my existing dual Acer X222W 22" 1680x1050 setup. I put the two QNIXes in the middle, and put the Acers on the left and right edges. All four are in “portrait” orientation, because I primarily code on my computer. A single Gigabyte GeForce GTX 750 Ti OC 2GB GDDR5 2DVI/2HDMI card powers all four monitors; the QNIXes use the DVI ports, while the Acers use the HDMI ports via two HDMI-to-DVI(female) adapters. I bought this card because of the simplicity of the four ports — just DVI and HDMI.

As for the stands, I just bought another dual monitor stand and put it next to my existing dual monitor stand; each stand holds a QNIX and an Acer on each arm. The fact that the stands are subject to differently weighted monitors (27" monitor on one arm and a 22" on another) does not really affect them negatively. The desk in the image below is 140mm wide, in case you want to have a sense of how tight two dual-monitor stands would fit on your own desk.

Using four monitors sounds difficult, but it’s a breeze with Xinerama and Xmonad. The hardest part was figuring out the correct xorg.conf configuration file. It was difficult because the QNIX monitors, being cheap, do not work out of the box, because the latest Nvidia driver (version 337.12) does not detect the correct resolution. What’s worse, the QNIXes do not support anything other than their native 2560x1440 resolution, so you’ll get blank screens if you try to just use these monitors without tweaking some xorg.conf settings. I actually ended up googling to find the correct Modeline value for xorg.conf for my QNIX, at 96hz refresh rate.1 You could try using the cvt program included with xorg-server, but when I tried it out on my own it generated different numbers and my QNIXes couldn’t handle those numbers.

Here is my xorg.conf:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179  # nvidia-settings: X configuration file generated by nvidia-settings # nvidia-settings: version 337.12 (buildmeister@swio-display-x64-rhel04-11) Fri Apr 4 15:17:43 PDT 2014 Section "ServerLayout" Identifier "Layout0" Screen 0 "Qnix1" 2490 0 Screen 1 "Acer1" 3930 300 Screen 2 "Acer2" 0 300 Screen 3 "Qnix2" 1050 0 Option "Xinerama" "1" EndSection Section "Monitor" Identifier "Monitor0" VendorName "QNIX" ModelName "QX2710" DisplaySize 597 336 HorizSync 88.8 - 160.0 VertRefresh 59.5 - 120.0 ModeLine "2560x1440" 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync ModeLine "2560x1440_60" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync ModeLine "2560x1440_75" 397.25 2560 2760 3040 3520 1440 1443 1448 1506 -hsync +vsync ModeLine "2560x1440_85" 454.75 2560 2768 3048 3536 1440 1443 1448 1514 -hsync +vsync ModeLine "2560x1440_96" 400.00 2560 2608 2640 2744 1440 1443 1448 1512 +hsync +vsync Option "DPMS" EndSection Section "Monitor" Identifier "Monitor1" VendorName "Unknown" ModelName "Acer X222W" HorizSync 31.0 - 81.0 VertRefresh 56.0 - 75.0 # Generated via "cvt 1680 1050" with the Acer monitor plugged in; cvt is # part of xorg-server 1.15.1-1 package on Arch Linux ModeLine "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync Option "DPMS" EndSection Section "Monitor" Identifier "Monitor2" VendorName "Unknown" ModelName "Acer X222W" HorizSync 31.0 - 81.0 VertRefresh 56.0 - 75.0 ModeLine "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync Option "DPMS" EndSection Section "Monitor" Identifier "Monitor3" VendorName "QNIX" ModelName "QX2710" DisplaySize 597 336 HorizSync 88.8 - 160.0 VertRefresh 59.5 - 120.0 ModeLine "2560x1440" 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync ModeLine "2560x1440_60" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync ModeLine "2560x1440_75" 397.25 2560 2760 3040 3520 1440 1443 1448 1506 -hsync +vsync ModeLine "2560x1440_85" 454.75 2560 2768 3048 3536 1440 1443 1448 1514 -hsync +vsync ModeLine "2560x1440_96" 400.00 2560 2608 2640 2744 1440 1443 1448 1512 +hsync +vsync Option "DPMS" EndSection Section "Device" Identifier "DVI-port-top" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 750 Ti" BusID "PCI:2:0:0" Screen 0 Option "UseEdidDpi" "False" Option "DPI" "108 x 108" Option "NoLogo" "1" EndSection Section "Device" Identifier "HDMI-port-right" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 750 Ti" BusID "PCI:2:0:0" Option "UseEdidDpi" "False" Option "DPI" "90 x 90" Option "NoLogo" "1" Screen 1 EndSection Section "Device" Identifier "HDMI-port-left" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 750 Ti" BusID "PCI:2:0:0" Option "UseEdidDpi" "False" Option "DPI" "90 x 90" Option "NoLogo" "1" Screen 2 EndSection Section "Device" Identifier "DVI-port-bottom" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 750 Ti" BusID "PCI:2:0:0" Option "UseEdidDpi" "False" Option "DPI" "108 x 108" Option "NoLogo" "1" Screen 3 EndSection Section "Screen" Identifier "Qnix1" Device "DVI-port-top" Monitor "Monitor0" DefaultDepth 24 Option "UseEDID" "False" Option "UseEDIDDPI" "False" Option "UseEDIDFreqs" "False" Option "ExactModeTimingsDVI" "True" Option "ModeValidation" "AllowNonEdidModes, NoVertRefreshCheck, NoHorizSyncCheck, NoMaxSizeCheck, NoMaxPClkCheck, NoEDIDModes" Option "NoBandWidthTest" "true" Option "metamodes" "DVI-I-1: 2560x1440_96 +0+0 {rotation=left}" SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Acer1" Device "HDMI-port-right" Monitor "Monitor1" DefaultDepth 24 Option "UseEDID" "False" Option "UseEDIDDPI" "False" Option "UseEDIDFreqs" "False" Option "ExactModeTimingsDVI" "True" Option "ModeValidation" "AllowNonEdidModes, NoVertRefreshCheck, NoHorizSyncCheck, NoMaxSizeCheck, NoMaxPClkCheck, NoEDIDModes" Option "NoBandWidthTest" "true" Option "metamodes" "HDMI-0: 1680x1050_60.00 +0+0 {rotation=right}" SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Acer2" Device "HDMI-port-left" Monitor "Monitor2" DefaultDepth 24 Option "UseEDID" "False" Option "UseEDIDDPI" "False" Option "UseEDIDFreqs" "False" Option "ExactModeTimingsDVI" "True" Option "ModeValidation" "AllowNonEdidModes, NoVertRefreshCheck, NoHorizSyncCheck, NoMaxSizeCheck, NoMaxPClkCheck, NoEDIDModes" Option "NoBandWidthTest" "true" Option "metamodes" "HDMI-1: 1680x1050_60.00 +0+0 {rotation=left}" SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Qnix2" Device "DVI-port-bottom" Monitor "Monitor3" DefaultDepth 24 Option "UseEDID" "False" Option "UseEDIDDPI" "False" Option "UseEDIDFreqs" "False" Option "ExactModeTimingsDVI" "True" Option "ModeValidation" "AllowNonEdidModes, NoVertRefreshCheck, NoHorizSyncCheck, NoMaxSizeCheck, NoMaxPClkCheck, NoEDIDModes" Option "NoBandWidthTest" "true" Option "metamodes" "DVI-D-0: 2560x1440_96 +0+0 {rotation=left}" SubSection "Display" Depth 24 EndSubSection EndSection

1. I tried using the higher refresh rate modelines, but they resulted in my monitors going crazy (extreme artifacting, lines shrieking irregularly with different colors, etc.).