GnomeUserInterface

Revision 5 as of 2005-11-03 22:42:58

Clear message

Summary

UbuntuExpress - GNOME user interface

A user interface for the UbuntuExpress installer.

A user interface component, written in Python, which will drive the installation process. It will ask questions of the user, and invoke backend routines to act on the user's choices.

Rationale

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, although both the frontend and the backend need significant work before meeting our requirements.

Use cases

Scope

Design

Installation experience is theater.

Invocation

  • The Live CD desktop should contain an "Install Ubuntu Permanently" icon. (Wording TBC.)
  • The installation window should not be full-screen.

Language and introduction

The first page of the installer lets you choose your language, and displays an explanatory blurb in the selected language: "Installing permanently will let you run Ubuntu at full speed and without the CD." (The bootloader lets you select the language on x86 but not PPC.)

Keymap

Personal information

  • What is your name?
  • Choose a password
  • 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.

Timezone and location

  • Choose the city nearest to you, for timezone
    • map
  • allows faster software updates -- closer mirrors.

Partitioning

See UbuntuExpress/PartitioningTool.

Hostname?

Possibly not. From DHCP?

Progress information

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.

[:ColinWatson: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.

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

  • Move debconffilter from oem-config into debconf proper.
  • TODO

Code

Data preservation and migration

Outstanding issues

BoF agenda and discussion

Future work

  • "Who will be using this computer?" -- multiple names at once, to encourage use of individual accounts.
  • Transfer home folder -- copy non-dot-files (and fonts).