dsh-offwork-countdown
页面右上角的下班倒计时小卡片 · 可拖动、可配置,给 DeepSeek Harness Web GUI 用
一个 DeepSeek Harness Web 界面挂件:在页面右上角显示一张下班倒计时小卡片——距离下班还剩多久、今天过了多少,顺手就能改上下班时间,卡片还能拖到任意位置。跟随宿主主题(明/暗)与中英文界面。
A draggable off-work countdown card for the DeepSeek Harness Web GUI. Shows the remaining time and day progress, keeps its own work-hour settings on this device, and remembers where you dragged it.
卡片长什么样
┌──────────────────────────────────────┐
│ ◔ 距离下班 03:12:45 ⚙ │
│ 09:00 – 18:00 · 周三 62% │
│ ▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░ │
└──────────────────────────────────────┘
- 大号等宽倒计时
HH:MM:SS,每秒更新 - 今日进度条 + 百分比
- 状态自动切换:上班前 · 工作中 · 已下班(变绿,显示已下班时长)· 休息日(提示下个工作日)
- 点右上角滑杆图标,卡片内直接改「上班时间 / 下班时间 / 仅工作日」,保存后立即生效
- 按住卡片即可拖动,位置会被记住并始终限制在窗口内;没拖动过时默认吸附右上角偏下(避让顶部工具栏)
- 文案走宿主 locale 服务,中英文自动切换
安装
前提:已安装 DeepSeek Harness,并使用 Web 界面(dsh web 启动后打开的页面)。
方式一:从 GitHub 安装(推荐)
dsh plugin --profile web add github:konwait12/dsh-offwork-countdown
安装后重启 dsh web(或重新打开 Harness)。若「设置 → 插件」里还没启用,手动打开一次即可。
方式二:本地目录开发安装
git clone https://github.com/konwait12/dsh-offwork-countdown.git
dsh plugin --profile web add link:/absolute/path/to/dsh-offwork-countdown
链接安装后修改 client.js 会被宿主的热更新链路拾取(个别情况需要刷新页面)。
使用
- 改时间:点卡片右上角的滑杆图标 → 填上下班时间 → 保存。默认
09:00 – 18:00,仅统计周一到周五。 - 移动:按住卡片(设置按钮除外)拖动;松手后位置保存在本机,下次打开还在原处。窗口缩小时会自动拉回可见区域。
- 恢复默认时间:设置面板里的「恢复默认」。
- 想停用:设置 → 插件里关闭「下班倒计时」,或
dsh plugin --profile web remove dsh-offwork-countdown。
数据存储
所有数据只保存在本机浏览器 localStorage,不上传:
| key | 内容 |
|---|---|
dsh.offwork-countdown.v1 |
上班/下班时间、是否仅工作日 |
dsh.offwork-countdown.position.v1 |
拖动后的卡片位置 |
兼容性
在 DSH 0.2.1-rc.2 的 web profile 上开发与验证。依赖宿主提供的 shell.overlay 槽位与客户端 locale 服务;如果未来宿主重命名或移除该槽位,卡片将不再出现,需要相应调整。
项目结构
本仓库本身就是一个可直接安装的 DSH bundle 包,没有构建步骤:
| 文件 | 作用 |
|---|---|
index.js |
Host 半侧:一个空 apply(),让 bundle 作为可管理插件存在 |
client.js |
浏览器半侧:window.__ModuleLoader__ 注册、向 shell.overlay 槽位注册卡片、所有渲染与交互逻辑 |
cordis.patch.yml |
把插件行插入 profile 配置 |
locale/zh.json、locale/en.json |
插件列表里显示的标题/描述 |
icon.svg |
插件图标(原创) |
纯 JavaScript + React(宿主提供),不引入任何额外依赖,也不 require 宿主内部模块;样式只用宿主的 --dsw-* 主题 token。
No comments yet. Be the first to write one.