diff options
-rw-r--r-- | kvmd/plugins/hid/serial.py | 9 | ||||
-rw-r--r-- | web/share/js/kvm/hid.js | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/kvmd/plugins/hid/serial.py b/kvmd/plugins/hid/serial.py index 5edf50a8..31ba0fd6 100644 --- a/kvmd/plugins/hid/serial.py +++ b/kvmd/plugins/hid/serial.py @@ -118,7 +118,7 @@ class _MouseButtonEvent(_BoolEvent): class _MouseWheelEvent(_IntEvent): def __post_init__(self) -> None: assert self.x == 0 # Горизонтальная прокрутка пока не поддерживается - assert -128 <= self.y <= 127 + assert -127 <= self.y <= 127 def make_command(self) -> bytes: return b"\x14\x00" + struct.pack(">b", self.y) + b"\x00\x00" @@ -188,7 +188,12 @@ class Plugin(BaseHid, multiprocessing.Process): # pylint: disable=too-many-inst multiprocessing.Process.start(self) def get_state(self) -> Dict: - return {"online": bool(self.__online_shared.value)} + online = bool(self.__online_shared.value) + return { + "online": online, + "keyboard": {"online": online}, + "mouse": {"online": online}, + } async def poll_state(self) -> AsyncGenerator[Dict, None]: prev_state: Dict = {} diff --git a/web/share/js/kvm/hid.js b/web/share/js/kvm/hid.js index 6fd5f6a0..772b4a45 100644 --- a/web/share/js/kvm/hid.js +++ b/web/share/js/kvm/hid.js @@ -95,8 +95,8 @@ export function Hid() { }; self.setState = function(state) { - __keyboard.setState(state); - __mouse.setState(state); + __keyboard.setState(state.keyboard); + __mouse.setState(state.mouse); }; var __releaseAll = function() { |