From 5dd5fd3543508d325435b2e8a88eea4a7289803b Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Sat, 27 Sep 2025 13:30:59 +0200 Subject: Add keyboard bindings to web gui --- web-project/src/solo_tool_web.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/web-project/src/solo_tool_web.py b/web-project/src/solo_tool_web.py index b014061..3c68585 100644 --- a/web-project/src/solo_tool_web.py +++ b/web-project/src/solo_tool_web.py @@ -31,6 +31,18 @@ sessions = {} sessionManager = None midiPedal = ActitionController() +def makeKeyboardHandler(st: SoloTool): + def handleKey(e: events.KeyEventArguments): + if e.action.keyup and not e.action.repeat: + if e.key.enter: + if st.playing: st.pause() + else: st.play() + elif e.key.shift: + st.jump() + elif e.key.arrow_left: + st.position = 0.0 + return handleKey + @ui.page('/{sessionId}') def sessionPage(sessionId: str): if sessionId not in sessions: @@ -43,6 +55,7 @@ def sessionPage(sessionId: str): st = sessions[sessionId] midiPedal.setSoloTool(st) + ui.keyboard(on_key=makeKeyboardHandler(st)) # Manage songs dialog with ui.dialog() as manageSongsDialog: -- cgit v1.2.3