XFree86 Modeline

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
A mode line may also refer to a line for the Emacs and Vim editors that provides information about the file and modes.

A modeline is a configuration line in xorg.conf or the XFree86 configuration file (XF86Config) that provides information to the display server about a connected computer monitor or television and how to drive it at a specified display resolution. The Modeline is based on the Generalized Timing Formula or the Coordinated Video Timings standards produced by VESA.

Modelines are now rarely used, but XFree86 and the Xorg Server still allow them to be set should the EDID information be inadequate.


Each modeline has ten parameters, beginning with a label for the resolution being specified. The second parameter specifies the rate of the pixel clock in megahertz. Then follow four numbers that together specify the x-resolution (width) and related parameters, and four numbers that specify the y-resolution (height).

 Modeline syntax: pclk hdisp hsyncstart hsyncend htotal vdisp vsyncstart vsyncend vtotal [flags]
 Flags (optional): +HSync, -HSync, +VSync, -VSync, Interlace, DoubleScan, CSync, +CSync, -CSync

 Modeline "1600x1200" 155   1600 1656 1776 2048   1200 1202 1205 1263
 #           (Label) (clk)     (x-resolution)        (y-resolution)
 #                     |
 #              (pixel clock in MHz)

Or, the modeline can be split into multiple lines for greater clarity

 Modeline "1600x1200"  155  1600 1656 1776 2048
                            1200 1202 1205 1263

 The horizontal and vertical frequencies can be calculated by:
 Vfreq=pclk/(htotal*vtotal) (field rate) For interlace mode, frame rate=field rate/2, otherwise frame rate=field rate.

The numbers after the width and height are used to determine the front porch, sync pulse, and back porch timings. The resulting refresh rate or frame rate of the display can be determined by dividing the pixel clock frequency by the product of the horizontal and vertical field lengths. In this case, the display is operating at 155,000,000/(2048*1263)=59.92 Hz.

Optionally, extra parameters for controlling the polarity of the horizontal and vertical sync pulses can be added. There are also options for interlaced and double scan modes. In most situations they will not be required.


Modelines may no longer be necessary in XFree86 versions 4 and higher,[1] since for many monitors and HDTVs they are now calculated by the X server at startup based on two factors:

  • other, more generic and intuitive, settings in the server configuration file
  • monitor capabilities acquired via an EDID query

EDID is not always completely accurate, and for some situations such as older or unusual display hardware or many HDTVs, it will be necessary to create a modeline to get the setting right. The EDID information can be obtained by using the command "startx -- -logverbose 6" and looking at /var/log/XFree86.0.log.

See also[edit]


External links[edit]