Files
public-python/tfc-forge-macro/setup.py
2026-04-02 17:08:30 -04:00

34 lines
826 B
Python

"""
Record mouse click coordinates to stdout. Run: python setup.py
"""
from __future__ import annotations
from pynput import keyboard, mouse
def main() -> None:
print("Recording clicks (on press). Press Esc to stop.", flush=True)
def on_click(x: float, y: float, button: mouse.Button, pressed: bool) -> None:
if pressed:
print(f"{int(round(x))}\t{int(round(y))}\t{button}", flush=True)
def on_release(key: keyboard.Key | keyboard.KeyCode) -> bool | None:
if key == keyboard.Key.esc:
mouse_listener.stop()
return False
return None
mouse_listener = mouse.Listener(on_click=on_click)
mouse_listener.start()
try:
with keyboard.Listener(on_release=on_release) as kbd_listener:
kbd_listener.join()
finally:
mouse_listener.stop()
if __name__ == "__main__":
main()