Controlling monitors & video projectors with RandR


RandR replaces most legacy options for combining multiple displays, such as TwinView, MergedFB, and more prominently, Xinerama. What RandR actually does is combine two displays to give you a single large display. For example, RandR will combine two displays with a resolution of 1280x1024 to give you a large screen with 2560x1024 pixels. If the vertical resolutions of the two displays are different, RandR will select the larger of the two when determining the vertical resolution of the virtual display. This approach creates an invisible area below the bottom edge of the smaller of the two displays (Figure 2).

A - -query to XRandR tells you the minimum, current, and maximum resolutions that the virtual display supports. Depending on your distribution, the maximum resolution might be too small to run two monitors at full resolution. If so, you can correct the value then restart the X server. To do this, take the highest summed value for the resolution of the two displays and add a line to your /etc/X11/xorg.conf file "Display" subsection, such as Virtual 2560 1024. After setting the maximum size of the virtual display and running xrandr - -query to make sure that the mode is available, use the following command to link the two displays

$ xrandr --output LVDS --auto --
left-of VGA --output VGA --auto

replacing LVDS and VGA with your physical output ports – for example, HDMI-1, HDMI-2, DVI, or VGA. If the first of the two displays listed (LVDS in this example) is located on the right physically, replace --left-of with --right-of, or change the order of the ports in the command. Instead of --auto for native resolution, add a - -mode option to specify a different resolution.

RandR and Windows

If you fear that a large virtual display will stretch your windows (or the kicker) over two screens, fear not. The window manager (KWin for KDE, Metacity for Gnome) prevents this behavior. RandR uses the Xinerama protocol to tell the window manager where the borders of the physical displays are located within the virtual display. What the window manager actually does with this information depends on your current configuration.

The desktop, including the wallpaper, will normally cover both screens, and you can move windows between the two displays. If you maximize a window, it will be restricted to the size of one of the displays (Figure 3). The kicker also appears on just one of the two screens – in many cases you can't specify which one. The developers need to put some more work into this issue.


If you use a single-head display that you can pivot through 90 degrees, the following command will rotate the output:

$ xrandr --output LVDS --rotate

This command also works on tablet PCs or similar devices (Figure 4). Note that the vertical resolution of the virtual display must match the horizontal resolution of the monitor and vice versa.

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

comments powered by Disqus

Direct Download

Read full article as PDF: