Commit db66bf4d authored by's avatar
Browse files

continue intro

parent 511c8050
= Introduction =
== The X Protocol Screen ==
The most important concept in understanding how X deals with multiple monitors is the X protocol screen. This page refers to it as SCREEN. Traditionally in X11, a SCREEN had a one-to-one correspondence with a physical display device (a monitor). Dual- or multi-head graphics cards did not really exist, and things were simple. The X configuration file ({{{xorg.conf}}}) has one {{{Section "Screen"}}} for each SCREEN, either explicitly written in the file, or nowadays implicitly created by the X server.
SCREENs are independent. They can have, not only different video modes, but also different color depths and resolution (dots-per-inch, used in scaling e.g. true-type fonts). Windows can never span more than one SCREEN, nor can they be moved from one SCREEN to another. The only way (that your author knows about) to switch focus from one SCREEN to another is with the mouse. Internally, each SCREEN is driven by a separate driver (DDX) instance, since SCREENs had one-to-one correspondence with graphics cards, too.
When a graphical application starts, it connects to an X server. Usually the environment variable {{{DISPLAY}}} specifies which X server to connect to. The value of {{{DISPLAY}}} is of the form {{{host:displaynumber.screen}}} and the default value set by practically all graphical environments is {{{:0.0}}}, which means the local computer, the X server instance 0, and SCREEN 0. Host specifies the computer, as the X11 protocol can work over a network. Displaynumber specifies the X server instance, as one computer may have several X servers running. Screen number specifies the SCREEN the application has access to. In other words, the SCREEN where the application windows will appear, must be selected before the application starts (or connects to the X server). The SCREEN cannot be changed without opening a new connection to the X server, which in practice means you have to quit and restart the application.
== Dual-head Graphics Cards ==
Add a dual-head graphics card. Suddenly there is a single card with two physical monitors, and things get complicated. One solution for a driver (DDX) is to create one SCREEN per head, which is called Zaphod mode (after Zaphod Beeblebrox, from the Hitchhiker's Guide to the Galaxy). Another solution is to pretend that there is only one monitor, and use just one SCREEN, which is what the Nvidia TwinView mode does. The third and the only proper way to deal with it is the Randr extension, which is a relatively new invention. Randr exposes the dual-head card as a single SCREEN, yet having a standard way of managing the multiple monitors.
Unfortunately, Randr does not help with multiple graphics cards, yet. Each card is forced to be a separate SCREEN. However, the Xinerama feature changes that. (Xinerama is an older invention than Randr.)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment