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
28 lines
624 B
TOML
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"]
|