MultipleMonitors

Disclaimer This specification is still a work in progress. This paragraph will be removed once it's finalized.

Specification for Multi-Monitor Use-cases in Xubuntu

Boot Process

Ubuntu's multiple-monitors UX spec defines multi-head experience during the boot process as follows: "The main boot-up screen is shown on the primary display. A secondary screen is shown on all other displays, to provide feedback to the user that Ubuntu has detected them." This seems like a sensible default. (Note: At the moment (<=12.04) we're showing plymouth's bootscreen mirrored to a secondary screen, which results in rescaling – definitely not ideal.) The only alternative scenario that would make sense is a laptop in a docking station, where you'd only want the bootscreen on the secondary display. Since this scenario is impossible to detect but a user-choice it could be made an option.

Greeter / Login

The greeter is currently shown on both screens in mirrored-mode (like the boot-splash), same downsides as mentioned in the previous section (scaling, confusing at first sight). Since we never know whether external displays are switched on or where they reside, the login-screen should only be shown on the primary display. (Note: Ubuntu wants to enable users to switch the greeter to a secondary display, however I think this is over-the-top.)

login.png

Session

Display Hotplugging

When a new display gets connected in a running session, a small dialog/notification (the socalled --minimal dialog) should appear to inform the user that the display was detected and can be set up/enabled for use. See the section "Minimal Dialog" below.

When displays are disconnected, the system should switch to a sensible fallback configuration for the remaining displays immediately (no --minimal dialog). When one display is disconnected, the configuration should remain the same, minus the disconnected display. Otherwise saved settings should be queried and if none are found, a fallback mode should be engaged (most likely xrandr --auto).

Presentation Mode

This is a very typical and wide-spread usecase. The --minimal dialog should allow users to quickly switch to the presentation mode, but it should also be more configurable through the display settings dialog. Since use-cases differ in presentation mode, the main benefit should be to supress potential disruptions, i.e. adjust power-settings (e.g. no screensaver, no display standby) and disable notifications.

Laptop Docking

This is also a rather typical use-case. The laptop-lid is closed and the laptop is connected to external peripherials (keyboard, mouse, monitor) to be used like a desktop. There should be a way to set this mode quickly and easily. Settings include: * Adjust power settings (lid closed action > do nothing, switch off display) * Switch off internal display * Make external display primary If display profiles/presets will be implemented (see section below), laptop docking could be a simple profile to switch to.

Persistent Configuration

This is already handled by xfconf gracefully. If there is an external display it remembers the settings (e.g. if set to extended desktops) but falls back to only primary display if the external display is not found. Still, it could be useful to have various presets for different scenarios, see next section ("Profiles").

Profiles

Display profiles could be useful for a laptop-scenario, where you would want to be able to quickly switch to a different mode. E.g. using your laptop at work with an external 19 monitor, you want to extend your desktop to it. Having a 24 screen at home, you'd probably only want to use that and turn off the primary display. Since there is no consistent way of detecting these different use-cases, simple display-profiles could enable users to quickly switch to the one that fits their current use-case.

Keyboard Shortcuts

Some multimedia-keyboards and most laptops have buttons dedicated to display hotplugging/configuration. We could extend our media-buttons daemon (xfce4-volumed) to a more generic multimedia-buttons daemon that also catches shortcuts for display hotplugging and calls the respective display setting (extend, mirror, only external, only internal). Furthermore we can bind the display-settings-dialog to a default shortcut. (Ubuntu uses Super+P.)

Settings Dialogs

Minimal Dialog

The minimal dialog should only be called automatically when a new display is plugged in. It should provide users quick access to the most-used modes:

  • Extend desktop to the left
  • Extend desktop to the right
  • Mirror displays

Furthermore it should contain a button linking to the display-settings dialog (see next section), in case the user wants to configure the new display more in depth (e.g. laptop docking). An additional checkbox should enable/disable presentation mode (see section above).

Theoretically (and according to Ubuntu's Multi-Monitor Spec) it's possible to (heuristically) detect whether the connected device is a TV or a Projector or an external monitor. We could try to use this information to set the window-title (at least).

minimal.png This design currently features three 128px icons for the three basic modes, a tickbox for presentation-mode and a button to launch the display settings dialog.

Display Settings Dialog

This dialog will enable the user to change all the settings of all connected displays. The set of options basically depends on what RandR and the display drivers offer.

Improve Xfce's dialog

To improve Xfce's dialog one would have to implement the "extended desktop"-mode of RandR, i.e. positioning the monitors "left-of" and "right-of". (Theoretically there's also "above" and "below", but in most scenarios multiple monitors are aligned horizontally.) The "mirror displays"-checkbox would make the combobox for choosing the position of the screen insensitive. display_simple.png

Mockups

dialog.png

Xubuntu/Roadmap/Specifications/Quantal/MultipleMonitors (last edited 2012-06-19 13:08:33 by ochosi)