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.
User Language Selection
Description / Priority A User must determine what natural language they are most comfortable with using for installing Adélie Linux. The system shall allow the User to select their preferred natural language from a list of the languages to which the system has been translated. Priority: Medium.
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
Description / Priority The system shall provide the User with an overview of the installation process, and introduce common UI elements. A User may choose to run a tool or proceed with the installation.
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.
Input Device Configuration
Description / Priority A User may have a keyboard that is not the Linux default of US QWERTY. As such, a User must be able to choose a keyboard layout that matches their hardware.
Functional Requirements UI.Input.LayoutList The system shall present the User with a list of available keyboard layouts. UI.Input.ChooseLayout When the User selects a keyboard layout, the system shall load the keyboard layout and apply it. UI.Input.Test The system shall present an input box for the User to test their selected keyboard layout.
HorizonScript Keys Script.Key.keymap keymap — The identifier of the chosen keyboard layout.
Disk Partitioning Setup
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_firmware"> <title>Firmware Setup
Description / Priority
Prerequisites UI.Firmware.Prerequisites The system must have firmware support compiled in.
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_network"> <title>Networking Setup
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_sysmeta"> <title>System Metadata Setup
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_packages"> <title>Package and Package Set Selection
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_boot"> <title>Boot Setup
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_accounts"> <title>System Accounts Setup
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_writeout"> <title>Save HorizonScript
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_commit"> <title>Begin Installation
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_perform"> <title>Perform Installation
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="ui_finish"> <title>Installation Completion
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> </section> <section id="runner"> <title>Horizon Runner The Horizon Runner is the component of Project Horizon that configures a computer to match an input HorizonScript.
Locate HorizonScript
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="runner_net"> <title>Network Configuration
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> <section id="runner_execute"> <title>Execute HorizonScript
Description / Priority
Functional Requirements <para/> </formalpara> </section> </section> </section> </chapter>