- Detect an external display as any online display that isn't built in (CGGetOnlineDisplayList + CGDisplayIsBuiltin) instead of counting NSScreens, so the rule works in clamshell mode, when mirroring and on single-monitor desktops. The Smart Activation footer reports the same check. - Refuse and mark shortcut presets that clash with a macOS system shortcut (CopySymbolicHotKeys, checked once, only when the Global Shortcut submenu opens), report the real reason a registration failed, and stop claiming that other apps' clashes are detected. Show the shortcut hint on the toggle only when it is actually registered. - Make the menu toggle carry the action it displays, refresh the status line, toggle and "Add 30 minutes" while the menu is open, and ignore a click that lands as the toggle changes meaning, so a click never does the opposite of its label. - Replace the single suppression flag with per-rule overrides: the status names what is paused, Turn On becomes Resume Smart Activation, each rule re-arms when it stops holding, and a rule that became true during a timed session takes over at expiry while rules that held throughout stay paused. - Update the README to match, bump the version to 1.1.0 and add CHANGELOG.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
61 lines
3.1 KiB
Markdown
61 lines
3.1 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to Wakeful are recorded here. The format follows
|
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions follow
|
|
[Semantic Versioning](https://semver.org/).
|
|
|
|
## [1.1.0] - 2026-09-23
|
|
|
|
### Fixed
|
|
|
|
- **External display rule works where it matters.** It now looks for any
|
|
connected display that isn't the built-in panel, instead of counting screens,
|
|
so it fires with the lid closed (clamshell), when mirroring to a projector,
|
|
and on a desktop Mac's only monitor. Docking and closing the lid no longer
|
|
switches Wakeful off. The Smart Activation footer shows the same check
|
|
("external display" / "no external display") instead of a screen count.
|
|
- **Global shortcut clashes with macOS shortcuts are detected.** Presets that
|
|
clash with a system shortcut (screenshots, Spotlight, Mission Control, input
|
|
sources…) are marked "used by a macOS shortcut" and can't be picked, and a
|
|
failed registration shows its real reason. 1.0.0 promised an "unavailable"
|
|
warning that could never appear. Clashes with App Shortcuts, Services and
|
|
other apps can't be detected by any public API; the README now says so.
|
|
- **An open menu no longer goes stale.** The status line, Turn On / Turn Off
|
|
and "Add 30 minutes" update while the menu is open, and the toggle always
|
|
does what its label said. Previously, clicking "Turn Off" as a timed session
|
|
expired started an indefinite session. A click that lands just as the label
|
|
changes is now ignored.
|
|
- **Smart Activation after a manual override:**
|
|
- Turning Wakeful off while a rule applies now says what is paused
|
|
("Sleep allowed — AC rule paused") instead of "watching conditions".
|
|
- Each paused rule re-arms as soon as its condition stops holding, so
|
|
unplugging and replugging re-arms the AC rule even with other rules on.
|
|
- A rule that becomes true during a timed session (you dock halfway through)
|
|
takes over when the session ends. A rule that held throughout stays paused,
|
|
so "Keep Awake For 15 minutes" still really ends on AC.
|
|
- Turning off and back on no longer converts an automatic session into an
|
|
indefinite manual one that survives unplugging.
|
|
- The shortcut hint on Turn On / Turn Off (e.g. "(⌃⌥⌘K)") only appears when
|
|
that shortcut is actually registered.
|
|
|
|
### Changed
|
|
|
|
- While Smart Activation is paused, Turn On and the global shortcut become
|
|
**Resume Smart Activation**, handing control back to the rules. In that state
|
|
they don't use `defaultDurationMinutes`; use Keep Awake For to start a manual
|
|
session.
|
|
- Turn Off overrides only the rules that hold at that moment. With the AC and
|
|
battery rules both on, turning off at your desk and then unplugging lets the
|
|
battery rule switch Wakeful back on; 1.0.0 stayed off.
|
|
- A deliberate click on the toggle within about half a second of its label
|
|
changing is ignored and needs repeating.
|
|
- The chosen shortcut preset is checked for system-shortcut clashes when you
|
|
pick it and at each launch; a clash created later is noticed at the next
|
|
launch.
|
|
- README: smart activation semantics, the menu design notes and the global
|
|
shortcut limitations rewritten to match the code.
|
|
|
|
## [1.0.0]
|
|
|
|
- Initial release.
|