Distro customizability
This is a brainstorm for how we support distros customizing the workflow.
Currently we define pages internally, and have a set order for them. This is not very flexible.
Idea
Instead, we can install pages to a folder locations on disk with a manifest file that defines pages, their order, and conditions under which they get shown.
Then distros can customize this by writing their own custom QML pages, pre-installing them to that folder and editing the manifest. Each page is simple QML stuff with a lot of the layout abstracted away (see https://invent.kde.org/plasma/plasma-welcome/-/tree/master/src/contents/ui/pages) so hopefully this should not be too hard for distro devs to do. And they can reach out for help too.
We would want to build in handlers on the C++ side that can be used in the QML pages for common tasks like:
- Open a URL in web browser (already built into QML, no c++ implementation needed)
- Open an app (already implemented)
- Check for network connectivity (already implemented)
- Embed a KCM from System settings (already implemented)
- Open a KCM in System Settings externally? Or is that redundant with the ability to embed KCMs?
- Any other things distros want?
Not sure we want the option to install software as that's typically a task for the pre-install wizard, not the post-install wizard. But maybe it makes sense for the OEM case?