This document proposes a mechanism to enhance Desktop Environment (DE) selection within the Agama Software configuration. By flagging specific patterns in the product metadata, Agama can distinguish graphical environments from standard software packages, allowing the UI to present them prominently.
Currently, selecting a desktop environment requires users to find specific items within a flat list of software patterns. As a primary installation decision, this choice should be visually distinct and easily accessible. Leveraging the existing user_patterns structure allows us to categorize these choices without altering the underlying configuration schema.
We propose adding an optional boolean desktop field to the user_patterns collection in the product definition (e.g., tumbleweed.yaml).
Example tumbleweed.yaml:
id: Tumbleweed
user_patterns:
- name: office
- name: gnome
desktop: true # Used by UI to promote this pattern
selected: true # Default selection, if desired
- name: kde
desktop: true
- name: xfce
desktop: true
This proposal is backward-compatible and requires no changes to the config.json schema. Selected desktops are stored simply as pattern names within the software.patterns array.
Example config.json:
{
"product": "Tumbleweed",
"software": {
"patterns": ["kde", "office"]
}
}
The "Desktop" selection will be integrated into the Software configuration workflow but will be visually prominent to highlight its importance.
- Visual Hint: The summary will explicitly list selected desktops (e.g., "Desktops: KDE Plasma").
- Validation/Alerts: If no pattern marked
desktop: trueis selected, the summary may display a non-blocking info alert (e.g., "No desktop environment selected").
The available desktops will be offered as part of the software selection, probably presenting desktops in a prominent way. The page will display the name, icon, and description of patterns flagged as desktop: true.
The UI will support selecting multiple desktops.
To ensure a rich UI, the patterns used as desktops should ideally provide an icon and a localized description.
The confirmation popup will include an alert if no pattern marked desktop: true is selected.
But there is a strong connection between selecting desktops and the final installation size (which is an information that is now displayed in the software section).
Selecting one (or several) desktops have a very direct and noticeable impact in the selection of software so I feel it should be somehow connected.