Automatically clone video output when plugging a VGA cable into a laptop. An "It Just Works" presentation mode.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xorg-server (Ubuntu) |
Invalid
|
Wishlist
|
Unassigned |
Bug Description
Summary:
This is a feature request, requesting that when a VGA cable is plugged into a laptop, that it automatically produces a clone of the laptop screen on the external monitor when the cable is plugged in, without having to do anything / detect anything / change any settings / run any commands, besides physically plugging in the cable.
Background:
I attended an Open Source conference recently (OSDC2008au), and one repeated problem for people giving presentations or lighting-talks on their Linux (generally Ubuntu, typically release 8.10) laptops, was when connecting their laptop to the VGA projector, that the external display required some action to get working. This was usually either through the menus (System -> Preferences -> Screen resolution), or mucking about on the command line ("xrandr --ridiculously --long --list --of --obtuse --command-line --arguments"), or they had to reboot (and have the projector connected when rebooting). It was, frankly, kind of embarrassing. The worst were the lighting talks - you've only got 3 or 4 minutes from when you step up to the podium, and only about 65% of people were able to get their laptops to work in that time, the rest just had to wing it after giving up, and talk but not show their presentation. This is not a satisfactory situation, and it reflects poorly on Ubuntu specifically and on Linux in general, in a very public and humiliating way.
Disclaimers:
* I don't know if there's some way to automatically detect when a VGA cable is plugged in. Obviously this is required. (e.g. on my laptop "xrandr" shows different outputs when the cable is plugged in, and when it's not, but I don't know if there's an event or something that gets generated when this situation changes - hopefully there is, or one could be added).
* The Ubuntu 8.10 feature list / release notes included this line: "X.Org 7.4 brings in hot-plug support for multi-monitor setup - plug-in the external monitor and resolution etc are automatically detected and set". I had (probably mistakenly) assumed that this would mean that in Ubuntu 8.10 I would be able to plug in a VGA cable after booting, and that it would "just work", but I can only report that on my laptop (a Thinkpad T40, with ATI Mobility Radeon 7500 chipset) that it does not work. Also running "xrandr --output LVDS --auto --output VGA --auto --same-as LVDS" or "xrandr --output LVDS --mode 1024x768 --output VGA --mode 1024x768" does not do anything either. Also doing things in System -> Preferences -> Screen resolution does not work either. Pressing Fn-F7 doesn't seem to do anything either. The only thing that I have found that works is to reboot, with the VGA cable plugged in, and that's the only way I have found to get output on the external monitor to work (from memory, I think I can then unplug it and then plug it back in and it will still work, as long as I have not rebooted).
* I don't know if this should be logged upstream somewhere, or if this is a meta bug (number of smaller updates required to achieve a larger objective), or is a bug in specific driver (and everyone else already has this feature - but from observing the conference, I highly doubt it). So I don't know where to log this, but the fact remains that the current situation sucks, so it needs to be logged somewhere, and hopefully it can be improved. If this is in the wrong place, then I apologize, and please direct me to where it should be located, and I'll log it there instead.
Dual desktop setups:
There should be some way to configure this for people that want dual desktop set-ups (i.e. different outputs on laptop screen & the VGA out), but IMHO 95% of the time a VGA cable is plugged into a laptop, it's because a person wants a clone of the desktop, to give a presentation / show somebody something / use a larger monitor. Furthermore, if you want a dual screen setup, then you are typically not under the same time-pressure to get it working (i.e. there is not a room of people sitting there waiting for you), so it's usually less of a problem if it takes longer to configure a dual desktop. But automatically cloning the laptop screen onto the VGA out, as soon as the cable is plugged in, is going to the correct default action around 95% of the time.
Changed in xorg: | |
importance: | Undecided → Wishlist |
Changed in xorg: | |
status: | New → Confirmed |
This has been suggested and attempted several times already.
The problem is that, as I understand it, the way monitors work, they don't send an "I'm here!" signal to the computer that a handler can be attached to.
So, the alternate approach is to have some bit of code periodically poll the video card's outputs to see if anything is connected. And several people have had this idea independently, in X, KDE, GNOME, and elsewhere. Unfortunately, the BIOS call to do this generates a tiny lag in the system, which users note as a "flicker". The way this is typically implemented using xrandr calls also produces xrandr output in Xorg.0.log's, which bloats the file fairly quickly. So needless to say, each of those attempts ended up being reverted.
So that's why automatic detection on plug-in hasn't been possible so far. It is a very, very well known issue. Maybe someone will come up with a more clever solution some day, but it's not a trivial problem.
As far as the other various issues when plugging in monitors, yeah. Lots of known issues. See http:// en.opensuse. org/GNOME/ Multiscreen as one list I happen to have open in another window right now. Binary drivers seem to show the breakages more frequently than open source drivers, but I don't think there is any configuration that could be considered perfect. A few other issues I'm tracking:
* Need way to add new modes when they're not listed #283986
* Secondary monitor's max resolutions limited to LVDS's maximum 310366
* If disconnect while suspended, X doesn't realize the external monitor is gone. 217968
Anyway, as you can see, while the problem seems like a pretty obvious issue, it is actually a whole amalgam of different hard-to-fix issues. I do appreciate the time you've taken to write up this well written summary of the problem in general; trust me just about all of us X guys wince with you when seeing all the problems people have with projectors.
What I would suggest is instead of a wishlist bug, that you file a blueprint on projector support, and link to relevant bug reports for the specific problems that need solved. The reason I suggest this is not because I don't like wishlist bugs, but because there are many different individual bugs and blueprints provide a superior mechanism for tracking that. Thanks ahead of time.