BrightnessAndDisplays

Differences between revisions 17 and 18
Revision 17 as of 2014-06-19 09:05:37
Size: 9520
Editor: mpt
Comment: compacting
Revision 18 as of 2014-06-19 09:14:20
Size: 9552
Editor: mpt
Comment: + bug 1314672, bug 1289478
Deletions are marked like this. Additions are marked like this.
Line 30: Line 30:
The “Brightness” screen should contain only the “Display brightness” slider, and the “Adjust automatically” checkbox and its caption. The “Brightness” screen should contain only the “Display brightness” slider, and the “Adjust automatically” checkbox and its caption (bugs Bug:1314672, Bug:1289478).

On all form factors, you should be able to set the display brightness. Phones and tablets may be able to adjust brightness automatically to suit ambient light. All form factors should also let you configure external displays, either mirrored or as individual spaces for windows/surfaces.

Brightness

(X) not possible (./) defined Warning /!\ undefined

Use case

Phone

Tablet

PC

see current brightness level

(./) just look at the display

adjust brightness manually

(./) System Settings

Warning /!\

Warning /!\

set automatic adjustment

(./) System Settings

Warning /!\

Warning /!\

PC

We assume that any PC has a hardware brightness control, on either the keyboard or the display itself. And unlike sound volume, brightness does not need reassurance for troubleshooting purposes. Therefore, brightness should not have software UI as well; that would be redundant.

If you use a keyboard key to adjust brightness, a brightness notification bubble should appear.

Phone

brightness-settings-access.phone.png

phone-brightness.png

In System Settings, the “Brightness” icon should reflect the current brightness level.

The “Brightness” screen should contain only the “Display brightness” slider, and the “Adjust automatically” checkbox and its caption (bugs 1314672, 1289478).

The goal of the “Adjust automatically” setting is to maximize the average time you can use the device before feeling the need to adjust brightness manually. This is achieved by frequently adjusting the emitted brightness of the display based on the ambient brightness of the surroundings (bug 1328404). So there is a function representing the emitted brightness desired at each level of ambient brightness detectable by the light sensor.

phone-brightness-curve-automatic.png

Because different hardware has different light sensors and displays, this function should be settable based on the hardware model.

Because users have different preferences, the function should also be user-adjustable. This should be achieved by altering the display brightness manually while “Adjust automatically” is checked. Therefore, the “Display brightness:” slider should be sensitive regardless of whether “Adjust automatically” is checked or unchecked.

If it is checked and you adjust the brightness manually, the function that determines the automatic brightness should be adjusted such that, in future, the current ambient light value would result in your just-chosen brightness being chosen automatically (bug 1314678).

To achieve this, the function that generates emitted brightness E from the ambient brightness A should be a curve connecting from three to five coordinates of (A, E). Where Amin, Amax, Emin, and Emax are the minimum and maximum possible values:

  • If you (or the default values for the handset model) set Emin at Ap > Amin, the function should include E = Emin for AminAAp.

    brightness-curve-automatic-flat-minimum.png

  • If you (or the default values for the handset model) set Emax at Aq < Amax, the function should include E = Emax for Aq ≤ A ≤ Amax.

    brightness-curve-automatic-flat-maximum.png

  • If you manually set a brightness (Ar, Er) where any previously-set points exist with AAr and E > Er, those other points should be discarded from the curve, so that the screen does not brighten when surroundings dim.

  • If you manually set a brightness (As, Es) where any previously-set points exist with AAs and E < Es, those other points should be discarded from the curve, so that the screen does not dim when surroundings brighten.

    brightness-curve-automatic-discard-overbright.png brightness-curve-automatic-discard-overdim.png

  • If you manually set a brightness such that the set of coordinates includes more than one for which Amin < A < Amax and Emin < E < Emax, all of them except the newest one should be discarded, so that the curve is not too complex.

  • A new brightness curve should not be saved until you dismiss the brightness slider you are using (for example, by closing the indicator menu), so that a brief experiment does not obliterate a careful previous curve.

Displays

On the PC, System Settings should have a “Displays” panel with a diagram of the current display layout.

displays-pc.png

Errata: • “Scale for menu and title bars:” should be “Size of menu bar and title bars:”. • “Scale for window contents:” should be “Scale window contents:”.

Whenever “Mirror displays” is checked:

  • The heading for the display-specific settings should be “All displays”, and the switch should be both on and insensitive.
  • “Launcher placement” should be insensitive and set to “All displays”.
  • “Sticky edges” should be insensitive and set to Off.
  • The wording of the “Match Selected Display” button should be “Match Display”.

Whenever “Mirror displays” becomes unchecked, the controls that were insensitive because it was checked should return to their previous values.

Otherwise, the heading for the display-specific settings should be the name of the selected display, followed by a switch for whether that display is being used at all. Whenever only one display is detected, or whenever every other display is Off, the selected display’s switch should be both On and insensitive. Whenever a display’s switch is Off, “Rotation:”, “Resolution:”, “Size of menu bar and title bars:”, and “Match Selected Display” should be insensitive.

Under the “General options” header, “Launcher placement:” should have an item for “All displays”, then a separator if there are any other displays, then a color-swatched item for each detected display.

Whenever only one display is detected, “Sticky edges” should be both Off and insensitive. Whenever more than one display is detected, it should become sensitive and return to its previous value.

In future, “Launcher placement” and “Sticky edges” will join the other Launcher settings in a “Launcher & Menus” panel.

Scaling

Unfortunately three separate settings exist for scaling interface elements:

  • ui-scale for Unity elements — Launcher, menu bar, Dash, HUD, and window title bars;

  • scaling-factor for GTK applications;

  • text-scaling-factor for extra scaling of text in GTK applications, beyond that already provided by scaling-factor.

Ideally, we would combine these into a single slider that scales everything on the selected display. But to make things worse, while ui-scale is display-specific (so it can have different values when you connect a high-resolution notebook to a low-resolution projector), text-scaling-factor and scaling-factor are display-independent. This means that when you change the display you are focused on — for example, when you give a presentation — you will often need to change the application scaling to suit that display.

So whenever only one display is On, and its scaling-factor and text-scaling-factor match up with its ui-scale, the Displays panel should have only one slider, “Scale for interface elements:”, which adjusts all three scaling factors at once.

displays-pc-scale-everything.png display-pc-scale-all-the-things.png

But whenever multiple displays are On, or whenever one display is On but its scaling-factor and/or text-scaling-factor don’t match up with its ui-scale, the Displays panel should have two sliders, the display-specific “Size of menu bar and title bars:” (ui-scale), and the display-independent “Scale window contents:” (scaling-factor and text-scaling-factor).

displays-pc-scale.png displays-pc-scale-windows.png

Whenever you choose “Match Selected Display”, the “Scale window contents:” setting should change to match the “Size of menu bar and title bars:” setting, such that (for example) the text in an app’s context menus is exactly the same size as the text in the menu bar on that display.

This means that if only one display is on, with disparate scale settings so that two sliders are present, and you choose “Match Selected Display”, the two sliders and the “Match Selected Display” button should disappear, replaced by the single “Scale for interface elements:” slider.

BrightnessAndDisplays (last edited 2016-10-17 13:01:11 by mpt)