# Fedora Workstation Installer Needs This document is a summary of needs and requirements for the Fedora Workstation installer. It includes a combination of functional requirements and user experience design goals. ## User profiles While Fedora Workstation does target developers and more technical users, we also prioritise new Linux adopters. Ease of use by relatively users who don't have Linux expertise is therefore critical for the Fedora Workstation installer. ## First run desktop configuration When someone boots a Fedora image for the first time, there are a few things that need setting up straight away so they can interact with the device. This includes: * Connect a Bluetooth input device, if no other input devices are detected * Set the display language * Select a keyboard layout This needs to be the very first thing that happens. ## Support a live desktop session The live desktop session is important for Workstation. For it to work properly, the display language for the live desktop session needs to be set before it is started. (Currently, this is not possible, meaning that users cannot use the live session in a language of their choosing.) Note that, while supporting the live desktop is important, ideally the installer would not run as part of that live session, since this can cause problems for the installer itself. ## Scale to the workstation use case Workstation requires a much simpler installer than RHEL. The installer therefore needs to effectively scale down to fit Workstation's needs. Ideally, the blanks where RHEL options might appear would not be obvious. Likewise, the advanced or more complex functionality required by RHEL would not be visible. ## Straightforward disk configuration for our main use cases Installation experience is an important differentiator in the free Linux desktop space, particularly for new Linux adopters. To be competitive, Fedora Workstation must be at least as easy to install as other Linux distros. Since disk configuration is potentially the most complicated aspect of the installer, it is also the area where ease of use matters the most. The main disk configuration cases we need to support in Workstation are: * Overwriting a whole disk * Shrinking an existing OS and installing Fedora alongside with dual boot (needs to work for Windows installs) * Overwriting an existing Fedora installation, while preserving its /home partition or Btrfs subvolume For each of these cases, we need to offer users a direct path, presented in easy to understand terms. Workstation has other use cases that it needs to support, but where the need to offer a first class user experience is not so great. These include: * Shrinking an existing Linux installation and installing Fedora in the resulting free space * Installing Fedora while retaining arbitrary prexisting partitions TODO: what level of support do we need to provide for the following? * Take a dual boot machine, replace one OS and leave the other intact. * Install Fedora but split it over multiple disks. (Say one for / and one for /home.) * Install Fedora using filesystems other than Btrfs. * Arbitrary storage configurations. (Add/remove partitions, volumes, etc.) ## Support automated workstation installation This is primarily an issue for our virtual machine app, called Boxes, which has an “express install” feature (you specify a few details up front and then it installs the OS for you, without having to interact with the installer). See https://pagure.io/fedora-workstation/issue/85 . ## Other Some other aspects of a workstation installer to be aware of: * Since we support devices that have batteries, the installer needs to warn if the computer is not connected to the AC, before installation starts. * Workstation has its own initial setup assistant which runs as part of the first session after system installation. We have historically worked to avoid the installer and initial setup assistant repeating the same configuration tasks.