Files
cursor-flasher/pyproject.toml
cottongin 5b71b2275b Restructure config for per-mode style/sound and fix pulse dismiss
Major changes:
- Add StyleConfig dataclass with independent color, width, opacity,
  duration, pulse_speed, sound, and volume per mode (running/completed)
- Replace flat flash_*/sound_*/play_on config with running: and
  completed: YAML sections
- Replace CGEventTap (silently fails in forked daemon) with
  CGEventSourceSecondsSinceLastEventType polling for reliable
  input-based pulse dismissal when Cursor is already frontmost
- Update overlay, sound, and daemon to pass StyleConfig per call
- Rewrite tests for new config shape and dismiss mechanism

Made-with: Cursor
2026-03-10 07:01:52 -04:00

28 lines
624 B
TOML

[build-system]
requires = ["setuptools>=68.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "cursor-flasher"
version = "0.2.0"
description = "Flash Cursor's window when the AI agent needs attention"
requires-python = ">=3.10"
dependencies = [
"pyobjc-framework-applicationservices>=12.1",
"pyobjc-framework-Cocoa",
"pyobjc-framework-Quartz",
"PyYAML",
]
[project.optional-dependencies]
dev = ["pytest", "pytest-mock"]
[project.scripts]
cursor-flasher = "cursor_flasher.cli:main"
[tool.setuptools.packages.find]
where = ["src"]
[tool.uv]
dev-dependencies = ["pytest", "pytest-mock"]