Detailed Description

The initial-setup application will be started during the first boot of a newly installed Fedora desktop. It walks the user through a
few essential setup setups:

Show EULA/license screens (not sure if we really need this for Fedora, but the initial-setup application will support showing licenses/EULAs in a generic way)

Get on the network

Create a local user account or connect to an enterprise system

Set the system time/location

Optionally, show legacy firstboot screens

Set up online accounts, such as gmail or exchange

The first few of these steps supersede equivalent firstboot functionality, and we expect that initial-setup will replace firstboot for the
desktop spin. In contrast to firstboot, which

runs halfway through the graphical boot

uses a different environment and

ends up on the login screen,

initial-setup will

replace the login screen (only for the first boot),

use the same environment as the regular desktop and

smoothly transition into the user session

We also want to offer a 'tour' of the GNOME 3 desktop at the end of the setup tasks, to help new users find their way in GNOME 3.

The gdm mode of running an application instead of the login screen, with the option to smoothly transition into a user session may
also be used to run the 'try-or-install?' application on the live cd, before starting the liveuser session. Doing things this way will
allow us to offer a language choice for the liveuser session in the 'try-or-install?' application (which is something we've lost when
we switched to autologin for the liveuser).

Benefit to Fedora

We will provide an improved and smoother initial experience for new users of the Fedora desktop, and let them configure relevant parts of GNOME so that they end up on a fully functional desktop after going through the initial setup. In addition, the install experience
of the desktop spin may be improved.

gnome-shell needs a 'kiosk' mode that is suitable for use in this scenario (DONE)

affected packages

gdm

gnome-shell

firstboot

the 'tour' part needs to be designed and implemented

later on, the gdm integration can to be made flexible enough to accommodate the livecd 'try-or-install' use case

How To Test

Boot a desktop livecd. Verify that you first see the 'try-or-install' application. Choosing 'try' should smoothly transition to the liveuser sssion, similar to the F17 livecd experience. Choosing 'install' should run the installer.

Boot a freshly installed desktop system for the first time. Verify that you don't end on the login screen, but see the initial-setup application.

Verify that all the screens of the initial-setup application function as expected and the settings are persisted into the newly created user account

Reboot the system again. Verify that you don't get the initial-setup application again, but instead go to the login screen (or autologin, depending on the choices made when creating the user account)

Touch the file /etc/gdm/run-initial-setup and reboot. initial-setup should run again

Change /etc/gdm/custom.conf to InitialSetupEnable=False and restart gdm. Check that gdm now ignores the /etc/gdm/run-initial-setup file and does not go into the initial-setup screen