PPT Timer:一个置顶于PPT全屏放映之上的LCD倒计时器
演讲超时课堂拖堂用一个赛博朋克风格的桌面倒计时器帮你精准掌控每一分钟。痛点讲PPT的时候你大概率遇到过这些场景答辩给了8分钟讲到一半才发现已经过了6分钟手机计时器被PPT全屏挡住根本看不到Windows自带的闹钟在全屏模式下不弹出市面上的计时器软件要么丑得离谱要么不能真正置顶在PPT放映模式之上核心矛盾很简单PowerPoint的放映模式会独占全屏普通窗口根本显示不出来。PPT Timer 就是为了解决这一个问题而生的。它长什么样黑底荧光绿DSEG7液晶字体模拟真实LCD面板——上世纪终端机和考试用电子钟的既视感┌──────────────────────────┐ │ TIMER × │ │ ┌──────────────────────┐ │ │ │ 05:00 │ │ ← DSEG7 七段液晶数字 荧光绿发光 │ │ (88:88) │ │ ← 底层灰暗底纹模拟未点亮的LCD段 │ └──────────────────────┘ │ │ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ │ ← 30段LED进度条 │ ▶ ↺ │ ← 播放/暂停 重置 │ 01 03 05 08 15 │ ← 预设按钮分钟 └──────────────────────────┘ ↑ 1px荧光绿边框终端风核心特性真正的置顶—— 使用 Electron 的screen-saver级别窗口层级比系统级别的alwaysOnTop更高一层。PPT放映模式、游戏全屏、视频播放器——都挡不住它。win.setAlwaysOnTop(true,screen-saver);这一行是整个项目的灵魂。Electron 提供了多个置顶级别normal→floating→torn-off-menu→modal-panel→main-menu→status→pop-up-menu→screen-saverscreen-saver是最高级别连屏保都压得住。60fps 流畅计时—— 没有用setInterval。setInterval在后台标签页或高负载时会被浏览器降频导致倒计时不准。PPT Timer 使用requestAnimationFrame delta time 差值计算functiontick(timestamp){constdeltatimestamp-lastTick;lastTicktimestamp;remainingMs-delta;// ...requestAnimationFrame(tick);}计时精度不依赖定时器的调用频率而是依赖真实流逝的时间。颜色渐变预警—— 倒计时不是只有数字在跳。整个界面会根据剩余时间改变状态剩余时间颜色效果 30s#00ff41荧光绿正常计时10~30s#ffb000琥珀黄边框 LED条变黄 10s#ff0040红色数字闪烁 LED条闪动0s红色全窗口闪烁3次不需要盯着数字看——余光瞟到颜色变了就知道该收尾了。技术实现项目结构ppt-timer/ ├── main.js # Electron 主进程窗口配置 置顶策略 ├── preload.js # 安全桥接contextIsolation IPC ├── renderer/ │ ├── index.html # 界面布局 │ ├── style.css # LCD主题 动画 DSEG字体 │ └── app.js # 计时引擎 状态机 ├── assets/ │ └── icon.ico # 七段LCD风格图标 ├── .github/workflows/ │ └── release.yml # CItag推送自动构建发布 └── package.json总共不到600 行代码零运行时依赖。纯 HTML/CSS/JS没有 React没有 Vue没有 Tailwind。窗口策略无边框 透明背景 不可缩放窗口本身是隐形的只有中间那个280x320的黑色面板是可见的newBrowserWindow({width:280,height:320,frame:false,// 去掉标题栏transparent:true,// 背景透明resizable:false,alwaysOnTop:true});拖拽通过 CSS 实现——标题栏区域设置-webkit-app-region: drag按钮区域设置no-drag。窗口失焦时会重新声明置顶级别防止某些场景下被其他窗口抢占win.on(blur,(){win.setAlwaysOnTop(true,screen-saver);});LCD 视觉效果DSEG7 字体—— 开源的七段显示字体通过 jsDelivr CDN 加载。底层叠了一层暗灰色的88:88作为LCD底纹模拟真实液晶屏上未点亮的笔段。Scanline 扫描线—— 用 CSSrepeating-linear-gradient叠加2px间距的半透明横线模拟CRT/LCD的扫描线质感。Glow 发光——text-shadow双层扩散内层8px紧贴外层20px弥散模拟荧光管的发光晕染。状态机计时器有4个状态转换路径明确idle → running → paused → running → ... → finished ↑ │ └──────────── reset ←──────────────────────┘LED 进度条不是圆环不是线性进度条——是30个独立的小方块逐段熄灭像真实的LED阵列指示灯。最后10秒末尾的方块会高频闪动。使用方式下载安装直接去 GitHub Releases 下载PPT Timer Setup 0.1.0.exe双击安装。从源码运行gitclone https://github.com/ZengLiangYi/ppt-timer.gitcdppt-timernpminstallnpmstart需要 Node.js 20。操作点击底部预设按钮0103050815直接开始倒计时点击输入自定义分钟数▶暂停/继续↺重置拖拽标题栏移动窗口位置打开PPT放映 → 计时器始终在最上层CI/CD推 Tag 自动发布项目配置了 GitHub Actions工作流程git tag v0.2.0 git push origin v0.2.0推送v*格式的 tag 后GitHub Actions 自动在windows-latest上执行npm ci→electron-builder --win→ 将生成的.exe安装包发布到 GitHub Releases。整个流水线大约2分钟跑完。不需要本地装打包环境不需要手动上传文件。已知限制目前只打包了 Windows x64 版本PPT放映主要是Windows场景字体通过CDN加载首次启动需要网络后续有缓存没有声音提醒考虑到演讲场景声音反而是干扰后续计划字体本地化打包支持离线使用macOS 打包支持可配置的预设时间组正计时模式多显示器场景优化GitHub: https://github.com/ZengLiangYi/ppt-timer下载: PPT Timer v0.1.0协议: MIT — 随便用随便改。

相关新闻

有源电力滤波器APF:从方案到代码实现的精彩之旅

有源电力滤波器APF:从方案到代码实现的精彩之旅

APf/SVG方案,3dsp结构I型结构,带三相四线和三相三线制,三电平结构,锁相环,电流/电压双环控制,输出Spwm和SVPwm的都已完成测试成功,电流环为PI重复控制器。28335控制器 有源电力滤波器APF程序源代…

2026/5/17 11:56:58 阅读更多 →
语义流形(Semantic Manifold)是理解 embedding 空间最核心的概念之一

语义流形(Semantic Manifold)是理解 embedding 空间最核心的概念之一

语义流形(Semantic Manifold)是理解 embedding 空间最核心的概念之一。很多人知道 embedding 可以表示语义,但不知道语义为什么会在向量空间中形成结构。下面一步一步解释。一、什么是“流形(Manifold)” 先看数学概念…

2026/5/17 11:56:57 阅读更多 →
100天精通C语言【第一天】:函数

100天精通C语言【第一天】:函数

目录 1.函数的声明 2.实参和形参 3.函数的递归 1.函数的声明 目的:1.减少频繁定义函数 2.函数嵌套中涉及未定义的函数可以提前使用 2.实参和形参 实参代表着数据的地址和本身,在函数调用的使用就是使用形参, 而在函数定义的时候就是用形…

2026/5/17 11:56:57 阅读更多 →

最新新闻

Android SO库逆向实战:从JNI入口到ARM指令的完整追踪方法

Android SO库逆向实战:从JNI入口到ARM指令的完整追踪方法

1. 项目概述:告别“盲人摸象”式的逆向调试 逆向分析Android的so库,尤其是涉及到JNI(Java Native Interface)调用的场景,对很多开发者来说,就像在黑暗中摸索。你面对的是一个编译后的二进制文件&#xff0c…

2026/7/5 22:26:52 阅读更多 →
高精度电压管理:KMR221与PIC18F85J50的工业级应用

高精度电压管理:KMR221与PIC18F85J50的工业级应用

1. 项目概述:高精度电压管理的核心需求在工业自动化和精密仪器领域,电压管理就像人体的神经系统一样关键。想象一下,当你在操作一台精密医疗设备时,哪怕0.1%的电压偏差都可能导致检测结果失真;或者在半导体制造中&…

2026/7/5 22:26:52 阅读更多 →
Halcon NCC与形状匹配实战对比:3类工业场景下的算子选型与性能实测

Halcon NCC与形状匹配实战对比:3类工业场景下的算子选型与性能实测

Halcon NCC与形状匹配实战对比:3类工业场景下的算子选型与性能实测在工业视觉检测领域,模板匹配算法的选择直接影响着系统的稳定性和效率。Halcon作为机器视觉领域的标杆软件,提供了create_ncc_model(基于灰度相关)和c…

2026/7/5 22:24:52 阅读更多 →
汽车电子智能散热方案:DRV8213驱动与PIC18F控制实践

汽车电子智能散热方案:DRV8213驱动与PIC18F控制实践

1. 项目概述:汽车电子系统中的智能散热方案设计在车内嵌入式电子系统的开发中,热管理始终是影响系统稳定性和寿命的关键因素。最近我在一个车载信息娱乐系统的项目中,遇到了主控芯片在高温环境下频繁降频的问题。通过采用DRV8213电机驱动器控…

2026/7/5 22:24:52 阅读更多 →
Python 爬虫实战:汽车之家 50,524 条车型数据入库,MySQL 与 MongoDB 性能对比

Python 爬虫实战:汽车之家 50,524 条车型数据入库,MySQL 与 MongoDB 性能对比

Python 爬虫实战:汽车之家 50,524 条车型数据入库与数据库选型指南1. 爬虫数据存储的核心挑战在数据驱动的互联网时代,爬虫技术已成为获取信息的重要手段。但许多开发者在完成数据抓取后,往往面临一个关键问题:如何高效、可靠地存…

2026/7/5 22:20:51 阅读更多 →
红外与可见光图像配准:基于斜率一致性的创新方法

红外与可见光图像配准:基于斜率一致性的创新方法

1. 红外与可见光图像配准的核心挑战在计算机视觉领域,红外与可见光图像的配准一直是个棘手问题。我十年前第一次尝试用传统SIFT算法匹配这两种模态的图像时,匹配点对少得可怜——红外图像主要反映温度分布,可见光图像则依赖光学反射&#xff…

2026/7/5 22:20:51 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻