Currently Spectacle has two different backends, one for wayland and one for x11. The x11 one works with kwin and without, while the wayland one needs kwin. So it's neither cross platform (doesn't work on Windows etc.) nor well separated (one x11 backend, which implements the kwin variant and the general variant).
Additionally, there is also no support for screen recording ... some say, screen recording would be a nice feature, some say they don't need it and it would create unnecessary overhead.
I suggest to add support for a plugin system, in which each backend is made available through a plugin. It can either be linked statically or loaded dynamically.
- Spectacle can become cross platform as we can create as many backends as we like for the different platforms
- There is no overhead as not needed backends can be unloaded (or not be shipped at all)
- It could even reduce overhead as we don't need a Wayland backend for example, if the user only runs on X11
- We can add screen record support, which can optionally be loaded (so there is no overhead for users, who don't need it)
We can use the plugin system provided by Qt.
This is how a new setting could look like (The design should be similar to the kirigami card design, but I'm incapable of using Qt Widgets)