GnomeUserInterface

Differences between revisions 10 and 12 (spanning 2 versions)
Revision 10 as of 2005-11-05 22:16:25
Size: 6685
Editor: 241_220_103_66-WIFI_HOTSPOTS
Comment: fix keyboard mockup links
Revision 12 as of 2005-11-06 02:56:58
Size: 7999
Editor: 241_220_103_66-WIFI_HOTSPOTS
Comment: - duplicate text; + "Location" detail; + "Ready to install"; etc
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
 * '''Launchpad Entry''': https://launchpad.net/distros/ubuntu/+spec/ue-gnome-ui
 * '''Created''': [[Date(2005-10-31T16:34:49Z)]] by JaneWeideman
 * '''Contributors''': JaneWeideman, ColinWatson, MatthewPaulThomas
 * '''Packages affected''': `ubuntu-express`
 * '''Launchpad Entry:''' https://launchpad.net/distros/ubuntu/+spec/ue-gnome-ui
 * '''Created:''' [[Date(2005-10-31T16:34:49Z)]] by JaneWeideman
 * '''Contributors:''' JaneWeideman, ColinWatson, MatthewPaulThomas
 * '''Packages affected:''' `ubuntu-express`
Line 11: Line 11:
The UbuntuExpress installer interface appears as a window on the live CD desktop. It asks for language, keymap, your name, computer name, login name, password, timezone and location, and partitioning details. The interface is written in Python, invoking backend routines to act on your choices. The UbuntuExpress installer appears as a window on the live CD desktop. It asks for language, keyboard layout, your name, login name, password, the computer's name, your location and timezone, and partitioning details. The interface is written in Python, invoking backend routines to act on your choices.
Line 23: Line 23:
Installation experience is theater. The installer must wow reviewers, and give everyone a good impression of the system they are installing. Installation experience is theater. The installer must wow reviewers, and give everyone a good impression of the system they are about to use.
Line 33: Line 33:
=== Welcome to the Ubuntu installer === At the bottom right of the window is a pair of buttons, "◀ Back" (text left-aligned) and "Next ▶" (text right-aligned). At the first step, "◀ Back" is replaced by "Cancel" (text centered, with no icon); at the last step, "Next ▶" is replaced by "Install" (text centered, with no icon). These wording changes do not cause the buttons to jump about; they are wide enough for either wording at all times.
Line 35: Line 35:
The first page of the installer lets you choose your language. On x86, this defaults to the language choice that was made in the bootloader; otherwise, it defaults to English. It also displays a welcome message and explanatory blurb in the selected language (which eliminates the appearance of wasting time if you ''did'' choose the appropriate language in the bootloader). === Welcome ===

The first page of the installer lets you choose your preferred language, for the installation itself and for your Ubuntu account. On x86, this defaults to the language choice that was made in the bootloader; otherwise, it defaults to English. This page also displays a welcome message and explanatory blurb in the selected language, updated live as the selection changes. (This eliminates the appearance of wasting time if you ''did'' choose the appropriate language in the bootloader.)
Line 38: Line 40:

  Ready to install Ubuntu? Once you answer a few questions, Ubuntu can be installed on this computer so you can run the system at full speed and without the CD.

  Answering the questions should take about five minutes.
Line 57: Line 55:
 * What is your name?

 * What login name would you like?
  This is the name you will use when logging in to Ubuntu. If more than one person will use this computer, you can set up other accounts later.

The name defaults to the first word of the person's name, converted to lower case.

 * Choose a password (enter twice)
Until the login name field is first focused, it has a dyanmically updated value equal to the first word in the person's name, converted to lower case.
Line 72: Line 63:
 * What name would you like to give your computer?
   This name will be used if you make your computer visible to others on a network.

This defaults to the hostname from DHCP/DNS if available, otherwise "ubuntu".
This defaults to the hostname from DHCP/DNS if available, or "ubuntu" otherwise.
Line 85: Line 73:
 * Choose the city nearest to you, for timezone
  * map (Can we just highlight the country/timezone boundries on mouseover so you deon't select a city but a whole region? Lets try to avoid precision clicking. I would even prefer a dropdown for timezone to this. We could even suggest a time zone if an ntp server can be reached based off of their computer's clock.)
At a minimum, the map functions identically to that in the "Time zone" dialog of Gnome's "Time and Date" control panel.
Line 88: Line 75:
 * List of country-like entities (used for suggesting default keymaps, currencies, etc) ''Enhancements if there is time (for both the installer, and the "Time and Date" control panel itself):''
 * ''The map should not zoom in. The zooming is disconcerting, it's not particularly useful, and it's hard to work out how to zoom out again.''
 * ''Selecting a place in a particular timezone should highlight the whole area of the world that shares that timezone.''
 * ''The map should behave like a single-selection listbox: mousing down should highlight the selected timezone (and update the values of the controls underneath), and dragging should continue visibly changing the selection.''
Line 90: Line 80:
 * allows faster software updates -- closer mirrors.

''If time: Highlight the entire timezone on the map.''
Making a selection from any of the three controls -- the map, the "Nearest City:" combo box, or the "Timezone:" option menu -- changes the other two controls to match.
Line 98: Line 86:
''Future work: Let people transfer non-dot files and fonts from the home folder.'' ''Future work: Let people transfer (non-dot?) files from their home folder.''

=== Ready to install ===

attachment:ready.jpg

The final page summarizes the information entered in the previous steps, in a text box from which it can be copied for printing/e-mailing/etc.

Clicking "Finish" closes the installer window, and opens a separate progress window.
Line 104: Line 100:
A ''single'' progress bar should be displayed at the end. The progress window contains a single progress bar at all times. Initially, partitioning is allocated 10% of the size of the progress bar; this may be tweaked if it is too much for most systems or too little for most systems.
Line 106: Line 102:
TBD: Work out how to allow cancelling installation of language packs. ( Skip ) During installation of language packs, and ''only'' during that stage, a "Skip" button is present next to that text. This lets people avoid installing the language packs, without requiring a question to be answered about them.
Line 108: Line 104:
Show some sort of demo (Flash v3?) during the installation progress. Put this in an expander (expanded by default), so people can see just the progress if they want. A demo of Ubuntu's benefits (Flash v3?) is shown during the installation process, à la Windows 95. The demo is in a section with an expander (expanded by default), so it can be collapsed for people who want to see just the progress.
Line 124: Line 120:
=== Data preservation and migration === == Discussion ==
Line 126: Line 122:
== Outstanding issues ==

== BoF agenda and discussion ==

== Future work ==
MatthewPaulThomas:
 * Using a non-fullscreen window for installing an entire operating system may be handy, but it also seems unusually understated. It's possible that this will be more disconcerting than convenient for most people.
 * A demo of Ubuntu's benefits would make in the installer if it was full-screen, but while it's just another window, why not make the demo a separate program that people can run independently of the installer instead?

Summary

The UbuntuExpress installer appears as a window on the live CD desktop. It asks for language, keyboard layout, your name, login name, password, the computer's name, your location and timezone, and partitioning details. The interface is written in Python, invoking backend routines to act on your choices.

Rationale

Use cases

Scope

Since we'll be doing a Qt-based interface as well for KubuntuExpress, the user interface must be cleanly separated from the functional installer backend. The [http://interactors.coop/~trunks/installer/ Guadalinex installer] already does this quite well, but both the front end and the back end need significant work to meet our requirements.

Design

Installation experience is theater. The installer must wow reviewers, and give everyone a good impression of the system they are about to use.

Invocation and overall design

The Live CD desktop shall contain an "Install Ubuntu Permanently" icon, consisting of an arrow overlaid on the Ubuntu logo. If there are any other icons on the desktop, the installation icon shall be the last one.

attachment:overall.jpg

The installation window is not full screen, but just big enough to show the largest page (the partitioning tool). The window has the title "Install Ubuntu", and is not resizable.

At the bottom right of the window is a pair of buttons, "◀ Back" (text left-aligned) and "Next ▶" (text right-aligned). At the first step, "◀ Back" is replaced by "Cancel" (text centered, with no icon); at the last step, "Next ▶" is replaced by "Install" (text centered, with no icon). These wording changes do not cause the buttons to jump about; they are wide enough for either wording at all times.

Welcome

The first page of the installer lets you choose your preferred language, for the installation itself and for your Ubuntu account. On x86, this defaults to the language choice that was made in the bootloader; otherwise, it defaults to English. This page also displays a welcome message and explanatory blurb in the selected language, updated live as the selection changes. (This eliminates the appearance of wasting time if you did choose the appropriate language in the bootloader.)

attachment:language.jpg

Future work: "To use accessibility features while installing, press the Space key now."

Keyboard layout

The next step is asking for the keymap, so that answers to later questions can be typed successfully.

attachment:keyboard.jpg

attachment:keyboard-guess.jpg

Personal information

attachment:personal.jpg

Until the login name field is first focused, it has a dyanmically updated value equal to the first word in the person's name, converted to lower case.

Future work: "Who will be using this computer?" -- multiple names at once, to encourage use of individual accounts.

Computer name

attachment:computer-name.jpg

This defaults to the hostname from DHCP/DNS if available, or "ubuntu" otherwise.

Initially, the field is restricted to ASCII characters. The name is used as-is for Avahi configuration, and a normalized version is used as the hostname. The hostname has spaces converted to dashes, and other punctuation stripped; this conversion is presented live during the input.

Future work: Provide some way of letting people enter the hostname manually.

Location

attachment:location.jpg

At a minimum, the map functions identically to that in the "Time zone" dialog of Gnome's "Time and Date" control panel.

Enhancements if there is time (for both the installer, and the "Time and Date" control panel itself):

  • The map should not zoom in. The zooming is disconcerting, it's not particularly useful, and it's hard to work out how to zoom out again.

  • Selecting a place in a particular timezone should highlight the whole area of the world that shares that timezone.

  • The map should behave like a single-selection listbox: mousing down should highlight the selected timezone (and update the values of the controls underneath), and dragging should continue visibly changing the selection.

Making a selection from any of the three controls -- the map, the "Nearest City:" combo box, or the "Timezone:" option menu -- changes the other two controls to match.

Partitioning

See UbuntuExpress/PartitioningTool.

Future work: Let people transfer (non-dot?) files from their home folder.

Ready to install

attachment:ready.jpg

The final page summarizes the information entered in the previous steps, in a text box from which it can be copied for printing/e-mailing/etc.

Clicking "Finish" closes the installer window, and opens a separate progress window.

Progress information

attachment:progress-demo.jpg

The progress window contains a single progress bar at all times. Initially, partitioning is allocated 10% of the size of the progress bar; this may be tweaked if it is too much for most systems or too little for most systems.

During installation of language packs, and only during that stage, a "Skip" button is present next to that text. This lets people avoid installing the language packs, without requiring a question to be answered about them.

A demo of Ubuntu's benefits (Flash v3?) is shown during the installation process, à la Windows 95. The demo is in a section with an expander (expanded by default), so it can be collapsed for people who want to see just the progress.

attachment:progress.jpg

Implementation

Since the Guadalinex team has already implemented a significant amount of this, we will use their work as a base. However, discounting minor user interface tweaks, the current code base has the problem that it duplicates both code and translatable strings from the installer, which causes problems such as desynchronisation of functionality with the installer (e.g. username/password validation in current ubuntu-express produces different results from the installer's validation code) and the loss of many existing translations of strings from the installer.

I believe that both issues can be solved by borrowing infrastructure from [:OEMInstaller:oem-config], where I had to address similar problems and did so using a debconf protocol filter: debconf-using code (e.g. installer code) can be run unmodified inside a wrapper that runs custom user interface code rather than a standard debconf frontend, and translated strings can be extracted directly from the debconf database. -- ColinWatson

Aside from that, a quick glance over the Guadalinex code suggests that its user interface has reasonably good separation between frontend and backend: the frontend asks all questions up-front and then runs widget-set-independent backend code that feeds answers into the debconf database and performs the installation proper. (Integration with oem-config may suggest answers reaching the debconf database while the frontend is running, but that's OK.)

Code

  • Move debconffilter from oem-config into debconf proper.

Discussion

MatthewPaulThomas:

  • Using a non-fullscreen window for installing an entire operating system may be handy, but it also seems unusually understated. It's possible that this will be more disconcerting than convenient for most people.
  • A demo of Ubuntu's benefits would make in the installer if it was full-screen, but while it's just another window, why not make the demo a separate program that people can run independently of the installer instead?

UbuntuExpress/GnomeUserInterface (last edited 2008-08-06 16:19:54 by localhost)