Anaconda/UX Redesign

= Subpages =

Development / Testing

 * Work List - things you could be working on
 * Testability - what works
 * UX Questions - have a question about how the UI should handle something? log it here so we don't lose track
 * Error Messages - error messages from the F16 UI, with notes on the context and how maybe better to handle them

Design Document

 * Discussion - notes from IRC brainstorming sessions with rationale, etc. on various decisions
 * Design Comments 1 - feedback from physical posting of mockups

Ideas / Brainstorms / Mockups
Whiteboards... mockup ideas... sketches... diagrams... brainstorms.. whatever :)
 * Testing Plan new
 * Syslinux whiteboard
 * Anaconda Visual Design Whiteboard
 * Anaconda Language-Keyboard Design Whiteboard
 * Anaconda Storage Re-initialization Whiteboard
 * Anaconda sudo-by-default Whiteboard
 * Location in Anaconda Whiteboard
 * Anaconda Comic
 * http://duffy.fedorapeople.org/app%20design/anaconda/comic/anaconda-comic_1.png
 * Source: http://duffy.fedorapeople.org/app%20design/anaconda/comic/anaconda-comic_1.svg

Whiteboard Directory

Fedora 14 Install Process

 * Fedora 14 Live Media Install Process - a screen-by-screen walkthrough of the LiveMedia install process.
 * Fedora 14 DVD Install Process - a screen-by-screen walkthrough of the DVD install process.
 * Current Install Process Analysis - analysis of the walkthroughs, as well as some questions & answers with the Anaconda technical team.

= Resources =
 * clumen's ui tech notes
 * dcantrell's writeup of other OS installers
 * James Laska's list of supported Anaconda paths
 * October 2010 devel-list thread
 * clumen's dialog list]

= Goals =
 * 1) make the defaults work such that you can just click next all the way through
 * 2) reduce the number of questions to just the important stuff.

= Where does choice happen? =


 * 1) Different spins
 * 2) Boot menu option (default=easy and an "advanced" option)
 * 3) Selection screen when anaconda starts
 * 4) "advanced" buttons in the anaconda pages
 * 5) PackageKit post-install

= Questions =
 * Does live media allow to choose language for the installation? (Does the language choice during the USB stick bootup affect installer language?)
 * Yes. Choosing a language in gdm makes anaconda use it and it becomes the installed system's default. I installed f14 from a live usb in Spanish and that's the default lang now. --Ivancjimenez 21:56, 9 November 2010 (UTC)
 * Some better fonts & control over syslinux's appearance might be nice. gfxboot (by the SuSE folks) seems to enable this. Is it something reasonable to consider trying? http://syslinux.zytor.com/wiki/index.php/GFXBoot.c32
 * Haven't really considered it; willing to try it (pjones)
 * Update We took a look and hpa does not recommend using gfxboot. Instead, we can definitely work with syslinux's theming to get it looking nice. See http://mairin.wordpress.com/2010/11/18/fedora-installation-user-experience-improvements-syslinux/
 * Can you opt-out of firstboot?
 * Yes, you can in the kickstart file. However, if you opt-out of first boot and don't create a user in the kickstart file, you will not be able to use graphical log-in because GDM forbids root logins.
 * You can get a functional system without firstboot, however.

= Various User Issues = suggesting the locale or timezone, please make sure to not force it, especially for default language.)
 * Picking user location is tedious. Shipping database of locations that becomes quickly stale.
 * Possible to query online server for updated location data via geoip? (privacy?) (One note on this one, if you want to adopt using geo location stuff for
 * Does the db include ipv6 addresses?
 * "I remember we used to have much better dialog (the one with zoom on europe - select city). But I also know, that we use system components for some dialogs and this is one of them... so this is not part of Anaconda, but of system-config-date."
 * "I still miss being able to select my timezone, rather than a city. As a resident of Texas, selecting America/Chicago always makes me feel dirty for some reason.  ;-)"
 * "Just try to select on blind map without country frontiers Prague (the capital of Czechia). I was born in Prague (so I should know where it is ... but it is hard on blind map) and I think my hands are not shaking yet, but to find a milimeter exact position of mouse (or IBM Thinkpad pointer-thingy) which is Prague (and not Vienna, Budapest, Bratislava, or Berlin) is job which makes me disgusted every time. IMHO, the cursor in the first step should be a big rectangle with which I would randomly click to select big chunk of Europe roughly somewhere around Central Europe and then I would have map with country boundaries and visible cities I could select from."
 * Virtual machine install issues
 * "Don't ask about setting the clock when machine is known to be a VM with a reliable clock source like KVM pvclock - One big improvement might be a big selection up front that says "This looks like a VM image, do you want me to select the default options for a VM install".
 * In the case of virtualization we know that we just created a brand new blank disk with no existing data. Ideally either anaconda can detect that its a blank disk (all zeros), or have a command line arg that can be passed to it, so virt-install could tell it to unconditionally write a new partition table.
 * "have the virtualization management use tools (guestfish and friends) to initialize, partition and format the disks (hopefully aligned properly!)."
 * Starting Anaconda up (Live Image method)
 * "It looks like a button, but it behaves unlike a button. I have (several times, but then I'm stupid) clicked it, it highlights, I wait, I wait some more, and it hasn't done anything. Because it's not a button, it's a desktop icon, and for reasons lost to the Lords of GNOME _those_ sorts of buttons have to be double-clicked."
 * "In the Ubuntu 1010 live CD, the first screen is two buttons, which are something like: [ Try Ubuntu out now ]   [ Install Ubuntu ] and they are buttons.  You click them (once) and they do what they say."
 * "Live CD installer requires manual reboot from non-obvious menu -Why doesn't the installer just reboot? You're assuming here someone who has used GNOME and Linux before.  Most people will have no idea what to do, I guess many will assume that the installation finished and now they are using the completed and installed system and thus lose their work."
 * Adding a dialog stating this fact at the end of the install would be usefull. Ubuntu does this.  Just say "You need to restart you computer to use your freshly installed copy. [Restart] [Continue with Live CD]" (these two are buttons).
 * Extraneous screens
 * "Blank first page of installer with 'Next' button is unnecessary and confusing"
 * "Remove unnecessary 'automatic login' step" (livecd)
 * "Installer asks for keyboard again, even though I already selected it"
 * "Get rid of firstboot step, and ask questions in parallel with disk formatting / copying / installation"
 * "Don't display license in firstboot -- it's not necessary and the license shown doesn't apply to all the software"
 * "Don't bother asking about smolt stats -- either always submit them or never submit them"
 * Storage screens
 * "ATA QEMU HARDDISK is the only choice and should be automatically selected"
 * "Confusing/frightening 'REINITIALIZING WILL CAUSE ALL DATA TO BE LOST' when in fact this is the correct step for all users"
 * "Confusing/frightening 'Write changes to disk' screen when this is the correct step for all users"
 * "While formatting disk, multiple dialog boxes are rapidly opened and closed"
 * Progress bar
 * "No accurate progress bar covering the entire install - I mean there is no progress bar that starts at 0% when the installation starts, and ends at 100% when the installation is finished, and moves at an approximately constant rate. You might debate when does an installation 'start,' but in anaconda the bar currently doesn't include things like formatting the disk which most people would consider to be a part of the installation process."
 * If the installer would install in parallel to the user answering questions, maybe a progress bar across the bottom, colour coded and possibly accompanied by an animated icon to indicate the actual install progress. Think of how streaming web video players show how much of the video is cached.  As the user answers questions a gray bar forms across the bottom of the window/screen and when the bar has filled the width of the window, the user has finished answering all the questions.  Opt-in questions like smolt uploading or firstboot-type questions could go here.  If they're not answered here, they're answered at firstboot.  As anaconda actually does the install steps like partitioning and formatting, the gray bar gets filled in green.  If anaconda needs more information to continue, the green changes to yellow and stops advancing.  If there is some error, it turns red.  Animated icons could accompany the bar colour for further disambiguation.  For example, activity = green bar with package install animation, waiting for input = yellow bar with question mark icon, and error = red bar with exclamation point.  Alternatively, a running dog animation and a sitting dog icon (with head tilted to the side, facing the user) might be less ambiguous. (2010-11-16 Thub)
 * Every user thinking they are advanced and running into issues
 * "Making "advanced" only a choice at the beginning of a 10 step process is a non-starter and leads to the problem you describe above. If instead there were "Advanced Options..." in each step along the way that could be opened/closed at will, that would allow users to explore the advanced options without worrying that they made the "wrong choice" way back at the beginning of the 10 step process, whether or not they actually end up using the advanced options."

= Unsorted User Complaints =
 * 1) "Don't take it personally, but I think the quality of the installer is quite low. Functionality that does not work (I BZ'ed my latest frustration in https://bugzilla.redhat.com/show_bug.cgi?id=637811), error messages are lacking/incorrect (sorry, did not BZ it, will next time it happens, but it was about inability to get an image from a HTTPS site) and there's PLENTY of room for functionality improvement (just filed my usual frustration - https://bugzilla.redhat.com/show_bug.cgi?id=641910). As this is the first impression the user gets of the product, its quality and polish is of utmost importance. geolocation and stuff are nice, but not as important."
 * 2) jlaska 15:00, 16 October 2010 (UTC) - There are a lot of related dialog windows that pop-up during the installer.  For example, notification that the currently installed operating system isn't upgradable, encrypted device passphrase entry, partitioning confirmation, many pop-ups presenting status while walking the list of partitioning operations, reading repodata.  Can these pop-ups be reduced or combined in some cases?  Some random thoughts ...
 * 3) partitioning progress - combine all partitioning steps into a single progress dialog whose progress is a percentage of all partitioning steps and the text in the dialog describes the current operation, rather than many dialogs for with a title for each operation.  I'm thinking of something more like the progress view during package installation (but as a dialog)
 * 4) Combine related dialogs - Combine the passphrase entry dialog with the Are you sure you want to partition? dialog.  It's odd having the two dialogs appear back-to-back when formatting encrypted devices, can they be combined into a single dialog?
 * 5) Change from dialog to step - Convert some dialogs into steps?  This suggestion competes with the general rule/interest in reducing the number of steps/screens in the installer, but I often wonder whether the information conveyed in a dialog would make more sense in the main application as a screen or step.  I don't have anything specific ... other than the suggestion below ...
 * 6) Partitions containing unsupported upgradable OS's - this dialog is confusing for me.  I like the information it conveys, but I feel it's out of place/unexpected when it is presented to the user.  It makes sense from a development perspective, as the dialog is presented after scanning the partitions on disk, but I don't think the user is expecting that operation next, so the dialog (for me) is a bit of a surprise.  Would the information listed in this dialog make more sense on the Install or upgrade screen?  Meaning, show the install or upgrade screen even if unsupported upgradable OS's are found.  But list them as unsupported under the list of upgradable OS's?  It seems like an extra dialog for which we already have a screen intended to convey this information.  Perhaps a nice tooltip over each of the unsupported upgrade options explaining why it's unsupported?
 * 7) Configure network... - I love this support, and kudos for integrating it with .  I don't think the fine grained control it allows is fully understood yet.  I wonder if we can further improve the integration by embedding  instead of popping it up as a dialog?  I'm thinking about how  embeds  (at least I think it does, could be wrong).  Right now, it's clear that  is a different application entirely.  I wonder if by embedding it (instead of starting it as a new window) might help force thinking about ways to smooth the integration between the two components?  So on that installer screen, you get a System name (aka hostname) text box, and then an expandable section for Advanced networking which when clicked, expands to the  content inside the screen?  Again, maybe not the best fit, but the suggestion is more about ways to improve the integration between the two components so it's clear the user is configuring/enabling networking for the install environment and the installed system.  Maybe just some well phrased text prior to the Configure network... button would do?
 * 8) * rvykydal: is written in C so it can't be embedded (although it could be possible to add gobject introspection into nm-c-e). I agree that user should be made aware that the configuration applies both to installer environment and target system. See  Missing_GUI_pieces and  Anaconda_UX_redesign.
 * 9) The screen where the install actually takes place has a Fedora or a Red Hat logo (in case of RHEL install).  Before the install starts, though, a dialog box appears with a progress bar that sits right on top of the logos.  The progress bar can either be integrated with the installing packages progress bar or the dialog box be moved around so that the logos aren't obstructed.

= Suggestions from other installers =
 * "start disk formatting / copying / installing in parallel with asking user questions"
 * a intermediate target that might be easier to reach in the interim: avoid or reduce all situations where user needs to answer questions, then has to wait for something to finish (like partitioning and formating, which can take quite a while), and then has yet again has to answer more questions, as that these "do something; wait; do something; wait" is what makes installing so annoying for a lot of people (20101016, ThorstenLeemhuis)
 * "downloads updates in parallel too"
 * "uses IP geolocation to guess the user's timezone and keyboard settings (it's been 100% correct for me each time)"
 * "suggests a username and hostname based on the user's real name (Mac OS X's installer also does this -- it's a nice touch)"
 * "Your name is entered (Chris Lumens) and from it you should get a hostname (chris-lumens-fedora-desktop.local) as well as a presentation name ("Chris Lumens' Fedora Desktop") which could be used for things like services being advertised through avahi, or even the default name for the Bluetooth adapters. See xdg-hostname on Freedesktop.org. I'd definitely like to see something like that move forward so people can have nice names for their Bluetooth adapters on the machines, and remove the need for me to show a text entry to change that name in gnome-bluetooth."
 * Ubuntu 10.10 installer screencast: http://www.youtube.com/watch?v=higI04jG6R8

= Use Cases =
 * Offline installation
 * l10n / non-English speakers (see Test_Day:2010-09-16_AnacondaTranslationKeyboard)
 * "Very difficult to select non-US language and keyboard"
 * "Back button selects US English keyboard, even though I have now specified UK keyboard *twice*"
 * keyboard shortcuts / no mouse
 * install of virt machines
 * Live image
 * "I believe the Ubuntu installer under discussion is the live installer. Like Fedora, there is no package selection involved there. Ubuntu gains considerable simplicity by having a separate installer app for live images and making that its default installer - I'm no expert, but I think the 'advanced' installer you can use for network installs and custom package selection and LVM and RAID and all that stuff is essentially Debian's installer, and is a completely different experience to the Ubuntu installer."
 * Dual-boot (second neighbor or first neighbor)
 * "user wants to either replace the current System completely or install the distribution into free space on his HD and but into either the old or the new installed system."
 * text-mode