For quite some time I have been using a multi-monitor setup and for at least the past 4 years I’ve been using 2 23” IPS panels. Now for a long while that was quite sufficient. I’ve had the monitors in various configurations, stacked, side-by-side, one vertical and so on. However, more recently I’ve started to feel that the screens “could be bigger” or that I could do with more pixels.

After researching 16:9 monitors and various other ratios that were available I came across the 2560x1440 resolution. There are now quite a few 1440p monitors available on the market, however in the UK they tended to be rather expensive.

Enter Ebay. For quite some time 1440p monitors have been available at very reasonable prices on Ebay, for the most part brand new and shipped from South Korea. I went for a pixel perfect QNIX matte 1440p panel which with customs fees included came to a very reasonable £250.

QNIX QX2710

UPDATE: At the time the cheapest 1440p panel in the UK was at least £500 so this was quite a bargain. It’s now possible to get 1440p panels in the UK starting at £300 and 4K panels at £330.

One of the requirements for these panels is that they are connected to your graphics card via Dual Link DVI. This wasn’t a problem as I have an Nvidia GTX 660 Ti which was more than capable of supporting it. I have also always used the proprietary Nvidia driver as I occasionally play games such as EvE Online which require good 3d acceleration and the nouveau driver doesn’t seem to be quite there yet. The cable can also be a factor and a good quality Dual DVI cable is very much a requirement. I found that with my particular monitor I would get no output unless I used a gold plated 24awg cable.

After first plugging in the monitor and working out that I needed to use the right cable, I initially booted into Windows to test it. This went without a problem and after playing about with some settings it was exactly as I wanted it to be.

Getting it to work in Linux however was a different story. Firstly, these monitors do not have built in scalers and so they need to be fed the correct resolution or they will simply display a series of flashing colours. Secondly the Nvidia driver doesn’t seem to be able to make sense of the EDID information from the monitor.

The next big issue was that I also wanted to use my 23” LG panels vertically either side, all mounted on a triple monitor mount.

After a huge amount of google-fu and a lot of trial and error with various xorg settings, here is what I came up with as a working 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
# /etc/X11/xorg.conf

Section "ServerLayout"
    Identifier     "Default Layout"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

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

Section "InputClass"
    Identifier         "Keyboard Defaults"
    MatchIsKeyboard    "yes"
    Option         "XkbLayout" "gb"
EndSection

Section "InputClass"
    Identifier         "R.A.T.TE Remap"
    MatchDevicePath    "/dev/input/event*"
    Option         "ButtonMapping" "1 2 3 4 5 6 7 8 9 0 0 0 0 0 0"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DFP-0"
    HorizSync       88.8
    VertRefresh     59.5
    ModeLine       "2560x1440" 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 660"
    Option         "NoLogo"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option 		   "ExactModeTimingsDVI" "True"
    Option         "AllowNonEdidModes" "True"
    Option         "AllowNon60hzmodesDFPModes"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DVI-I-1: 2560x1440 +1080+0, HDMI-0: 1920x1080 +0+0 {rotation=left}, DVI-D-0: 1920x1080 +3640+0 {rotation=right};"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

This got everything working as desired and after some work with Herbstluftwm I was very pleased with this setup. There are some slight issues, for instance with font sizes and LXDM but nothing that a quick google search couldn’t fix.

If you are having similar issues getting this monitor working in Linux you may find my xorg.conf helpful although you may need a slightly different ModeLine as none of the ones I found on-line worked properly for me. The cvt tool was very useful in generating a correct ModeLine.

UPDATE

Since I originally wrote this post (but never got around to publishing it) my setup has changed again.

I have rearranged things quite significantly and now I have a slightly shorter desk. This has meant mounting my 23” panels horizontally on a dual display mount and placing my 1440p monitor on a swing-arm mount above them.

This posed some rather interesting problems.

While it was easy to get the 23” monitors to co-operate, xorg did not like having the 1440p panel above and to the right and either X would not start or would not give the monitor the correct resolution. After trying to fix this problem using nouveau and failing miserably I have settled for a rather messy solution.

I use the same xorg.conf as above, however with the modeline removed. Instead I have added the following to my ~/.xinitrc:

xrandr --output DVI-D-0 --mode 2560x1440 --pos 1280x0 --rotate normal --output HDMI-0 --mode 1920x1080 --pos 0x1440 --rotate normal --output DVI-I-1 --mode 1920x1080 --pos 1920x1440 --rotate normal --output DVI-I-0 --off --output DP-1 --off --output DP-0 --off

I think next time I decide to buy a monitor I’ll get one that I know for a fact works out of the box in Linux as this has all been rather a hassle.

I now use my 2 23” panels for most of my work and the 1440p monitor to display the status’s of my various machines which can be very useful. It also gets used for movies and the occasional game.