KDE Visual Design Group/Calamares Design Project

From KDE Community Wiki

Concept

See KDE HIG for guidelines on this design approach.

Calamares Vision

For recreational computer users who would like to install Linux on their existing computer, Calamares is an installer that makes it simple and fail-safe to install Linux. Calamares makes it easy understand what will be done at every step without overwhelming the user with detailed technical information, unless explicitly requested.

Users with more technically advanced installation needs will find those supported by Calamares as well, although not visible by default. Where available, Calamares exposes advanced features on demand.

Personas

(Selected from the pre-defined KDE personas)

  • Susan, 34, Recreational user. While Susan seldom uses her computer for work, it has become an essential part of her social life. With her computer, she can be creative and spread this creativity in the world. She chats with her friends, shares music, playlists and other media, creates videos and uploads them to her web space, and runs a blog with her own style. She can't imagine a life without her laptop. Still, she is a fun person and does not want to worry about technical details. She expects her machine to work.
  • Secondary Persona - Santiago, 34, Decision Maker. Santiago runs a medium-sized business for electric installations. For him, technology needs to be comfortable and make him feel smart. As a manager with engineering background, Santiago's major work is to negotiate with customers. However, to avoid costs, he administrates the small network in the company himself, including a file server and fifteen PCs for his office clerks. He loves comfort and does not like to dive into manuals or use the command line to set up the small network. The system has to be reliable and easy to use, so his employees get along with it.

Scenario

Susan has an existing computer with Windows on it. She would like to install Manjaro Linux alongside Windows after observing her geeky sister Viola using it. Some of her important videos files are on a Windows partition. Viola creates a bootable usb stick with Manjaro linux gives it to Susan to insert it into her computer, reboot and just follow the instructions. Susan follows the instructions provided by the installer. When Susan is finished, she has a fully functional Manjaro Linux with access to all her important video files and all the tools she needs ready to use.

  • Main Task - Install Linux on computer: Infrequent, & critical
  • Critical Sub-Tasks - Partitioning / formatting - This is the most (and perhaps only) critical sub task, as it possibly destroys existing data, might be hard to revert in the future (e.g. chosen file system) and requires technical decisions / knowledge.

Organization

Command Structure

The essential commands are:

  • Set the information required for each installation step/module
    • Set user info (name, username, password, picture, etc.)
    • Set language
    • Set keyboard layout
    • Set up partitions
    • Set location and timezone
    • Select applications to install
    • Others
  • Move to the next installation step
  • Go back to the previous installation step
  • Go to any installation step
  • Begin the installation process
  • Cancel the installation before or during the installation process

This meets the criteria for a simple command structure.

Content Structure

The content is a just collection of installation steps - a flat content structure. Any number of installation steps/modules can be created downstream by distributions. Each installation step has:

  • A name
  • A collection of fields containing data necessary for that installation step
  • May have sub-tasks/steps/pages.
  • May have advanced options.
  • An icon - this one may be challenging since installation steps/modules can be created by downstream and there is no way of knowing ahead of time what those modules might be. We could provides canned set of icons that covers many of the common installers steps.

UI Patterns

Layout Design

When the next step transitions to another module the "next" button shows the name of the next module. Otherwise when the next step is just another page within the existing module the "next" button just shows "Next". So the first image shows the layout for a single page module or the last page of a multipage module and the second image shows the layout for a page that's not the last page in a multipage module.

Applying to a couple of example modules, it might look like this:

Implementation Targets

  • For the November 2014 project milestones, perhaps just the "container" design (top and bottom panels) can be implemented.
  • The detailed module designs could perhaps be implemented as part of the longer term project goals.