From d5d78d74613fa132b306310d6fad362ccc360fe9 Mon Sep 17 00:00:00 2001 From: "Peter F. Patel-Schneider" Date: Sun, 28 Jan 2024 12:20:00 -0500 Subject: [PATCH] device: support bug in backlight on MX Keys S --- lib/logitech_receiver/settings_templates.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/logitech_receiver/settings_templates.py b/lib/logitech_receiver/settings_templates.py index 5ecc71e00f..3a2ced3dee 100644 --- a/lib/logitech_receiver/settings_templates.py +++ b/lib/logitech_receiver/settings_templates.py @@ -213,12 +213,23 @@ class Backlight(_Setting): validator_options = {'choices': choices_universe} +# MX Keys S requires some extra values, as in 11 02 0c1a 000dff000b000b003c00000000000000 +# on/off options (from current) effect (FF-no change) level (from current) durations[6] (from current) class Backlight2(_Setting): name = 'backlight' label = _('Backlight') description = _('Turn illumination on or off on keyboard.') feature = _F.BACKLIGHT2 + class rw_class(_FeatureRW): + trail = None + + def write(self, device, data_bytes): + if self.trail is None: + reply = device.feature_request(_F.BACKLIGHT2, 0x00) + self.trail = reply[1:2] + b'\xff' + reply[5:12] + return super().write(device, data_bytes + self.trail) + class Backlight3(_Setting): name = 'backlight-timed'