mirror of
https://github.com/theupriser/steamify-cachyos-live-iso.git
synced 2026-10-02 15:10:26 +02:00
docs: TODO: netinstall is the target module (real checkboxes); packagechooser works but looks wrong; keyboard-layout and Calamares-in-separate-tab gotchas
This commit is contained in:
1 parent
6b69c1f619
commit
d84daa45dc
1 file changed
+61
-46
@@ -2,55 +2,70 @@
|
|||||||
|
|
||||||
## Open
|
## Open
|
||||||
|
|
||||||
1. **Steamify installer page** (2026-09-28, in progress; working path found).
|
1. **Steamify installer page** (2026-09-28, in progress).
|
||||||
Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots + the
|
Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots +
|
||||||
Calamares debug log, `pkexec-wrapper calamares -D6` foregrounded):
|
`pkexec-wrapper calamares -D6` foregrounded, its own debug log):
|
||||||
- **`packagechooserq` (custom QML) does not exist on this Calamares
|
- **`packagechooserq` (custom QML) does not exist on this Calamares
|
||||||
build.** `cachyos-calamares-next` ships `packagechooserq.conf` as a
|
build**: only `packagechooser` is installed
|
||||||
vestigial config file, but no `.so`: `/usr/lib/calamares/modules/`
|
(`ls /usr/lib/calamares/modules`). `SteamifyPage.qml` can't be loaded
|
||||||
only has `packagechooser` (no q). Calamares refuses to start ("Module
|
by any real module here; confirm a module is actually installed
|
||||||
... not found in module search paths"). So `SteamifyPage.qml`
|
before writing QML/config for it again.
|
||||||
(app-styled switches) is dead: no module can load it here. Before
|
- **`packagechooser`, `mode: optionalmultiple`, genuinely multi-selects**
|
||||||
trying custom QML again, confirm the module is installed
|
(confirmed from its actual global-storage write, not its static label
|
||||||
(`ls /usr/lib/calamares/modules`, `pacman -Ql cachyos-calamares-next
|
text which misleadingly says "Choose a product..." either way):
|
||||||
| grep viewmodule`) in a live session first.
|
|
||||||
- **`packagechooser`, `mode: optionalmultiple`, DOES support real
|
|
||||||
multi-select**, confirmed from the Calamares debug log's actual
|
|
||||||
global-storage write (not from its static label text, which
|
|
||||||
misleadingly reads "Choose a product... the selected product will be
|
|
||||||
installed" in both single- and multi-select modes):
|
|
||||||
`"packagechooser@steamifypage" selected "single,gaming,theme"` — a
|
`"packagechooser@steamifypage" selected "single,gaming,theme"` — a
|
||||||
genuine comma-separated list, matching exactly the CSV format
|
real comma-separated list, matching `steamify-install`'s expected
|
||||||
`steamify-install` already expects for `--options`. This is the
|
`--options` format. Global storage key: `packagechooser_steamifypage`.
|
||||||
`Config::updateGlobalStorage(const QStringList&)` overload (plural),
|
- **But its UI doesn't look like a multi-select** (a plain list with a
|
||||||
distinct from the single-choice `m_packageChoice` path. So the
|
big blank preview pane, no checkboxes shown) — confirmed by the user
|
||||||
**native, installed `packagechooser` module is the working page**;
|
watching the VM live. Not good enough visually, even though it's
|
||||||
no netinstall detour needed.
|
functionally correct.
|
||||||
- Global storage key: `packagechooser_steamifypage` (module instance
|
- **Decision (the user, 2026-09-28): use `netinstall` instead**, the
|
||||||
id), value the comma-separated selected item ids.
|
module that actually renders a checkbox tree (confirmed live on the
|
||||||
- **Next:** generate `packagechooser_steamifypage.conf`'s `items:` list
|
Packages step: CachyOS Packages/shell config/base-devel/KDE-Desktop
|
||||||
from `steamify.sh --defaults --list` (in `calamares-online.sh`, same
|
all ticked together, real checkboxes). Not yet re-confirmed live this
|
||||||
spot as the abandoned Items.qml generation) instead of the QML
|
session (the live session's keyboard layout flipped to Dutch after
|
||||||
approach; check whether per-item `selected: true` (or similar) exists
|
the Welcome page's live keyboard preview, breaking `/`/`(`/`)` in
|
||||||
for defaulting everything on, or whether "everything on by default"
|
`qmptype.py`'s US-layout key map — `setxkbmap us` has no effect on
|
||||||
needs a different mechanism (e.g. Steamify's own `--options` default
|
Wayland; fix the layout in the live session's own settings before
|
||||||
when the page reports nothing chosen). Boot into (gaming/desktop)
|
typing shell commands with those characters again).
|
||||||
still needs its own answer: a separate small `packagechooser`
|
- **Next**, from already-known Calamares internals (its `Config.cpp`
|
||||||
`mode: required` page (two items), since optionalmultiple's list
|
logged `"packagechooser@desktop" groups to select in netinstall
|
||||||
doesn't suit an exclusive either/or choice.
|
QList("KDE-Desktop")` — i.e. netinstall groups CAN be driven by
|
||||||
- Dead code from this session, left in the tree for now:
|
another module's choice, and/or defined directly): write a
|
||||||
`SteamifyPage.qml`, `Items.qml`'s QML-singleton shape (its JSON
|
`netinstall_steamify.conf`/groups YAML for Steamify's items (id,
|
||||||
*content*, generated by `--defaults --list`, is still exactly what's
|
name, description per group; check whether a non-package/virtual
|
||||||
needed for the new plain-YAML `items:` list, just not as a QML file).
|
group is possible, or whether `packages: []` with `critical: false`
|
||||||
- **Lesson for next time:** verify a Calamares module is actually
|
is enough to make a group purely informational/no-op for pacman) from
|
||||||
installed before writing QML/config for it, and read a module's
|
`steamify.sh --defaults --list`, generated in `calamares-online.sh`
|
||||||
*actual* logged global-storage writes (not just its UI label text)
|
(same spot the abandoned Items.qml/packagechooser YAML generation
|
||||||
before concluding whether a mode does what its name suggests. Both
|
was). Read the selection back from whichever global-storage key
|
||||||
are testable live in the booted ISO VM without any rebuild
|
netinstall actually writes (`netinstallSelect`, seen in Config.cpp;
|
||||||
(edit `/etc/calamares/modules/*.conf` + `settings.conf`, relaunch
|
confirm the exact key/shape live) in
|
||||||
`pkexec-wrapper calamares -D6`, watch its foregrounded debug output).
|
`shellprocess_steamify.conf`/`steamify-install`. Boot into
|
||||||
|
(gaming/desktop) still needs its own small `packagechooser`,
|
||||||
|
`mode: required` page (an either/or choice doesn't fit a checkbox
|
||||||
|
tree).
|
||||||
|
- Dead code from this session, left in the tree for now: `SteamifyPage.qml`.
|
||||||
|
- **Lessons for next time:**
|
||||||
|
- Verify a Calamares module is actually installed
|
||||||
|
(`ls /usr/lib/calamares/modules`) before writing QML/config for it.
|
||||||
|
- Read a module's *actual* logged global-storage writes, not its UI
|
||||||
|
label text, to know what a `mode`/`method` really does.
|
||||||
|
- Both testable live in the booted ISO VM with no rebuild: edit
|
||||||
|
`/etc/calamares/modules/*.conf` + `settings.conf`, relaunch
|
||||||
|
`pkexec-wrapper calamares -D6` in a **separate Konsole tab** (it
|
||||||
|
blocks the tab it runs in — typing into that same tab just echoes
|
||||||
|
inertly into its blocked stdin, doesn't run commands).
|
||||||
|
- Watch for the live session's keyboard layout changing away from US
|
||||||
|
(e.g. via Calamares' Welcome page keyboard preview) mid-session:
|
||||||
|
`qmptype.py` assumes US and silently sends wrong characters
|
||||||
|
(`/` → `-`, parens garbled) once it does, with no error for the
|
||||||
|
common ones. Check with a no-symbols probe (`echo test123`) after
|
||||||
|
any language/keyboard step, and fix via the live session's own
|
||||||
|
keyboard settings if needed, not `setxkbmap` (no effect on Wayland).
|
||||||
|
|
||||||
2. **Check the live name**2. **Check the live name**2. **Check the live name** (the build tree has it right:
|
2. **Check the live name**2. **Check the live name**2. **Check the live name**2. **Check the live name** (the build tree has it right:
|
||||||
`build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say
|
`build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say
|
||||||
"Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`,
|
"Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`,
|
||||||
run by mkarchiso after the packages; the airootfs copy of os-release is
|
run by mkarchiso after the packages; the airootfs copy of os-release is
|
||||||
|
|||||||
Reference in new issue
Block a user