Files
whisper-local/whisper_local/hotkey/__init__.py
T

25 lines
773 B
Python
Raw Normal View History

"""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)