I am trying to setup a xrandr mode line for a X display but in attempting to find the appropriate parameters, I note there are two different calculation programs (see below).

Why the difference in values?

Which set should I use for a NON-CRT display?

 $ gtf 1600 1200 60
        # 1600x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 160.96 MHz
        Modeline "1600x1200_60.00"  160.96  1600 1704 1880 2160  1200 1201 1204 1242  -HSync +Vsync

 $  cvt 1600 1200 60
 # 1600x1200 59.87 Hz (CVT 1.92M3) hsync: 74.54 kHz; pclk: 161.00 MHz
 Modeline "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
  • 6
    CVT is a newer (i.e., less ancient) standard. For a LCD panel it shouldn't matter. The timings are significant only for CRT displays; and even for CRT displays the two sets of parameters should produce just about the same picture. (Any CRT made after the fall of Rome includes synchronization circuits with enough flexibility to latch to the pixel clock and refresh rate of both input signals. The same goes for a LCD panel, and that's assuming that the panel is connected over an analog link; nowadays panels tend to be connected over digital links where the timings are completely immaterial.)
    – AlexP
    Commented Dec 21, 2017 at 0:37
  • I think the overall pixel clock still matters — if it's higher than your video card's / connection / monitor's maximum it won't work. You can minimize pixel clock — and thus maximize supported resolution * refresh rate — by using "reduced blanking" timings. See medium.com/@ValdikSS/… Commented Jul 19, 2020 at 13:04

2 Answers 2


Before using either either CVT or GTF, try letting X do the calculating itself. Creating a config file for providing modelines is an anachronism. Given correct display specifications, which EDID usually provides, X is supremely competent in generating required modelines. Ever since the fork 16 years ago of Xorg off of XFree86, and using lot of different hardware with Linux, I've yet to find any hardware combination where CVT or GTF did a better job than the server, given correct display specifications. These two specifications can be provided via HorizSync and VertRefresh in a 'Section "Monitor"' in an /etc/X11/xorg.con* file when EDID proves inadequate to provide them.

  • 1
    It's 2023 and I want to connect a 3440x1440 monitor to my notebook with HDMI 1.4. Automatically I am only getting 30 Hz refresh rate but 56 Hz is possible. So I need to figure out a modeline – but with cvt modelines nothing above 44 Hz works and it can't make a "reduced" modeline for 56 Hz. The system does not have any xorg.conf it only has xorg.conf.d but there is nothing to edit, no monitor section anywhere.
    – w-sky
    Commented Oct 23, 2023 at 13:07
  • At least in Debian 12, the user's xorg.conf.d is empty, and the config information is in /usr/share/X11/xorg.conf.d Commented May 21 at 20:38

As Hilton noticed for Debian 12, over the past several years, current distros have been converting /etc/X11/xorg.conf to an optional file, and /etc/X11/xorg.conf.d/ to an optional directory. The preferred way now to customize X config, if necessary or desired, is to create whatever is needed in /etc/X11/xorg.conf.d/.

Section "Monitor"
    Identifier "DefaultMonitor"
    HorizSync   30-115
    VertRefresh 50-160

Save the above as /etc/X11/xorg.conf.d/50-monitor.conf, after changing HorizSync and VertRefresh to correct values according to your display's specifications, and give it a try. In theory at least it should do what you need, but some hardware combinations just won't play nice together. Sometimes claimed specifications are not actually supported. Superwide aspect ratio screens are among the most troublesome.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .