From fcc9906bafb6d9456fc32a002d85ca199bd69864 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Tue, 6 Jul 2021 00:46:55 -0400 Subject: [PATCH] keyboard_comm: save/restore qmk settings across updates --- src/main/python/keyboard_comm.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/python/keyboard_comm.py b/src/main/python/keyboard_comm.py index 0d875ac..5ef5bf1 100644 --- a/src/main/python/keyboard_comm.py +++ b/src/main/python/keyboard_comm.py @@ -1,5 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-or-later -import base64 import struct import json import lzma @@ -545,6 +544,7 @@ class Keyboard: # TODO: should store/restore serialized keycodes for these two data["tap_dance"] = self.tap_dance_entries data["combo"] = self.combo_entries + data["settings"] = self.settings return json.dumps(data).encode("utf-8") @@ -583,6 +583,13 @@ class Keyboard: if x < self.combo_count: self.combo_set(x, e) + for qsid, value in data.get("settings", dict()).items(): + from qmk_settings import QmkSettings + + qsid = int(qsid) + if QmkSettings.is_qsid_supported(qsid): + self.qmk_settings_set(qsid, value) + def restore_macros(self, macros): if not isinstance(macros, list): return