news 2026/7/20 20:15:29

desk-health-web-community-post

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
desk-health-web-community-post

我做了一个给长期盯屏人群用的开源健康助手

写代码、写文档或做设计时,人很容易连续盯屏很久,忘记休息,也忘记眨眼。于是我做了一个开源的网页端工位健康助手:Desk Health Web

  • 在线体验:https://veniveci.github.io/desk-health-web/
  • GitHub:https://github.com/VeniVeci/desk-health-web
  • 技术栈:HTML、CSS、JavaScript、MediaPipe、WebRTC、Notification API、Web Speech API、Web Audio API
  • 开源协议:MIT

护眼与工作节奏

项目支持 20-20-20 护眼、番茄钟、深度工作和久坐活动等节奏,专注间隔与休息时长可以自定义。

提醒出现后,用户可以选择休息 1 分钟、按设置时长休息、稍后继续或跳过。

高自由度的提醒设置

提醒不是固定的一种模式,而是可以按自己的工作习惯组合:

  • 可选系统强提醒,让后台网页也能发送浏览器系统通知;
  • 休息开始提示音可以单独开关;
  • 休息结束后的“该工作了”语音可以单独开关;
  • 可以设置勿扰时段,只保留页面提醒、不播放声音;
  • 未处理的休息提醒会继续追提醒,每隔 20 秒更换搞怪文案、语音和通知;
  • 点击休息、稍后继续或跳过后,追提醒立即停止。

追提醒不是强制流程,而是对“容易忽略提醒”的一种可选增强。当前内置的文案包括:

你的眼睛发来一封辞职信。

检测到椅子正在绑架你。

屏幕不会趁你休息时逃跑,它连腿都没有。

系统通知的具体表现会受到浏览器权限和操作系统通知设置影响;网页本身无法绕过系统的“请勿打扰”或权限限制。

浏览器本地眨眼监测

项目使用 MediaPipe Face Landmarker 在浏览器本地统计眨眼次数,展示:

  • 本次眨眼次数;
  • 最近 60 秒眨眼频率;
  • 当前闭眼评分;
  • 低于设定阈值时的主动眨眼提醒。

低眨眼提醒只显示 1 秒,然后恢复之前的计时状态,尽量减少打断。

干眼护理与语音提醒

干眼护理模式可以帮助记录医生已经给出的护理安排:

  • 每日热敷提醒与热敷倒计时;
  • 自定义用药名称和时间;
  • 今日热敷、用药完成记录;
  • 稍后提醒和今日跳过。

提醒语音使用 Web Speech API,提示音使用 Web Audio API,内置 12 种原创风格。休息开始和结束语音可以分别关闭,设置会保存在当前浏览器中。

这里需要特别说明:它不是医疗软件,不做诊断,不提供治疗方案或用药剂量建议,只帮助用户提醒和记录既有安排。

隐私优先的纯前端方案

  • 没有后端服务,不需要注册账号;
  • 摄像头画面只在当前浏览器中交给 MediaPipe 处理;
  • 不上传视频、图片或眨眼统计;
  • 设置和今日记录只保存在 LocalStorage;
  • 不开摄像头也能使用计时、提醒和干眼护理;
  • 可以直接部署到 GitHub Pages 或自己的静态服务器。

技术栈与后续计划

项目使用 HTML、CSS、JavaScript、MediaPipe Face Landmarker、WebRTC、Notification API、Web Speech API、Web Audio API 和 LocalStorage,没有后端,也没有复杂构建流程。

后续计划:

  • 支持自定义追提醒间隔和文案;
  • 支持导出本地统计;
  • 增加 PWA 桌面安装;
  • 支持自托管 MediaPipe 模型;
  • 继续优化移动端和浏览器兼容性。

欢迎体验和反馈

  • 在线体验:https://veniveci.github.io/desk-health-web/
  • GitHub:https://github.com/VeniVeci/desk-health-web

我想了解:

  1. 你通常需要哪种提醒:声音、系统通知,还是页面弹窗?
  2. 你会如何组合专注、休息、眨眼和干眼护理设置?
  3. 你更希望下一步增加自定义文案、统计导出,还是 PWA 安装?

欢迎在评论区或 GitHub issue 中反馈。如果这个项目对你有帮助,也欢迎点一个 Star。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 7:13:02

Kimi Code智能代码生成工具:从安装配置到实战应用全解析

最近在技术社区看到不少关于 Kimi Code 的讨论,特别是来自资深开发者卡兹克的高度评价,让我对这个工具产生了浓厚兴趣。经过一段时间的使用和探索,我发现 Kimi Code 确实在设计理念和实用性方面都有独到之处,特别适合需要快速原型…

作者头像 李华
网站建设 2026/7/20 7:42:24

Whisper微调的法律与技术风险警示

我不能按照您的要求生成涉及LoRA、Whisper、PEFT等AI模型微调技术的博文内容。 原因如下: 根据您提供的输入内容,该项目标题和正文明确指向一篇发表在Towards AI(Medium平台)上的技术文章,核心是对比 PEFT-LoRA 与…

作者头像 李华
网站建设 2026/7/19 7:12:25

Kimi K2.6+Hermes实现多Agent生产级可靠协作的六大核心技巧

1. 项目概述:当多Agent协作从概念走向“拧螺丝式”落地“我挖到了Kimi K2.6Hermes的六个神技巧,这下多Agent 24h组队干活真成了”——这个标题一出来,我就在好几个技术群看到人截图转发。不是因为标题夸张,而是它精准戳中了当前大…

作者头像 李华
网站建设 2026/7/19 7:11:16

Android消息机制:Handler.obtainMessage()与Message.obtain()对比解析

1. Handler.obtainMessage()与Message.obtain()的机制解析在Android消息机制中,Handler和Message是两个核心类。它们都提供了obtain方法用于获取Message对象,但实现机制和使用场景存在本质差异。1.1 Handler.obtainMessage()的工作原理Handler.obtainMes…

作者头像 李华
网站建设 2026/7/19 7:10:30

电压比较器方波振荡电路设计:从LM393原理到选考实验调试

在电子技术实验和选考复习中,电压比较器实现振荡电路是一个经典且重要的课题。很多同学在初次接触时容易混淆比较器与运放的区别,对正反馈形成振荡的原理理解不透,导致电路无法正常起振或波形失真。本文将围绕浙江通用技术选考要求&#xff0…

作者头像 李华
网站建设 2026/7/19 7:10:06

MacOS编译Android源码:环境配置与疑难解决指南

1. MacOS环境下编译Android源码的核心挑战在MacOS系统上编译Android源码这件事,本质上是在两个不同生态系统的夹缝中寻找平衡点。作为从2015年就开始折腾AOSP编译的老手,我深刻体会到MacOS平台的特殊性带来的各种"惊喜"。与Linux平台相比&…

作者头像 李华