rework kscreen's OSD logic
This changeset moves the various OSDs used in kscreen (output identifier, display button feedback) into the kded module.
The functional change in here is that instead of calling into plasmashell, now kscreen renders its own OSD. Plasmashell falls short since it doesn't offer the controls which kscreen needs, namely deciding what ends up on which output. The display button feedback is done entirely in the kded module, the output identification bits will be called over dbus by the new kscreen module. (I don't want to change the old one too much at this point.)
The ui code also now works better on high dpi displays.
I've tested this code on Wayland and X11, and it works on both. The previous OSD code doesn't.
Delaying the display button switch now also allows us to indicate what actually happened after pressing the button, so the user gets much better feedback (after the changes have been applied.)
- tested on X11 and wayland, multi and single screen
- changeset contains a test app
Subscribers: plasma-devel, davidedmundson
Differential Revision: https://phabricator.kde.org/D3598