External panels / modules / plugins for Control center
Problem:
Currently distro maintainers that want to extend GNOME Control Center instead of creating their utilities just add patches to G-C-C like System76 do: https://github.com/pop-os/gnome-control-center/tree/master_focal/debian/patches .
Issues of that:
- Need to rebuild G-C-C to add something
- If e.g. System76-power daemon is added to another system, it won't have GUI management unless G-C-C is replaced or rebuilt with patches
- Packages can't bring new features to G-C-C easily
- Patches are hard to maintain and make them coexist, end user can't add such an "extension"
Proposed solution:
API for plugins and loading mechanism.
KDE has really nice KCM module API, so e.g. in Manjaro you can have systemd services, kernel etc managed in a common way through System Settings. It'd be an awesome boost for beginners on GNOME when all of the system can be managed using convenient panels in G-C-C instead of extra tooling like MSM on Manjaro or just text configs.
In KDE you can install KCM-s as any other package, so any software can have one and be integrated into native settings app. They can also be run standalone using kcmshell5
(May be a nice feature as well).
Benefit
No extra config apps for every additional piece of system software with GUI config
Uniform UI, ease and speed of use
Design Tasks
-
Handle addition of custom pages -
Integrate new features into existing pages (to be discussed) -
Provide guidelines for module development
Development Tasks
-
Create plugin API -
Load plugins -
Hook up search provider etc
QA Tasks
-
Stability -
Security -
UI match