GnomeUserInterface

Differences between revisions 20 and 21
Revision 20 as of 2005-11-09 01:20:51
Size: 11447
Editor: 201_220_103_66-WIFI_HOTSPOTS
Comment: final tweaks before review
Revision 21 as of 2005-11-09 04:33:25
Size: 11591
Editor: 201_220_103_66-WIFI_HOTSPOTS
Comment: clarifications
Deletions are marked like this. Additions are marked like this.
Line 15: Line 15:
The current installer is ugly and confusing (especially in the partitioning stage). We want people to be amazed at how easy and pleasant the installation experience is. We also want them to be able to get work done while Ubuntu is installing. The current installer is ugly and confusing, especially in the partitioning stage). We want people to be amazed at how easy and pleasant the Ubuntu installation experience is. We also want them to be able to get work done while Ubuntu is installing.
Line 101: Line 101:
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. 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. This box is hidden by default using an expander control.
Line 103: Line 103:
Clicking "Finish" closes the installer window, and opens a separate progress window. Clicking "Install" closes the installer window, and opens a separate progress window.
Line 107: Line 107:
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 either too much or too little for most systems. The progress window contains a single progress bar that fills up only once. Partitioning is allocated 10% of the size of the progress bar; this may be tweaked if it is either too much or too little for most systems.
Line 141: Line 141:
RobJCaskey RobJCaskey:
Line 143: Line 143:
 * I think the hwole computer name screen should go away and computer name either hostname be set to ubuntu and ZeroConf's to FirstUsers's Computer or just put an option to specify the Zero Conf hostname along with username and password. Most users neither know nor care what a host or a zeroconf is.
  * To use your OS 9 example, its installer ''did'' ask for a computer name. -- MatthewPaulThomas
 * I think the whole computer name screen should go away and computer name either hostname be set to ubuntu and ZeroConf's to FirstUsers's Computer or just put an option to specify the Zero Conf hostname along with username and password. Most users neither know nor care what a host or a zeroconf is.
  * To use your OS 9 example, its installer ''did'' ask for a computer name. But I agree this is the most unnecessary step in the UbuntuExpress installer. -- MatthewPaulThomas

Summary

The UbuntuExpress installer appears as a window on the live CD desktop. It asks for your language, keyboard layout, 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

The current installer is ugly and confusing, especially in the partitioning stage). We want people to be amazed at how easy and pleasant the Ubuntu installation experience is. We also want them to be able to get work done while Ubuntu is installing.

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

Invocation and overall design

The Live CD desktop contains an "Install Ubuntu Permanently" icon, consisting of an arrow overlaid on the Ubuntu logo. If there are any other icons on the desktop, the installer icon is 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 equal-sized buttons, "◀ Back" (text left-aligned, activated by Alt+Left) and "Next ▶" (text right-aligned, activated by Enter or Alt+Right). At the first step, "◀ Back" is replaced by "Cancel" (text centered, with no icon, activated by Escape); at the last step, "Next ▶" is replaced by "Install" (text centered, with no icon, activated by Enter). 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 US English. This page also displays a welcome message and explanatory blurb in the selected language; the message is 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: "For accessibility help while installing, press the Space key now."

Keyboard layout

The next step is asking for the keyboard layout, so that answers to later questions can be typed successfully. The default choice is the most likely keymap for the selected language.

If there is time: When the list appears, it is scrolled so that the default choice is as close as possible to the middle of the listbox.

attachment:keyboard.jpg

attachment:keyboard-guess.jpg

Personal information

attachment:personal.jpg

Until it is changed manually, the login name field is constantly updated to be equal to the first word in the person's name, converted to lower case and cropped if necessary to the maximum number of characters allowed. When the person first changes the field manually, it stops dynamically updating.

If "Next ▶" is activated while one or more of the fields have impossible values, no alert appears. Instead, errors are indicated next to the relevant fields with a mini red error icon ⊝ and a brief description of the error, and the first errant field should be focused (for mismatching passwords, this means the first password field). For example:

  • [                                    ] ⊝ You must enter a name.BR [                        ] ⊝ You must enter a login name.BR [•••••••    ][••••••    ] ⊝ Passwords must match.

If there is time: The name and login name fields should actively prevent invalid values, by ignoring impossible characters and by ignoring characters after the 16th in the login name field. The password field should be more passive, reporting errors next to the field but not preventing them; otherwise people may not notice the prevention, and think they have entered a password different from the one that was accepted.

If there is time: If a password is entered that is too short, is found in a dictionary, or is easily derived from the real name or login name, this should be indicated using a mini warning icon and brief warning text ("Too short." or "Too obvious.") next to the password fields, as soon as focus leaves the first password field. This message is subordinate to the "Passwords must match." error message.

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

Computer name

attachment:computer-name.jpg

The computer name defaults to the hostname from DHCP/DNS if available, or "ubuntu" otherwise. We could default to "Name of Person’s Computer", but that would be bad according to [http://rfc.net/rfc1178.html RFC 1178] (and boring according to [http://rfc.net/rfc2100.html RFC 2100]).

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 quote marks and brackets stripped, and other punctuation and spaces converted to dashes; 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.

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. (Changing the timezone changes "Nearest city:" to some city in that timezone.)

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. This box is hidden by default using an expander control.

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

Progress information

The progress window contains a single progress bar that fills up only once. Partitioning is allocated 10% of the size of the progress bar; this may be tweaked if it is either too much or too little for most systems.

attachment:progress-demo.jpg

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?
    • => Why not both. Have it play during install, and allow people to watch it from the livecd as well, to get a feel of the system. -> pop up a notify balloon about a "feature introduction/preview"?

ØivindHoel:

  • The demo should also be translatable through rosetta. If we opt for images with some form of text layered on top, the xcf source of these should be available to translators, and a web interface for providing translated images should be implemented.

RobJCaskey:

  • Seconded on Matthew's point. A full-screen installer feels safer, but it's not a big deal. OS 9 installed without a full-screen installer and noone was scared by it.
  • I think the whole computer name screen should go away and computer name either hostname be set to ubuntu and ZeroConf's to FirstUsers's Computer or just put an option to specify the Zero Conf hostname along with username and password. Most users neither know nor care what a host or a zeroconf is.

    • To use your OS 9 example, its installer did ask for a computer name. But I agree this is the most unnecessary step in the UbuntuExpress installer. -- MatthewPaulThomas

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