定点灵感闹钟 (Hourly Inspiration Alarm) v1.1.3
每小时整点,电脑自动弹出一个置顶小窗:随机一张美图 + 一句中文金句,并用系统语音播报当前时间、朗读屏幕上的那句话,约 12-15 秒后淡出关闭(也可手动无视,下个整点再来)。
设计目标:做一个真正"像闹钟一样准点"的桌面小工具,不花积分、不依赖联网、不依赖特定软件常驻。
随包附带《使用说明 USAGE.md》,从安装、切换声音、换图到卸载与排错,照着做一遍就会。
v1.1.0 新增(P0 补洞 + P1 增强)
- 夜间勿扰:可设一段静默时段(默认 23:00-07:00),期间
skip=不弹不响、mute=只弹不响。睡觉不被吵。 - 防双弹:命名互斥量 + 任务计划
IgnoreNew,即使两条触发重叠也只弹一次。 - 多屏可选:
Monitor=0/1/2指定弹在第几块屏幕;自动 DPI 适配,高分屏不糊。 - 时段感知:金句按时段(清晨/正午/傍晚/夜深)分池抽取,夜间音量自动调低。
- 过渡视觉:毛玻璃圆角卡片 + 柔和投影 + 淡入淡出,比纯黑条好看很多。
- 开机补跑:任务计划
StartWhenAvailable,关机错过的整点,开机/登录后自动补响。
v1.1.1 新增(声音升级)
- 语音报时 + 朗读金句:默认用 Windows 自带语音(System.Speech TTS)播报"现在是下午三点整",并朗读屏幕上的金句,比单纯的"叮"更有信息量、更有陪伴感。零依赖、零积分。
- 声音模式可选:
VoiceMode=tts(默认,语音报时+朗读) /chime(原轻柔提示音) /off(静音),向后兼容旧行为。 - 报时用语可配置:时段词、前缀、后缀都放进
config.ini,可改成你喜欢的口语(如"此刻是""整点报时")。 - 说明:PS 版(本机实时运行的 WPF 弹窗版)与 Python 版共用同一套
config.ini的Voice*配置。
v1.1.2 新增(轻混合,消除突兀感)
- 报时前加一声极短的"叮":
tts模式下,先同步播放一声约 0.13 秒的高频轻"叮"(G6,快速衰减)作为前导,播完再开始语音报时与朗读。避免声音突然响起吓一跳,体验更柔和。 chime模式保持原来的轻柔提示音不变;off仍是静音。- 前导"叮"与语音共享同一音量(按时段与勿扰自动调节),深夜自动压低。
v1.1.3 修复(语音不再被掐断)
- 等语音读完才关窗:之前窗口按固定秒数(ShowSeconds)淡出关闭,而语音是异步播放的,多句长金句朗读时间超过设定秒数时,窗口关掉会把没读完的语音掐断。现在改为——最短展示时间到了、且语音引擎已播完,才淡出关闭(轮询检测语音状态,每 250ms 一次),并加 120 秒安全上限防卡死。PS 版与 Python 版同步修复。
v1.2.0 新增(声音二选一 + 本地图片路径 + 使用说明)
- 声音二选一,想怎么响怎么响:
VoiceMode现在四选一—— tts(默认):语音报时 + 朗读屏幕金句,先一声轻"叮"作前导;ding:只响一声轻柔的"叮",不报时、不朗读(最轻量,给一个纯粹的整点提醒);chime:原轻柔提示音(C-E-G 大三和弦);off:完全静音,只看图与金句。
"语音读"和"只是叮一声"一键切换,改config.ini即可,无需重装。- 图片来自你本地任意目录:
ImageDir指向一个本地图片文件夹(默认 Windows 聚焦壁纸),把你想展示的照片/壁纸丢进去,整点随机抽一张。支持 jpg/jpeg/png/bmp/webp;目录不存在自动回退纯色背景。 - 随包附《使用说明 USAGE.md》:从安装、切换声音、换图、卸载到排错,照着做一遍就会。
运行环境
- 需要 Python 3(Windows 官方安装包自带 tkinter 与 winsound,无需额外装)。
- 可选依赖:想让弹窗显示壁纸图片,先
pip install Pillow;不装也能用,会自动回退为纯色背景 + 金句 + 声音。
两种安装方式(任选其一)
方式 A:Windows 任务计划(推荐,开机即响)
不依赖 WorkBuddy 或其它软件,电脑登录后每到整点自动响;关机错过的整点会在开机后补响。
安装步骤:
1. 把整个技能目录解压到任意固定位置(例如 你的工具目录\hourly-inspiration-alarm\)。
2. 在该目录下用 PowerShell 运行安装脚本(把 python 换成你机器上的 Python;若在 PATH 直接用 python):
python "你的工具目录\hourly-inspiration-alarm\scripts\install_task.py"
3. 脚本会用系统"任务计划程序"创建名为 HourlyInspirationAlarm 的任务(整点触发 + 开机补跑 + 交互式令牌免密)。
常用命令:
- 手动试一次:python "你的工具目录\hourly-inspiration-alarm\scripts\alarm.py" --show-seconds 12
- 仅合成预览(无窗口,便于没图形环境时验证):python "...\alarm.py" --headless
- 修改停留时长:编辑 scripts\config.ini 的 ShowSeconds,重跑上面安装命令即更新。
- 卸载(彻底删除):schtasks /Delete /TN "HourlyInspirationAlarm" /F
方式 B:WorkBuddy 自动化(需 WorkBuddy 保持运行)
适合已经在用 WorkBuddy、且希望闹钟跟随 WorkBuddy 调度的用户。注意:WorkBuddy 关闭时不会触发。
安装步骤:
1. 把整个技能目录解压到固定位置。
2. 在 WorkBuddy 新建一条自动化,频率设为"每小时(整点)",prompt 内容见 scripts\install_workbuddy.md(直接复制,把里面的路径改成你的实际路径即可)。
3. 保存并启用。
自定义(config.ini)
| 键 | 说明 | 默认 |
|---|---|---|
| ImageDir | 壁纸来源目录,支持 %USERPROFILE%;目录不存在自动回退纯色 | Windows 聚焦壁纸 |
| ShowSeconds | 弹窗停留秒数 | 15 |
| Monitor | 显示屏幕:0=主屏,1=第二屏… | 0 |
| Theme | 无图时底色/强调色:ocean/forest/dusk/mono | ocean |
| Volume | 提示音音量 0.0-0.40(0=静音) | 0.28 |
| DndStart / DndEnd | 夜间勿扰起止小时(24h) | 23 / 7 |
| DndMode | skip=静默不弹不响;mute=只弹不响 | skip |
| VoiceMode | 声音模式:tts=语音报时+朗读(默认)/ ding=只响一声轻"叮" / chime=原提示音 / off=静音 | tts |
| VoicePrefix / VoiceSuffix | 报时前后缀,如"现在是""点整" | 现在是 / 点整 |
| VoiceMorning / VoiceForenoon / VoiceNoon / VoiceAfternoon / VoiceEvening / VoiceLateNight | 各时段前缀词(凌晨/早上/上午/中午/下午/晚上) | 对应中文 |
- 改金句:编辑
scripts\quotes.txt(UTF-8,一行一句)。可用# morning / # noon / # evening / # night标签把句子归入对应时段池;未标签的进通用池。 - 改壁纸来源:编辑
ImageDir。 - 所有改动无需重装,下一整点自动生效。
实现说明
- 弹窗:Python tkinter 无边框置顶窗口,按所选屏幕分辨率用 Pillow 合成整图(壁纸 + 毛玻璃圆角卡片 + 阴影 + 金句),淡入淡出。
- 声音:默认(VoiceMode=tts)先播放一声约 0.13 秒的高频轻"叮"作前导,再调用 Windows 自带语音(System.Speech TTS,自动选中文嗓音)播报时间并朗读金句,零外部音频文件、零积分;也可切回 chime 模式(标准库合成的 C-E-G 大三和弦 WAV + winsound 播放);音量按时段与勿扰调整。
- 配图:默认读取本机 Windows 聚焦壁纸(系统自带高质量美图),零积分、零联网。
- 防双弹:内核命名互斥量(Global\HourlyInspirationAlarmMutex)+ 任务计划 IgnoreNew。
- 编码:金句 / 壁纸路径 / 标签都放在外部 UTF-8 文件里显式读取,规避中文乱码。
已知边界
- 弹窗需要图形界面会话(桌面登录后可见);无头/服务器环境可用
--headless验证合成逻辑,但看不到窗口、脚本不报错退出。 - 任务计划方式使用"交互式登录令牌"运行,无需保存密码;要求当前用户已登录桌面。
- 本工具仅修改你本机的"任务计划"和读取本机壁纸/金句,不联网、不上传任何数据。
版权与署名
本技能为原创工具,可免费使用与二次分享。