The Settings app should be implemented in a similar way to the Wayfire Config Manager, except with QML pages so we can display the setting previews, and .desktop files to know which pages there are and what we need to load, in addition to easily allowing them to be pinned and displayed in RetiledSearch.
I may have already written about this in the long file in /docs, but basically the Settings app will look for QML files in a specific folder, and it'll use a Loader to open each page when the user taps on one. Then, each page will get to load its own settings through a specific function in the Settings app's main file just like I'm already doing it in RetiledStart for themes and accessibility. Each page will then save their settings back through the same way. Additionally, I can also display the setting preview in the list, like the user's Accent color or the current Wi-Fi network. Just need to make it easy to support search, categories (if using them), and icons in the list on the left side of each item (also if using them).
Some things might not support this system though, so to make things easy, I'll also support loading .desktop files that upon clicking them, open something specific like the KDE Settings app. Or maybe I should use .desktop files for each page, similar to how Plasmoids work as far as being displayed in lists? Yeah, actually I'll do that, that way it'll make it easy to pin the pages and search for them in RetiledSearch. I'll even be able to add Live Tiles to a given Settings page.
I was thinking about having the pages in a YAML file so then they can be organized in a specific way. Actually, maybe that would be a good idea because then they can be organized in a list and not be randomly loaded. So there will be three things for each QML page: a QML file for the page to interact with; a .desktop file for that page to say the page name in the list, the QML file to open, and the setting preview just under the page name, and an entry in the YAML file for that .desktop file. If it's a whole different application, then there will be a key in the .desktop file that says to run an app instead of opening a page, and it'll have the Exec key be used instead. I don't know if the setting preview can be integrated.
Extra pages added to the Settings app by other packages will need to have their own YAML files and stuff set up like this, and there will need to be a way to specify the path for the config file and stuff if it's in a different path from the main config files.
All the settings .desktop files will be in their own folder with their own type specifier so that they can be searched through in both the Settings app and the Search app. Additionally, each .desktop file will have aliases so that users can, say, type in "customization" and get start+theme in the results.
Also, the category for each page should be specified in the YAML file so they can be organized accordingly if the user has one of the category views (WP 8.1 Update 2 style or Windows 10 Mobile style) active. Otherwise it's just a list organized vertically. Also since there should be a Pivot for the "apps" settings, I need to figure that out. Wait, maybe there should be another field in the YAML file named pivot or something? That way we can separate all the app-related settings into their own Pivot in the long list versions, and put them into their own subpage in the Windows 10 Mobile-style category view (pivots may be a bit much for that, unless you know what we should still have pivots there, that's a good idea because otherwise it'll be confusing if it's referring to installed apps or settings for apps; it's a hybrid of 7.x-8.x and 10, anyway).