"""Hotkey-Listener — plattformspezifische Backends hinter gemeinsamem Interface.""" import sys from typing import Callable, Coroutine, Protocol, runtime_checkable AsyncCallback = Callable[[], Coroutine] @runtime_checkable class HotkeyListener(Protocol): on_press: AsyncCallback | None on_release: AsyncCallback | None async def listen(self) -> None: ... def create_listener(key_name: str = "KEY_F12") -> HotkeyListener: """Erstellt den plattformspezifischen HotkeyListener.""" if sys.platform == "linux": from whisper_local.hotkey._evdev import EvdevHotkeyListener return EvdevHotkeyListener(key_name) else: from whisper_local.hotkey._pynput import PynputHotkeyListener return PynputHotkeyListener(key_name)