citadel-tools/citadel-installer-ui
2020-10-09 01:45:30 -04:00
..
data Implemented an installer user interface and backend 2020-10-09 01:45:30 -04:00
src Implemented an installer user interface and backend 2020-10-09 01:45:30 -04:00
.gitignore Implemented an installer user interface and backend 2020-10-09 01:45:30 -04:00
Cargo.lock Implemented an installer user interface and backend 2020-10-09 01:45:30 -04:00
Cargo.toml Implemented an installer user interface and backend 2020-10-09 01:45:30 -04:00
README.md Implemented an installer user interface and backend 2020-10-09 01:45:30 -04:00

Citadel Installer UI design

The installer is required to run in Wayland but also perform privileged operations. This necessitated splitting the installer into the following pieces:

  • A user interface that can be run by a non-privileged user in their Wayland session
  • A back-end server that runs in the background to perform the privileged operations on behalf of the user

The user interface communicates with the back-end over DBUS. There are a simple set of messages/signals to initiate the install process and provide updates to the interface about the success/failure of each install stage.

Both the user interface can only be run in install/live mode. The user interface will start automatically when the computer is booted in install/live mode, however, the user can close the interface and test out the system in live mode to determine if it is compatible with their hardware, if they want to actually perform an install, etc. If the user decides to install the system, they can simply re-open the user interface while still in live mode.