Functional System Requirements
Horizon UI
The Horizon UI is the wizard-style user interface component of Project Horizon. The system takes the input of the user and creates a HorizonScript. The resultant HorizonScript is either executed on the running system when started in an installation environment, or saved for later use when started in a runtime environment.
System Initialisation
Functional Requirements
UI.Early.LoadFirmware
If the user has specified to load firmware in the installation environment, the system shall install the linux-firmware package to the installation environment before eudev is started.
UI.Early.DetectGfx
The system shall detect all usable graphics adaptors present in the computer.
UI.Early.NoGfx
If there are no usable graphics adaptors present, the system shall display a message that installation cannot continue, and allow the user to login to a virtual TTY or reboot the computer.
UI.Early.MultiGfx
If multiple graphics adaptors are present, the system shall attempt to determine which graphics adaptor has a monitor attached. If the determiniation is that multiple graphics adaptors have monitors attached, or it is indeterminiate which adaptor has a monitor attached, then the system shall prompt the user to choose which graphics adaptor to use for installation.
User Language Selection
Prerequisites
UI.Language.Prerequisites
The system must have more than one language translation available for use.
Functional Requirements
UI.Language.List
The system shall present the User with a list of natural languages, in the form of: "Install Adélie using English", "Installer Adélie en français".
UI.Language.Button
For this screen only, the system shall present the "Next" button as a single right-facing arrow. The system shall not present the Cancel button on this screen.
UI.Language.Enable
When the User chooses a language from the list, the system shall enable the Next button to be clicked.
HorizonScript Keys
Script.Key.language
language — The locale identifier of the chosen language.
Initial Introduction
Functional Requirements
UI.Intro.Describe
The system shall present the User with a greeting message including a high-level overview of the installation process. The system shall reassure the user that the installation process will not modify any data until the final step.
UI.Intro.Elements
The system shall describe the UI elements common to each screen, including the Help button, the Back/Next buttons, and the Cancel button.
UI.Intro.Tools
The system shall allow the User to start a tool from the following list before beginning the installation.
A terminal.
An external partition editor.
A lightweight Web browser.
Firmware Setup
Prerequisites
UI.Firmware.Prerequisites
The system must have firmware support compiled in.
Functional Requirements
UI.Firmware.Prompt
The system shall ask the User whether or not to load binary firmware, stressing that security-sensitive systems must not choose this option.
UI.Firmware.Load
If the User chooses to load binary firmware, the system shall add the APK Fission repository and the linux-firwmare package to the installed environment.
HorizonScript Keys
Script.Key.firmware
firmware — Whether to load firmware.
Networking Setup
Prerequisites
UI.Network.Prerequisites
The system must have at least one non-loopback network interface detected by the kernel.
Package and Package Set Selection
Functional Requirements
UI.Packages.SimpleSel
The system shall allow the user to choose from one of three preset package sets, or to customise the packages installed.
UI.Packages.SimpleSel.Standard
The system shall allow the user to choose the Standard preset, which uses adelie-base-posix as an anchor package, and includes the firefox-esr, libreoffice, and thunderbird packages, and the kde and x11 metapackages.
UI.Packages.SimpleSel.Notebook
The system shall allow the user to choose the Notebook preset, which includes the Standard preset and additional power management tools (UPower, pm-utils).
UI.Packages.SimpleSel.Minimal
The system shall allow the user to choose the Minimal preset, which uses adelie-base as an anchor package, and includes lxqt-desktop, featherpad, netsurf, xorg-apps, xorg-drivers, and xorg-server packages.
UI.Packages.SimpleSel.Custom
The system shall allow the user to choose to customise the packages installed on their computer.
Horizon Runner
The Horizon Runner is the component of Project Horizon that configures a computer to match an input HorizonScript.