daemon: Introduce DisplayBrightnessDetector interface
Another step towards #19. This depends on other MRs getting merged first and includes those commits as dependencies. Only the top commit needs to be reviewed in this MR. As a reviewer, check out the dependencies first:
After detection, the rather minimal interface provides a list of
displays supporting brightness operations, incl. change signal.
ScreenBrightnessController
gets adapted to make use of it.
BacklightDetector
is split out from BacklightBrightness
to support
this new interface. The existing DDCutilBrightness
gets renamed to
DDCutilDetector
to keep some semblance of naming consistency.
In theory, this would switch your brightness controls between internal laptop display and DDC-supporting monitors when one of them disappears. In practice, behavior is still unchanged because laptop displays are first in priority order and never disappear if they're present at all.