
大家好,我是 BlinkSpark 的作者。
每天对着电脑写代码、刷文档、回消息,眼睛像被砂纸磨过一样干涩,是不是特别熟悉? 我以前也这样,直到我做了 BlinkSpark —— 一个用 Rust 写的、极简到极致的 20-20-20 护眼提醒工具。
它不吵、不烦、不占用资源,就是默默在桌面上放一个小窗,每 20 分钟提醒你一次: 看 20 英尺外 20 秒。
今天这篇文章,我不光想告诉你这个工具好用,更想聊聊它为什么值得做,以及为什么 Rust 是做这种桌面小工具的“天花板”。
市面上提醒工具其实不少,但真正好用的寥寥无几。 它们要么功能堆成山(重得像个效率怪物),要么弹窗吵得想砸电脑,要么只能用在某一平台。
BlinkSpark 想做的是完全相反的东西:
它只干一件事:用最低的交互成本,帮助你真正执行 20-20-20 规则。
这个规则谁都知道,但真正能坚持下来的凤毛麟角。 BlinkSpark 就是要把“知道”变成“你愿意一直开着”的习惯。
当前版本已经把“桌面护眼工具”该有的细节全部补齐:
这些功能看起来“平平无奇”,但正是这些细节,决定了一个工具是用完就删,还是常驻桌面。

因为这本质上是一个典型的桌面应用工程题: 需要跨平台、需要极致稳定、需要低资源占用、还要和系统通知、窗口、图标、打包流程深度打交道。
Rust 在这里简直是天选之子:
1. clap 管理命令行
blinkspark --lang zh --interval 25 --once
既能双击直接用,也能扔进启动项、脚本、自动化流程,开发者最爱。
2. eframe/egui 做极简 GUI 不需要 Electron 的 200MB 内存,也不需要原生控件绑定的复杂性。 固定尺寸小窗 + 实时倒计时 + 拖动保存位置,开发效率和体积双赢。
3. 通知完全平台抽象
外部只调用一个 notify(title, body),平台差异藏在 src/notifier/mod.rs 里,后续加平台也丝滑。
4. 窗口位置真正“记住你” 拖动后立刻写入本地配置文件(XDG / %APPDATA%),下次启动直接回到你喜欢的位置。 这一个小细节,决定了用户会不会爱上它。
5. 默认右下角启动 + 完整品牌链路
Windows 用 windows-sys 获取屏幕尺寸自动右下角放置;
提供 SVG Logo + 一键生成 ICO/PNG 的脚本 + build.rs 自动嵌入图标。
让开源项目瞬间拥有“产品感”。
一句话:如果你只想一个工具默默守护你的眼睛,别来烦你,BlinkSpark 就是为你准备的。
# 1. 拉代码
git clone https://github.com/shuyixiao-better/BlinkSpark.git && cd BlinkSpark
# 2. 编译运行(Release 版极致轻量)
cargo build --release
# 3. 常用启动方式
blinkspark # 默认中文 + 20分钟
blinkspark --lang zh # 明确中文
blinkspark --interval 25 # 自定义间隔
blinkspark --once # 提醒一次后退出项目地址(求个 Star ⭐): https://github.com/shuyixiao-better/BlinkSpark
我特别喜欢做 BlinkSpark 这种项目—— 需求明确、边界清晰、用户真实,却能把跨平台、桌面 GUI、系统通知、配置持久化、品牌打包全部串起来。
它不是什么颠覆性产品,但它能真正解决我们每天都在经历的小痛苦。
如果你也是一位 Rust 爱好者,或者正在找一个靠谱的护眼工具,欢迎来试试。 用着舒服的话,点个 Star、提个 Issue、甚至一起打磨它,都超级欢迎!
你的眼睛,值得被温柔对待。 点个在看,也祝你今天少刷几次手机,多眨几次眼~