KarmicBootExperienceDesignSpec

Differences between revisions 1 and 21 (spanning 20 versions)
Revision 1 as of 2009-06-25 14:13:24
Size: 4466
Editor: 81-65-197-159
Comment:
Revision 21 as of 2009-07-28 15:33:26
Size: 15199
Editor: yttrium
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was copied from DesktopExperienceTeam/KarmicBootExperienceSpec
Line 8: Line 9:
== Summary ==

This specification documents the changes planned for Karmic to the various /user visible/ steps of the boot sequence of the Ubuntu system, including KMS support at various level in the software stack, and work on ensuring smooth transitions between these steps.

By extension, other aspect of the user experience are covered in specifications linked to this one, namely:
 * the splash screen shown during system boot
 * the OS switcher, allowing the user to select another operating system to boot
 * the fallback "splash", that includes running file system checks or querying the user for a password to unlock a encrypted filesystem
 * the "login experience", that includes autologin, the gdm greeter, and also logout and session switching

These changes are also depending on the FastBoot effort lead by ScottJamesRemnant in the Foundation Team.

== Release Note ==

Release notes, based on the above description and impacted packages, will be detailed as the integration progresses.

== Rationale ==

The current boot experience feels rather jerky with a lot of abrupt transitions between different system states. With the advent of KMS as a generally stable technology, it is now possible to reconsider the full "boot experience" and turn that into a more pleasing and visually consistent experience.

One of the main goals is to get rid of flicker caused either by resolution changes (KMS) or by visual flashes due to screen clears, replacing that with more modern color/opacity transitions for example.

== User stories ==

Joe turns on his notebook. He sees the manufacturer's logo and then his system starts booting. After a few seconds, he sees a small animation to let him wait while the system automatically opens his user session in the background. As soon as his session is ready, the system smoothly fades-in the

Jane has a slow machine with a lot of disks that are hard to check and mount. When she boots, the system displays a small spinner after 3 seconds, as it determines that the boot sequence is going to be longer than usual.

Bob would like to use the other operating system installed on his machine. He turns on his computer, waits for a few seconds, then sees a graphical message on his Ubuntu system screen to invite him to press "Esc" if he wants to interrupt the Ubuntu boot and switch to another version. He presses 'Esc' and the system presents him a set of alternative boot choices, including other kernel version and legacy OSes. If he were to select the legacy OS, Ubuntu would shutdown and instruct the computer to reboot (but only for this time) directly into the legacy OS. But Bob would rather try the new experimental kernel he just installed, so he selects kernel-2.6.3X and his system shutdowns and reboots (for this time only) with the new kernel he selected.

== Assumptions ==

This spec has been designed for conventional x86 systems. Parts of it may probably also apply to other hardware architectures.

== (User Interface) Design ==

== (Technical Design and) Implementation ==

The implementation is split into the different dependent blueprints:
 * http://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-xorg
 * http://blueprints.launchpad.net/ubuntu/+spec/dx-karmic-gdm-greeter
 * http://blueprints.launchpad.net/ubuntu/+spec/dx-karmic-os-switcher
 * http://blueprints.launchpad.net/ubuntu/+spec/foundations-karmic-kms-console

Code changes or migration issues and strategies are detailed within the different blueprints.

== Test/Demo Plan ==

The test plan will be documented, based on the user stories above, at http://testcases.qa.ubuntu.com/Plans/KarmicBootExperience

== Unresolved issues ==

 * Plymouth vs usplash: for displaying splash screens in case of issues or as a fallback scenario when the boot sequence is longer than usual, we're still considering both alternatives. They both have advantages and inconvenients
 * User testing: initial feedback indicates that users can accept 3-4s of blank screen time during at the beginning of the boot sequence, but that may require further testing to validate this assumption.

== BoF agenda and discussion ==

----
CategorySpec
This document is a part of DesktopExperienceTeam/KarmicBootExperienceSpec
Related specs: https://wiki.ubuntu.com/DesktopTeam/Specs/Karmic/ShutdownAndRestartExperience, https://wiki.ubuntu.com/FoundationsTeam/Specs/KarmicUpdatesOnShutdown

<<TableOfContents(2)>>

= Terminology =

"Boot Experience" is a set of events and interactions that the user can experience between switching the computer on and accessing the login screen (or the desktop session if auto-login is enabled).
 
= Introduction – General Guidelines =

== Boot Experience Should Be: ==

=== Guiding ===
 * 1st Run: a friendly introduction to the system
 * Can teach the user about the computer
 * Highly accessible, easy to use for everyone
 * Familiar, personal

=== Fast ===
 * Efficient, giving the user impression of saving time, rather than wasting time
 * Lightweight and "breezy"

=== Simple ===
 * Not too crowded
 * Clean and user friendly
 * Easy to navigate
 * Seamless
 * Care free

=== Welcoming ===
 * Trustworthy
 * Friendly
 * Inviting
 * No technical jargon
 * Not scary (esp. during 1st time use)

=== Reassuring ===
 * Flicker-free, giving the feeling of stability and control
 * Reliable and safe

=== Making the computer "mine" ===
 * Self-expression, feeling of ownership even on shared machine
 * Personalised

=== Inclusive ===
 * Should fit everyone
 * Flexible

=== Reinforcing/introducing the brand ===
 * Set the mood of Ubuntu
 * Give a good first impression
 * Convey a strong brand message
 * Be beautiful

== Motto ==
"Light Ubuntu inside your machine"

== The Boot Experience Will... ==
...guide the user through a fast, simple startup which feels welcoming and reassuring. The user will feel in control of his computer throughout.

= Design Guidelines =

== BIOS/EFI ==
Whenever EFI is available, the screen should be filled with flat color as soon as possible. ''Color TBC.'' If standard BIOS is used, we should encourage manufacturers to not reset to text mode after the initial splash screen.



== Bootloader ==
The Bootloader '''should not have any visible representation''', unless the User holds down the Shift key, which will trigger the text-mode boot selector.



==== Example of a text-mode boot selector (wireframe): ====
{{attachment:boot-selector.png}}



== Standard Boot Sequence with GDM Greeter ==
[[attachment:boot-sequence-gdm.svg|Boot Sequence with GDM Greeter – UI flow (download SVG)]]

{{attachment:boot-sequence-gdm.png}}



== Standard Boot Sequence with Automatic Login ==
[[attachment:boot-sequence-autologin.svg|Boot Sequence with Automatic Login – UI flow (download SVG)]]

{{attachment:boot-sequence-autologin.png}}



=== Transitions ===

==== BIOS > Bootloader > Graphical Boot Splash (Usplash on KMS) ====
The bootloader is silent, therefore should not have any visible representation. If EFI Bios is available, the screen should be filled with flat color corresponding with the desired boot splash background. Fade effects not available in Usplash.



==== Graphical Boot Splash > Graphical OS Selector ====

Fade effects are not available in Usplash.



==== Graphical Boot Splash (Usplash) > GDM Greeter ====

The transition should be seamless and use quick fade effects when possible.



==== Graphical Boot Splash (Usplash) > Desktop Session ====

The transition should be seamless and use quick fade effects when possible.



==== GDM Greeter > Desktop Session ====
The transition should be seamless and use quick fade effects when possible.



== Graphical Boot Splash ==
Standard graphical boot splash will consist of the following elements:

{{attachment:boot-splash-wireframe.png}}



=== Background color/gradient ===
Flat colors and linear gradients are available. The styling should enforce the Ubuntu brand and create a smooth and pleasing experience, coherent with the overall desktop look&feel.



=== Ubuntu branding/artwork ===
Ubuntu branding should be used subtly, avoiding supersizing, patterns, etc''.''



=== Animated element(s) ===
Basic animation available (png sequence), the spinner should be lightweight and elegant.



=== Hint area ===
Hint area is a portion of the screen where various useful hints can be displayed. This area is defined relatively to the currently set screen resolution and has constant XY percentage coordinates. The hints are always context-specific and inform the user about the actions that are currently executable (using the pattern: to achieve X, press/click Y).

Hints '''should not''' inform about status changes, errors or any other external or user-triggered events.



==== Appearance ====
Appearance of the hint should match the styling of Notify-OSD notification bubbles. Hint should be displayed as text, using sentence case only, no icons are allowed.



==== Behaviour ====
The hint should fade in immediately after the user enters the screen for the first time in the session. There can be only one hint per screen. Each hint should only be displayed once during each session. If the user has executed an action suggested by a particular hint, this hint should not appear again. The hint should fade in over 300ms and stay on the screen for no longer than 3000ms. It should then fade out over 300ms.



== Boot Sequence With Encrypted File System ==
Whenever there is an encrypted file system, the user should be presented with the graphical interface that would enable entering the password and decrypting the system. The interface should also be able to inform the user if the password was incorrect or whether the Caps Lock key is on.

[[attachment:boot-sequence-encrypted-fs.svg|Boot With Encrypted File System – UI flow (download SVG)]]

{{attachment:boot-sequence-encrypted-fs.png}}



==== Encrypted file system – password entry screen (wireframe) ====
{{attachment:encrypted-fs.png}}

==== Encrypted file system – wrong password notification screen (wireframe) ====
{{attachment:encrypted-fs-error.png}}

=== Appearance ===
The appearance should be simple and elegant and use the styling that would seamlessly correspond with the graphical boot splash and OS Selector. Only flat colors and linear (horizontal or vertical) gradients can be used and no transparency is available.

=== Behaviours ===
Only basic keyboard interactions are possible, pointing devices are not available at this stage.
The user can only type in his password and confirm by pressing Enter.

If the password is incorrect, the following message should appear:
"The password you have entered was incorrect. Please try again."

The password field should be automatically reset and re-focused.



== Boot with Graphical OS Selector ==
If the user presses ESC during the boot splash sequence, the OS Selector will be triggered (possible flows in the diagram below). Unless the user decides to interrupt the current boot process by booting another OS, it will continue in the background, all the way through to the login screen or user session (if automatic login is enabled).

[[attachment:boot-sequence-OS-selector.svg|OS Selector – UI flow (download SVG)]]

{{attachment:boot-sequence-OS-selector.png}}



=== OS Selection Screen ===
Example screen (wireframe):

{{attachment:OS-selector-2.png}}

''Note: 12 options per screen max, to match the text-mode boot selector (needs confirming)''

OS Selection Screen enables the user to:

 * view the list of all versions of all OSs (e.g. list of different Ubuntu kernels + other OSs)
 * reboot into another OS



==== Appearance ====
Appearance of the OS Selector should ensure that legacy OSs are easily recognizable at the top of the list. Only basic shapes and flat colors and linear gradients can be used, it is also possible to use one background image.

It is important to clearly highlight the currently booting OS (at the top of the list) with the animated spinner.



==== Behaviours ====
Keypresses:

 * Selecting the OS: up and down arrow keys
 * Booting selected OS: Enter
 * Switching the pages if the list is longer than one page: PageUp/Page Down
 * Exiting the screen: ESC or Enter if the currently selected OS is booting in the background

Pointing devices:

 * not available

Automatic timeout:

 * If the user does nothing for 20 seconds, the OS Switcher should be closed automatically.

==== Transitions ====

 * No fade effects possible in Usplash.


== Boot Splash With Kernel Panic/Boot Failure ==
If there is Kernel Panic during the boot splash sequence, a warning message should be displayed, along with the kernel messages. The user should be informed about the need to reboot. The Kernel Panic message should have consistent appearance regardless of whether the user is booting or is already logged in.



==== Boot Sequence with Kernel Panic – UI flow ====
[[attachment:boot-sequence-kernel-panic.svg|Download SVG]]

 . {{attachment:boot-sequence-kernel-panic.png}}



==== Kernel Panic screen (wireframe): ====
{{attachment:kernel-panic.png}}

                                 



== Boot Sequence With Kernel Oops/Warning During Boot ==
If a Kernel Oops occurs during the boot splash sequence, the user should be informed about the error without interrupting the boot process.



==== Boot Sequence with Kernel Oops – UI flow ====
[[attachment:boot-sequence-kernel-oops.svg|Download SVG]]

{{attachment:boot-sequence-kernel-oops.png}}



==== Kernel Oops screen (wireframe): ====
{{attachment:kernel-oops.png}}

                                  



==== Appearance ====
The error message styling should provide good legibility, without being too prominent on the screen.



==== Behaviours ====
Error message should fade in over 100ms and stay on the screen for 3000ms or the remaining boot splash sequence time, whichever is shorter. It should fade out over 300ms if the boot splash sequence hasn't concluded before the 3000ms timeout or in sync with the boot splash screen if it has.



== Boot Sequence With Disk Check ==
[[attachment:boot-sequence-disk-check.svg|Disk Check – UI flow (download SVG)]]

{{attachment:boot-sequence-disk-check.png}}



==== Disk Check screen (wireframe) ====
{{attachment:disk-check.png}}

                                   



==== Disk Check With errors (wireframe) ====
{{attachment:disk-check-errors.png}}

                                   



==== Disk Check fail (wireframe) ====
{{attachment:disk-check-fail.png}}

=== Appearance ===
The appearance should be simple and elegant and use the styling that would seamlessly correspond with the graphical boot splash and OS Selector. Only flat colors and linear (horizontal or vertical) gradients can be used and no transparency is available.

=== Behaviours ===
Only basic keyboard interactions are possible, pointing devices are not available at this stage.

Keypresses: ESC cancels the disk check.

                                          

                                   
= Comments =

Go to DesktopExperienceTeam/KarmicBootExperienceDesignSpec/Comments
  • Launchpad Entry: karmic-boot-experience

  • Created: 2009-05-25

  • Contributors: Ubuntu Platform, DX and Design teams

  • Packages affected: see dependencies below

This document is a part of DesktopExperienceTeam/KarmicBootExperienceSpec Related specs: https://wiki.ubuntu.com/DesktopTeam/Specs/Karmic/ShutdownAndRestartExperience, https://wiki.ubuntu.com/FoundationsTeam/Specs/KarmicUpdatesOnShutdown

Terminology

"Boot Experience" is a set of events and interactions that the user can experience between switching the computer on and accessing the login screen (or the desktop session if auto-login is enabled).

Introduction – General Guidelines

Boot Experience Should Be:

Guiding

  • 1st Run: a friendly introduction to the system
  • Can teach the user about the computer
  • Highly accessible, easy to use for everyone
  • Familiar, personal

Fast

  • Efficient, giving the user impression of saving time, rather than wasting time
  • Lightweight and "breezy"

Simple

  • Not too crowded
  • Clean and user friendly
  • Easy to navigate
  • Seamless
  • Care free

Welcoming

  • Trustworthy
  • Friendly
  • Inviting
  • No technical jargon
  • Not scary (esp. during 1st time use)

Reassuring

  • Flicker-free, giving the feeling of stability and control
  • Reliable and safe

Making the computer "mine"

  • Self-expression, feeling of ownership even on shared machine
  • Personalised

Inclusive

  • Should fit everyone
  • Flexible

Reinforcing/introducing the brand

  • Set the mood of Ubuntu
  • Give a good first impression
  • Convey a strong brand message
  • Be beautiful

Motto

"Light Ubuntu inside your machine"

The Boot Experience Will...

...guide the user through a fast, simple startup which feels welcoming and reassuring. The user will feel in control of his computer throughout.

Design Guidelines

BIOS/EFI

Whenever EFI is available, the screen should be filled with flat color as soon as possible. Color TBC. If standard BIOS is used, we should encourage manufacturers to not reset to text mode after the initial splash screen.

Bootloader

The Bootloader should not have any visible representation, unless the User holds down the Shift key, which will trigger the text-mode boot selector.

Example of a text-mode boot selector (wireframe):

boot-selector.png

Standard Boot Sequence with GDM Greeter

Boot Sequence with GDM Greeter – UI flow (download SVG)

boot-sequence-gdm.png

Standard Boot Sequence with Automatic Login

Boot Sequence with Automatic Login – UI flow (download SVG)

boot-sequence-autologin.png

Transitions

BIOS > Bootloader > Graphical Boot Splash (Usplash on KMS)

The bootloader is silent, therefore should not have any visible representation. If EFI Bios is available, the screen should be filled with flat color corresponding with the desired boot splash background. Fade effects not available in Usplash.

Graphical Boot Splash > Graphical OS Selector

Fade effects are not available in Usplash.

Graphical Boot Splash (Usplash) > GDM Greeter

The transition should be seamless and use quick fade effects when possible.

Graphical Boot Splash (Usplash) > Desktop Session

The transition should be seamless and use quick fade effects when possible.

GDM Greeter > Desktop Session

The transition should be seamless and use quick fade effects when possible.

Graphical Boot Splash

Standard graphical boot splash will consist of the following elements:

boot-splash-wireframe.png

Background color/gradient

Flat colors and linear gradients are available. The styling should enforce the Ubuntu brand and create a smooth and pleasing experience, coherent with the overall desktop look&feel.

Ubuntu branding/artwork

Ubuntu branding should be used subtly, avoiding supersizing, patterns, etc.

Animated element(s)

Basic animation available (png sequence), the spinner should be lightweight and elegant.

Hint area

Hint area is a portion of the screen where various useful hints can be displayed. This area is defined relatively to the currently set screen resolution and has constant XY percentage coordinates. The hints are always context-specific and inform the user about the actions that are currently executable (using the pattern: to achieve X, press/click Y).

Hints should not inform about status changes, errors or any other external or user-triggered events.

Appearance

Appearance of the hint should match the styling of Notify-OSD notification bubbles. Hint should be displayed as text, using sentence case only, no icons are allowed.

Behaviour

The hint should fade in immediately after the user enters the screen for the first time in the session. There can be only one hint per screen. Each hint should only be displayed once during each session. If the user has executed an action suggested by a particular hint, this hint should not appear again. The hint should fade in over 300ms and stay on the screen for no longer than 3000ms. It should then fade out over 300ms.

Boot Sequence With Encrypted File System

Whenever there is an encrypted file system, the user should be presented with the graphical interface that would enable entering the password and decrypting the system. The interface should also be able to inform the user if the password was incorrect or whether the Caps Lock key is on.

Boot With Encrypted File System – UI flow (download SVG)

boot-sequence-encrypted-fs.png

Encrypted file system – password entry screen (wireframe)

encrypted-fs.png

Encrypted file system – wrong password notification screen (wireframe)

encrypted-fs-error.png

Appearance

The appearance should be simple and elegant and use the styling that would seamlessly correspond with the graphical boot splash and OS Selector. Only flat colors and linear (horizontal or vertical) gradients can be used and no transparency is available.

Behaviours

Only basic keyboard interactions are possible, pointing devices are not available at this stage. The user can only type in his password and confirm by pressing Enter.

If the password is incorrect, the following message should appear: "The password you have entered was incorrect. Please try again."

The password field should be automatically reset and re-focused.

Boot with Graphical OS Selector

If the user presses ESC during the boot splash sequence, the OS Selector will be triggered (possible flows in the diagram below). Unless the user decides to interrupt the current boot process by booting another OS, it will continue in the background, all the way through to the login screen or user session (if automatic login is enabled).

OS Selector – UI flow (download SVG)

boot-sequence-OS-selector.png

OS Selection Screen

Example screen (wireframe):

OS-selector-2.png

Note: 12 options per screen max, to match the text-mode boot selector (needs confirming)

OS Selection Screen enables the user to:

  • view the list of all versions of all OSs (e.g. list of different Ubuntu kernels + other OSs)
  • reboot into another OS

Appearance

Appearance of the OS Selector should ensure that legacy OSs are easily recognizable at the top of the list. Only basic shapes and flat colors and linear gradients can be used, it is also possible to use one background image.

It is important to clearly highlight the currently booting OS (at the top of the list) with the animated spinner.

Behaviours

Keypresses:

  • Selecting the OS: up and down arrow keys
  • Booting selected OS: Enter
  • Switching the pages if the list is longer than one page: PageUp/Page Down
  • Exiting the screen: ESC or Enter if the currently selected OS is booting in the background

Pointing devices:

  • not available

Automatic timeout:

  • If the user does nothing for 20 seconds, the OS Switcher should be closed automatically.

Transitions

  • No fade effects possible in Usplash.

Boot Splash With Kernel Panic/Boot Failure

If there is Kernel Panic during the boot splash sequence, a warning message should be displayed, along with the kernel messages. The user should be informed about the need to reboot. The Kernel Panic message should have consistent appearance regardless of whether the user is booting or is already logged in.

Boot Sequence with Kernel Panic – UI flow

Download SVG

  • boot-sequence-kernel-panic.png

Kernel Panic screen (wireframe):

kernel-panic.png

Boot Sequence With Kernel Oops/Warning During Boot

If a Kernel Oops occurs during the boot splash sequence, the user should be informed about the error without interrupting the boot process.

Boot Sequence with Kernel Oops – UI flow

Download SVG

boot-sequence-kernel-oops.png

Kernel Oops screen (wireframe):

kernel-oops.png

Appearance

The error message styling should provide good legibility, without being too prominent on the screen.

Behaviours

Error message should fade in over 100ms and stay on the screen for 3000ms or the remaining boot splash sequence time, whichever is shorter. It should fade out over 300ms if the boot splash sequence hasn't concluded before the 3000ms timeout or in sync with the boot splash screen if it has.

Boot Sequence With Disk Check

Disk Check – UI flow (download SVG)

boot-sequence-disk-check.png

Disk Check screen (wireframe)

disk-check.png

Disk Check With errors (wireframe)

disk-check-errors.png

Disk Check fail (wireframe)

disk-check-fail.png

Appearance

The appearance should be simple and elegant and use the styling that would seamlessly correspond with the graphical boot splash and OS Selector. Only flat colors and linear (horizontal or vertical) gradients can be used and no transparency is available.

Behaviours

Only basic keyboard interactions are possible, pointing devices are not available at this stage.

Keypresses: ESC cancels the disk check.

Comments

Go to DesktopExperienceTeam/KarmicBootExperienceDesignSpec/Comments

DesktopExperienceTeam/KarmicBootExperienceDesignSpec (last edited 2009-11-12 18:17:50 by 72-254-192-38)