This document proposes a mechanism for Desktop Environment (DE) selection within Agama. By introducing a selection strategy in the product metadata and enhancing the visibility of DE-related patterns, we aim to prevent accidental "text-mode" installations and improve the user onboarding experience.
Currently, Agama does not guide the user about the desktop selection. Selecting a desktop is easily overlooked, ending with an installed system which starts in text-mode. As a primary installation decision, the selection of the desktop should be visually prominent and easily accessible.
We propose adding a desktop_selection property to the product definition to define the enforcement policy. Additionally, individual patterns within user_patterns will use a desktop: true flag to identify which patterns populate the DE selection UI.
Desktop Selection Strategies:
optional: Suitable for server-oriented products. No warnings or alerts if a DE is not selected.suggested: The product suggests a DE. Displays an info alert in the summary and a confirmation prompt if none are selected.
Example tumbleweed.yaml:
id: Tumbleweed
desktop_selection: suggested
user_patterns:
- name: gnome
desktop: true # Identifies this pattern as a DE
selected: true # Allows the product to povide a default DE
- name: kde
desktop: true
- name: office # Standard pattern
The JSON configuration remains backward-compatible. The selected desktops are stored within the software.patterns array. No schema changes are required.
The Software section in the main overview will show the DE state:
- Success State: Lists the selected DEs clearly (e.g., GNOME Desktop).
- Warning State: If DE selection is
suggestedand none are selected, an inline alert informs the user that no desktop is selected.
The software UI will be revamped and will offert a proper desktop selection. The design of this new UI is not defined yet, but it will allow to easily select one or multiple desktop environments. The UI will be populated with the icon, name and description from the desktop patterns.
Note
Existing pattern names and descriptions may require sanitization to ensure they are appropriate for the selection UI.
Current UI for selecting patterns which will be improved.
For products with suggested desktop selection, triggering the "Install" action without a selected desktop will add an alert to the confirmation dialog. This dialog provides a final opportunity to return to the software selection or proceed with a headless installation.
I'm not sure about giving "desktop" such a prominent space in the Agama configuration (global config). I have not put much thinking into it yet, so I don't have an alternative to offer. But I kind of like the idea of sticking somehow to pattern selection.