Try or Install - elementary/installer GitHub Wiki

Before we proceed, we should give the user the opportunity to try the OS without affecting their hardware, e.g. as a demo or for recovery purposes.

Try or Install screenshot

This screen should explain that the user can either install the OS or use Demo Mode, and that:

  1. Data from your previous operating system is unchanged in Demo Mode.
  2. Any changes made in Demo Mode will not be saved.
  3. Performance and features in Demo Mode may not reflect the installed experience.

This screen is also intended to be displayed if the user has logged out of Demo Mode (since we can reuse the previously-selected language and keyboard layout).

We give the user the opportunity to shut down here in case Demo Mode or installing is not actually what they want to to right now.

Install Type

Rather than create yet another screen, we can also use this view to pick an installation type. In addition to "Demo Mode," we always offer:

  1. "Clean Install" (erase everything and install the OS fresh, using sane defaults)
  2. "Custom" (manually pick partitions and filesystems)

Our OS

If we detect the device only has one copy of our OS on their drives, we can offer a few different options. But we need to know if it's the current release or a previous release.

Refresh

If they're on the same version of the OS that is being installed, we can also offer a "refresh" option. This means installing on the same drive as the previous version of the OS, but retaining their Home directory. There should not be any user configuration required in this case; we should reuse the same partitions and filesystems as their previous install. If a user needs more control, they can use the "Custom" option.

Upgrade

If the user is on a previous version of our OS, we should also offer an "upgrade" option. This is essentially the same as installing while retaining Home, but could become more advanced in the future. There should not be any user configuration required in this case; we should reuse the same partitions and filesystems as their previous install. If a user needs more control, they can use the "Custom" option.

Other OS

If the device has one copy of a different OS (Linux-based or otherwise), we should offer a "Dual Boot" option. This would allow the user to install our OS alongside the existing OS, and would require another view to choose the amount of storage to give the new OS.

If the device has only one OS but not enough empty space for dual boot, we should mark the option as insensitive and add a tooltip with "Not Enough Space".

Dual Boot

Multiple OSes

If the device has multiple OSes detected, we have the most complex situation. In order to simplify it for ourselves to start, we could just offer the same options as a clean drive ("Clean Install" and "Custom"). Eventually we could attempt to detect previous and current versions of our OS and offer the Upgrade and Refresh options as appropriate.

Replace

A potential unique option we've discussed for this case is also a "Replace" option. This would be like "Clean Install," but for a specific OS instead of a whole drive. The potential problem we foresee with this is knowing how to detect and treat OSes that are spread across multiple partitions.