SmartSideBAR 是一款专为希沃(Seewo)交互智能平板 / Windows OPS 教学环境设计的常驻侧边快捷键工具。它常驻屏幕侧边,一触即达,将输入法切换、区域截图与批注、长截图、录屏、U 盘监控、打印机状态、任务管理器、定时提醒、自定义链接等高频操作整合到一个低打扰的侧边抽屉中。
针对教师触屏场景优化,无需键盘快捷键,单手即可操作。内置完整的首次体验引导(OOBE),让非技术教师在 3 分钟内完成上手。
- 希沃交互智能平板 / Windows OPS 教学一体机
- 4GB–8GB 内存的教育版 Windows 10/11 设备
- 触屏优先、低资源占用、低打扰的课堂辅助工具
| 功能 | 说明 | 优先级 |
|---|---|---|
| 输入法切换 | 一键中英文输入法切换(支持无边框/置顶焦点窗) | P0 |
| 区域截图 | 框选区域 → 批注 / 保存 / 复制,2 步内完成 | P0 |
| 屏幕批注 | 透明覆盖层直接在屏幕上圈画、书写,秒开秒画 | P0 |
| 长截图 | 选择窗口后自动滚动画布拼接长图 | P2 |
| 录屏 | WebM 录制,帧率/麦克风可配置,轻量化 | P2 |
| U 盘监控 | 插入/移除 ≤2s 内可见提醒,支持多盘符合并 | P0 |
| 打印机状态 | 缺纸/卡纸/离线/墨量低高亮提醒,附故障速查 | P1 |
| 任务管理器 | 一键拉起系统任务管理器 | P1 |
| 自定义链接 | 3 个预置 + 6 个自定义槽位,名称/图标/顺序可调 | P1 |
| 快捷键槽位 | 3 个可配置全局热键,冲突自动检测并建议替代 | P1 |
| 定时提醒 | 整点/间隔/一次性三类,支持顺延/取消 | P1 |
| 首次体验引导 (OOBE) | 6 步向导,按角色裁剪,可跳过,≤3 分钟 | P0 |
| 白名单策略 | 支持 ProgramData 层策略下发,管控模块可见性 | P2 |
# 1. 克隆仓库
git clone https://github.com/ClassTechStar/SmartSideBAR.git
cd SmartSideBAR
# 2. 安装依赖
npm install
# 3. 一键验证构建(类型检查 + 测试 + 打包 + 产出安装包)
npm run verify-build构建完成后,在 dist/ 目录下找到 SmartSideBAR-安装包-{version}.exe,双击即可安装。
npm install
npm run dev- 展开侧边栏:点击屏幕右侧(或左侧)的窄条图标轨
- 收起侧边栏:点击轨底部的 ↓ 箭头,或点击展开面板外的区域
- 各功能面板:点击图标轨上的图标,右侧展开对应功能面板
- 全局截图热键:默认
Ctrl+Shift+A(可在设置中修改)
安装后首次启动会自动弹出 OOBE 引导窗口:
- 欢迎 → 2. 选择角色(数学/英语/化学/电教管理员)→ 3. 环境检测(屏幕/触控/打印机/输入法)→ 4. 偏好设置(勾选常用功能)→ 5. 上手练习(展开/收起侧边栏)→ 6. 完成
全程 ≤ 3 分钟,任一步可随时跳过。
点击图标轨底部的齿轮图标进入设置页,可配置:
- 侧边栏位置(左/右)
- 截图保存目录与格式
- 录屏参数(帧率/码率/麦克风)
- 自定义链接槽位
- 提醒铃声(支持自定义 MP3)
- 开机自启
| 层级 | 技术 | 说明 |
|---|---|---|
| 框架 | Electron v30 | 桌面应用主框架 |
| 渲染层 | Vue 3 + Composition API | UI 组件与响应式状态 |
| 构建工具 | electron-vite | 主进程/Preload/渲染层统一构建 |
| 打包 | electron-builder | NSIS 单文件安装包 |
| 类型安全 | TypeScript 5.4 | 全栈类型覆盖 |
| 图像处理 | sharp | 截图裁剪与格式转换 |
| 日志 | electron-log | 文件日志轮转 |
| 测试 | Vitest | 单元测试 |
# 开发模式(热重载)
npm run dev
# 类型检查
npm run typecheck
# 构建(类型检查 + 打包)
npm run build
# 运行测试
npm run test
# 持续测试模式
npm run test:watch
# 代码检查
npm run lint
# 构建 Windows 安装包
npm run win
# 完整验证构建(类型检查 + 测试 + 构建 + 打包)
npm run verify-build
# 预览生产构建
npm run previewSmartSideBAR/
├── build/ # 构建资源(图标、NSIS 脚本)
│ ├── icon.ico
│ └── installer.nsh
├── resources/ # 额外资源文件
│ └── app/defaults/
│ └── config.json # 默认配置模板
├── src/
│ ├── main/ # 主进程(Node.js)
│ │ ├── main.ts # 主进程入口
│ │ ├── preload.ts # 上下文隔离 Preload 脚本
│ │ ├── services/ # 服务层
│ │ │ ├── config.ts # 配置服务(三层覆盖:默认→ProgramData→AppData)
│ │ │ ├── display.ts # 显示/DPI 适配服务
│ │ │ ├── ime.ts # 输入法服务
│ │ │ ├── capture.ts # 截图服务
│ │ │ ├── longshot.ts # 长截图服务
│ │ │ ├── recorder.ts # 录屏服务
│ │ │ ├── usb.ts # U 盘监控服务
│ │ │ ├── printer.ts # 打印机状态服务
│ │ │ ├── scheduler.ts # 定时提醒服务
│ │ │ └── diagnostic.ts # 诊断服务
│ │ └── windows/
│ │ └── manager.ts # 窗口管理器(侧边栏/OOBE/覆盖层/设置)
│ ├── renderer/ # 渲染进程(Vue 3)
│ │ ├── main.ts # 渲染层入口
│ │ ├── App.vue
│ │ ├── index.html
│ │ ├── sidebar/ # 侧边栏主应用
│ │ ├── components/ # 功能面板组件
│ │ ├── oobe/ # OOBE 引导应用
│ │ ├── overlay/ # 区域截图覆盖层
│ │ ├── annotate/ # 批注覆盖层
│ │ ├── recorder/ # 录屏控制界面
│ │ ├── settings/ # 设置界面
│ │ └── assets/ # 图标资源
│ └── shared/ # 共享代码
│ ├── ipc-channels.ts # IPC 通道白名单常量
│ ├── types.ts # 核心数据模型与类型定义
│ └── vue-shims.d.ts
├── electron.vite.config.ts # electron-vite 构建配置
├── electron-builder.yml # electron-builder 打包配置
├── tsconfig.json # TypeScript 配置
├── package.json
└── README.md
- 以 DIP(设备无关像素)为唯一业务坐标域
- 支持 100%–250% 系统缩放(含 1.75/2.25/2.5/3.0 非整数倍)
- 多显示器热插拔自动重定位(≤200ms)
- 4K@100% 与 1080p@100% 视觉尺寸一致
- IPC 白名单:所有 IPC 通道必须在
src/shared/ipc-channels.ts注册,未注册通道自动拦截 - 上下文隔离:
contextIsolation: true,主进程与渲染进程严格隔离 - Preload 脚本:唯一桥接层,仅暴露白名单 API
- 单例锁防止多实例运行
- 渲染进程崩溃后 3 秒自动重建主窗口
- 显示器/DPI 变更防抖监听(250ms)
- 操作超时保护(截图 60s,批注 5min)
- 外部关闭兜底(Alt+F4/系统关机)
| 指标 | 目标值 |
|---|---|
| 空闲内存 | ≤ 220MB(标准档)/ ≤ 150MB(节能档) |
| 冷启动至可交互 | ≤ 3s |
| 触控延迟 | ≤ 120ms(中位数) |
| 窗口重定位 | ≤ 200ms |
| 安装包体积 | ≤ 110MB |
- 操作系统:Windows 10/11(64位)
- 内存:≥ 4GB RAM
- Node.js:≥ 20.0.0
- 屏幕分辨率:1366×768 ~ 3840×2160(16:9 / 16:10)
- 系统缩放:100% ~ 250%
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建功能分支:
git checkout -b feat/xxx - 提交更改:
git commit -m "feat: xxx" - 推送分支:
git push origin feat/xxx - 创建 Pull Request
Apache-2.0 © 2026 ClassTechStar
Made with ❤️ for teachers and students