Xinerama

From Wikipedia, the free encyclopedia

Four Head Xinerama
Four Head Xinerama

Xinerama is an extension to the X Window System which allows applications and window managers to use the two (or more) physical displays as one large virtual display.

It was originally developed by DEC (under the name PanoramiX), who contributed it to The Open Group for X11 Release 6.4 (X11R6.4), where it was renamed Xinerama. From there it was incorporated into XFree86 for the XFree86 4.0 release, and Solaris in the Solaris 7 11/99 release.

The physical displays do not need to be the same resolution. Some window managers assume that the virtual display area is rectangular, but this isn't necessarily the case if the component physical displays are not the same size. The excess space, which is needed to make the area rectangular, is called "dead space". The window manager needs to be aware of Xinerama to recognize dead space, and avoid placing new windows there.

It is also an advantage if the window manager, via Xinerama awareness, can pop up new windows on the active physical display. Another advantage of Xinerama awareness is to only maximize windows to the dimensions of the active physical display.

"Xinerama" is sometimes confused with the completely unrelated media player xine (although on X11, xine-ui does utilise Xinerama if available).

Contents

[edit] Known problems

Xinerama requires that the physical screens have the same bit depth — an 8-bit screen cannot be combined with a 16-bit screen, for example.

In most implementations, OpenGL (3D) direct-rendering only works on one of the screens. Windows that should show 3D graphics on other screens tend to just appear black. This is most commonly seen with 3D screen savers, which show on one of the screens and black on the others. (The Solaris SPARC OpenGL implementation allows direct rendering to all screens in Xinerama mode.)

There is currently no way to add or remove physical screens, and there is no way to change the resolution of either screen. (The XRandR feature is disabled when Xinerama is used). This is a particular difficulty for laptop and tablet PC users (or any mobile computer), where you commonly want to sit at a desk and use an external physical display in addition to the computer's built-in screen, but only when at the desk.

Because Xinerama does not support adding or removing screens (at the time of writing), it causes several problems:

  • When the external screen is not connected, windows may still appear on it. You have to drag them to the built-in screen, and this might be difficult as you can't see them.
  • The laptop may still be sending video signals, which uses a little unnecessary power and may reduce the battery life.
  • When you want to use a different external display (for example when moving between locations that have one), there's a good chance it will need different settings like screen resolution and refresh rate. But you cannot change these settings when Xinerama is enabled.

These are all problems with the Xinerama implementation rather than the design, and they could be fixed with sufficient work.

Some window managers and desktop environments have limited awareness of the separate physical screens in Xinerama. They work, but the desktop is simply stretched over the physical screens. When a window opens, the window manager may place it on an unexpected screen, which is confusing and annoying if the displays are not arranged like a single giant desktop.

When using Xinerama, the display is treated as one huge workarea, and wallpaper is therefore stretched across this area. It's currently impossible to assign wallpapers to the displays individually, as the screens are treated as one.

Despite these problems, Xinerama offers two overwhelming advantages over separate X screens (see next section). First, you can move windows between Xinerama screens. Second, a single application can have windows open on the different Xinerama screens at the same time.

[edit] Dual display X without Xinerama

It is possible to have a multiple display desktop without using Xinerama. In X terminology, a single X server can support multiple "screens". It is also possible to use separate X servers, and in X terminology this is called using multiple "displays". Both of these methods have been available for a very long time.

With multiple screens (or displays), each physical screen is effectively independent. You can run different window managers, have a different background image, and run different applications on each physical screen.

Some window managers will automatically detect multiple screens, and provide services such as a task bar and window decoration on all screens. This is similar to Xinerama in some ways. However, if your window manager does not do this, you can simply run multiple instances of your window manager, one for each screen.

Some users prefer multiple displays like this, instead of Xinerama. There are many usability advantages to the independence of each screen, compared with Xinerama's method of a single virtual screen stretched over all physical screens.

Some of the advantages: Being sure that new windows always appear on the screen where you launched the application; independent background pictures; independent task bars; notification areas show information about applications associated only with the screen they're on, and so on. All of these are possible with Xinerama too, if they are done by a Xinerama-aware desktop environment with the right features. However, one of the most popular environments, GNOME, although it does have some Xinerama support, is quite poor in the areas described above at the time of writing (GNOME 2.14).

Unfortunately, the independence of each screen (which you get when not using Xinerama) has a noteworthy usability problem: There is no way to move windows between the different screens. A few applications and libraries provide an equivalent behaviour: they can remove their own windows from one screen, and recreate them on the other screen. However, only a few applications can do this, and it's usually difficult to use.

If there was a way to move windows between screens, the behaviour of multiple independent screens would be nearly ideal for many users.

There is one other problem which you are likely to encounter, even if you never want to move windows between screens.

Some applications which open multiple windows, in particular web browsers and certain office applications, must run only once no matter how many separate windows are shown. If you try to run multiple instances of these applications, you will get an error message, or shared state (like bookmarks and cookies in the case of web browsers) may be corrupted or updates lost. But this is exactly what happens when you try to launch these applications on more than one screen at the same time. For example, trying to launch Firefox on two different screens is known to produce an error dialog box, rather than the desirable behaviour which would be to open web browser windows on each screen.

Despite these problems, running multiple independent screens without Xinerama has some advantages, due to limitations with Xinerama (and described in the Known problems section). The relatively independent behaviour of each desktop is one. You can also enable and disable physical screens, or even change the resolution (if XRandR is available) or other display parameters. These are particularly useful features for laptop and tablet PC users who often need to enable and disable an external screen, without affecting the laptop's built-in screen.

[edit] See also

[edit] References

[edit] External links

In other languages