Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there some way to move Windows between separate X screens in Ubuntu 12.04? With 3 monitors on 2 GPUs, using Twinview is not an option. Xinerama allows me to drag windows between all monitors, but it also means that I lose all hardware acceleration.

I don't expect to be able to drag windows between the screens and have them occupy two monitors simultaneously, but there must be some way to transfer a program while it is running. At the moment, I don't even know how to select which monitor it will use when launched.

Any pointers?

share|improve this question
up vote 1 down vote accepted

If you are using multiple X screens (i.e. you have displays :0.0, :0.1, etc), then it is not possible to move windows between them. Windows are bound to an X screen because the screens might have incompatible pixel formats or the hardware might not be able to share resources between the screens. Xinerama, RandR and TwinView were all designed to work around this by merging multiple monitors into a single logical screen.

I know Sun put work into Gnome 2.x to make sure it worked well in this configuration and applications launched from a panel of a one screen would cause the application to open on the same screen, but it is possible some of this has bitrotted since then if you're having trouble.

Some applications (like Nautilus) should be multi-screen capable out of the box, but most will only run on a single screen at once. You can force an application to launch on a particular X screen by passing a custom display string. For example, to launch Firefox on the second screen you could run the following:

firefox --display :0.1

Perhaps creating a few custom launchers with commands like this would help?

share|improve this answer
Xinerama emulates a single logical display, but windows will still maximize on one monitor. How is this accomplished? My primary GPU can emulate a single monitor in hardware. If I use this feature, could I fix the window maximizing issue the same way? – Kalle Elmér Jun 28 '12 at 13:21
The monitor configuration is exposed to X clients via either the XINERAMA and RANDR protocol extensions. The window manager you're using uses these extensions to decide how to maximise windows. If you were using a window manager that ignored this information, it would likely maximise windows over all monitors that were part of the logical screen. – James Henstridge Jun 28 '12 at 14:03
I only want to maximise windows across one third of the logical monitor, matching the physical monitors. Is there some way that I can alter the information in these extensions to get this behaviour? I want my window manager to think that I have Xinerama enabled with three monitors, even though the OS can only see one monitor. The hardware merges three monitors into one. – Kalle Elmér Jun 28 '12 at 14:57
I'm not sure I understand. In the question you said you were using a multi-screen set up, which would prevent you from spanning windows between screens (unlike modern Xinerama/RandR configurations). – James Henstridge Jun 29 '12 at 3:42
I was previously using two GPUs, but I moved some cables around to get one big screen. My primary GPU has this functionality but I didn't use it before because I wanted windows to maximize on a single monitor. When I realized that I couldn't move windows between monitors, I switched back, which again resulted in the maximizing issue. However, there is an option in CompizConfig that allowed me to manually specify "outputs", regardless of actual monitors, and it works. It's under "General" -> "General Options" -> "Display Settings". I guess you could call this "Hardware Xinerama". – Kalle Elmér Jun 29 '12 at 10:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.