feat: bake packagechooserq module into the ISO, fix Steamify page styling

packagechooserq is excluded from cachyos-calamares-next's own build, so its
.so + module.desc are added straight into airootfs (matching the module
built against the current cachyos-calamares-next). Also:

- SteamifyPage.qml: border-only row highlight (was a translucent teal fill
  that made white text unreadable), themed page background (was falling
  through to Calamares' default white), a sub-option "└" marker, more right
  padding so the row border clears the scrollbar.
- calamares-online.sh: also write items.json next to Items.qml, so
  packagechooserq's prettyStatus() can show the Summary step's choice as
  labels instead of raw, comma-joined ids.
This commit is contained in:
theupriser committed 2026-09-28 14:56:15 +02:00
1 parent 71c2ef0459
commit eb58ef24b4
4 files changed
+29 -6

No files matched your search

@@ -73,6 +73,9 @@ EOF
cat "$tmp"
printf '\n}\n'
} | sudo tee "$sqml/Items.qml" > /dev/null
# Same rows, plain JSON: packagechooserq's prettyStatus() override
# reads this to show the Summary step's choice as labels, not ids.
sudo cp "$tmp" "$sqml/items.json"
fi
rm -f "$tmp"
@@ -25,6 +25,8 @@ Item {
SystemPalette { id: pal; colorGroup: SystemPalette.Active }
readonly property color accent: "#00CED1"
Rectangle { anchors.fill: parent; color: pal.window }
// Only what can be set up here (Steamify leaves out the rest).
readonly property var rows: Items.rows.filter(function (r) { return r.selectable; })
property var want: ({})
@@ -56,7 +58,11 @@ Item {
for (var i = 0; i < rows.length; i++)
if (rows[i].kind === "toggle" && want[rows[i].id]) on.push(rows[i].id);
if (want.gaming && boot === "desktop") on.push("boot");
return on.length ? on.join(",") : "none";
// ", " (not ","): Calamares' packagechooser Summary step shows this
// value raw ("Install option: <value>"); steamify-install still
// parses it fine (${choice//,/ } + bash word-splitting collapses
// the extra space).
return on.length ? on.join(", ") : "none";
}
onWantChanged: config.packageChoice = choice()
onBootChanged: config.packageChoice = choice()
@@ -102,12 +108,12 @@ Item {
readonly property var it: modelData
readonly property bool vis: page.shown(it)
readonly property bool selected: vis && index === page.sel
width: list.width - 12
width: list.width - 25
height: vis ? 52 : 0
visible: vis
radius: 4
color: selected ? Qt.rgba(page.accent.r, page.accent.g, page.accent.b, 0.18) : pal.base
border.width: 1
color: pal.base
border.width: selected ? 2 : 1
border.color: selected ? page.accent : Qt.rgba(pal.windowText.r, pal.windowText.g, pal.windowText.b, 0.15)
MouseArea {
@@ -118,9 +124,16 @@ Item {
}
RowLayout {
anchors.fill: parent
anchors.leftMargin: row.it.parent ? 32 : 12
anchors.leftMargin: row.it.parent ? 12 : 12
anchors.rightMargin: 12
spacing: 12
spacing: 8
Label {
visible: !!row.it.parent
text: "└"
color: pal.text
opacity: 0.6
font.pointSize: 11
}
ColumnLayout {
Layout.fillWidth: true
spacing: 0