KarmicBootExperienceDesignSpec

Differences between revisions 1 and 50 (spanning 49 versions)
Revision 1 as of 2009-06-25 14:13:24
Size: 4466
Editor: 81-65-197-159
Comment:
Revision 50 as of 2009-11-12 18:17:50
Size: 12942
Editor: 72-254-192-38
Comment: Removed the OS Switcher, as it's not part of the current roadmap
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/LoginExperience
 * https://wiki.ubuntu.com/DesktopTeam/Specs/Karmic/ShutdownAndRestartExperience
 * https://wiki.ubuntu.com/FoundationsTeam/Specs/KarmicUpdatesOnShutdown

<<TableOfContents(3)>>

= 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

==== 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}}


== Boot Sequence with Timeout Exception ==

If there is an X-startup timeout, the fallback graphical splash screen should be displayed, until the X session is ready. The fallback splash screen design should match the standard splash screen, with the only exception of no hint area being present.
 
[[attachment:boot-sequence-exception.svg|Boot Sequence with Automatic Login – UI flow (download SVG)]]

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



=== Transitions ===

==== BIOS > Bootloader > Graphical Boot Splash ====
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. The graphical boot splash should fade in from black over 0.3s. Mouse cursor should be disabled in graphical boot splash.


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

The OS Selector should fade in over 0.3s.



==== Graphical Boot Splash > GDM Greeter ====

The boot splash should fade out over 0.3s revealing the GDM greeter when the greeter is fully drawn and ready to use.



==== Graphical Boot Splash > Desktop Session ====

The boot splash should fade out over 0.3s revealing the user's desktop when all desktop elements are fully drawn and ready to use.



==== GDM Greeter > Graphical Boot Splash > Desktop Session ====

GDM greeter should fade out over 0.3s and the Graphical Boot Splash should appear with the text "Logging in..." at the bottom of the screen, until the desktop session is ready. The desktop should fade in over 0.3s when it's fully drawn and ready to use.



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

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

'''Note:''' mouse cursor should be disabled (hidden) during the graphical boot splash sequence.

=== Background color/gradient ===

Any combination of colors and gradients can be used, as the full X stack is 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) ===

Animated elements should enforce the impression of responsiveness and reliability of Ubuntu.



=== 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.

=== Layout Rules ===

==== Background artwork ====

'''Resolution'''

Background artwork should be supplied in the following resolutions (in pixels):
 * 2560x1600
 * 1920×1200
 * 1680×1050
 * 1440×900
 * 1280×1024
 * 1024x768
 * 800x600


'''Scaling and cropping rules'''

The background artwork should never be scaled up or down, neither horizontally nor vertically.

The artwork should always be position centrally on the screen, using the nearest matching resolution that is either the same size as the screen or larger.

==== Ubuntu logo and throbber ====

'''Position'''

Ubuntu logo should be positioned in the center of the screen horizontally and 25% from the top of the screen vertically:

{{attachment:logo-positon.png}}

Throbber should be positioned in the center of the screen horizontally and the vertical center of the throbber should be positioned 34% from the top of the screen vertically:

{{attachment:throbber-position.png}}

'''Size'''

The logo and throbber assets should be picked appropriately to the current screen resolution using the following pattern:

 * _small assets for screens<1280px wide
 * _medium for >=1280 and <1600
 * _large for >=1600 and <2560
 * _xtra_large for >=2560


== 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 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 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:

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

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

Boot Sequence with Timeout Exception

If there is an X-startup timeout, the fallback graphical splash screen should be displayed, until the X session is ready. The fallback splash screen design should match the standard splash screen, with the only exception of no hint area being present.

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

boot-sequence-exception.png

Transitions

BIOS > Bootloader > Graphical Boot Splash

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. The graphical boot splash should fade in from black over 0.3s. Mouse cursor should be disabled in graphical boot splash.

Graphical Boot Splash > Graphical OS Selector

The OS Selector should fade in over 0.3s.

Graphical Boot Splash > GDM Greeter

The boot splash should fade out over 0.3s revealing the GDM greeter when the greeter is fully drawn and ready to use.

Graphical Boot Splash > Desktop Session

The boot splash should fade out over 0.3s revealing the user's desktop when all desktop elements are fully drawn and ready to use.

GDM Greeter > Graphical Boot Splash > Desktop Session

GDM greeter should fade out over 0.3s and the Graphical Boot Splash should appear with the text "Logging in..." at the bottom of the screen, until the desktop session is ready. The desktop should fade in over 0.3s when it's fully drawn and ready to use.

Graphical Boot Splash

Standard graphical boot splash will consist of the following elements:

boot-splash-wireframe.png

Note: mouse cursor should be disabled (hidden) during the graphical boot splash sequence.

Background color/gradient

Any combination of colors and gradients can be used, as the full X stack is 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)

Animated elements should enforce the impression of responsiveness and reliability of Ubuntu.

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.

Layout Rules

Background artwork

Resolution

Background artwork should be supplied in the following resolutions (in pixels):

  • 2560x1600
  • 1920×1200
  • 1680×1050
  • 1440×900
  • 1280×1024
  • 1024x768
  • 800x600

Scaling and cropping rules

The background artwork should never be scaled up or down, neither horizontally nor vertically.

The artwork should always be position centrally on the screen, using the nearest matching resolution that is either the same size as the screen or larger.

Ubuntu logo and throbber

Position

Ubuntu logo should be positioned in the center of the screen horizontally and 25% from the top of the screen vertically:

logo-positon.png

Throbber should be positioned in the center of the screen horizontally and the vertical center of the throbber should be positioned 34% from the top of the screen vertically:

throbber-position.png

Size

The logo and throbber assets should be picked appropriately to the current screen resolution using the following pattern:

  • _small assets for screens<1280px wide

  • _medium for >=1280 and <1600

  • _large for >=1600 and <2560

  • _xtra_large for >=2560

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 Sequence with Kernel Panic – UI flow

Download SVG

  • boot-sequence-kernel-panic.png

Kernel Panic screen (wireframe):

kernel-panic.png

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)