UI Enhancements
dsh-calendar-bobbychi
Bobbychina/dsh-calendar · ★ 0
Sidebar clock + month calendar with schedules and reminders for DeepSeek Harness: compact time/agenda card in the sidebar…
README body is shown in Chinese.
Manifest details
安装
dsh plugin --profile web add 'github:Bobbychina/dsh-calendar#109fa553607262f2ca7fb756dbb14a242f1815a9'GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
DeepSeek Harness 侧边栏小组件:时钟 + 月历 + 日程 + 提醒,可一键展开成全屏日历 GUI 查看/设置日程。
| 形态 | 槽位 | 内容 |
|---|---|---|
| 侧边栏卡片 | sidebar.footer.action |
秒级走字时钟 + 日期/星期 + 今日待办数 + 下一件事预览;「📅 打开日程」展开全屏 GUI |
| 侧边栏迷你钟(收起态) | 同上(wide=false) |
HH:MM + 月.日 竖排小钟,有待提醒时橙色角标,点击即打开 |
| 全屏日程 GUI | shell.overlay |
月历(周一开头、今天高亮、日程彩点)+ 当日议程(勾选完成/编辑/删除)+ 添加/编辑弹窗(时间/全天/提前提醒/分类/备注);ESC 或 ✕ 收起 |
| 设置行 | settings.general.item |
系统通知开关(页面隐藏时弹系统通知,可设“页面可见也弹”)、默认提前提醒分钟 |
提醒机制
- 定时事件在「开始时间 − 提前量」触发;全天事件按 09:00 计(可关)。提前量:不提醒/准时/5/10/15/30/60/120 分钟/1 天。
- 触发时右下角 toast(完成 / 稍后 5 分钟 / 知道了);错过窗口(定时 90 分钟内、全天到 23:59)补报一次。
- 系统通知(
NotificationAPI)需在 GUI 顶部或设置里手动开启授权;默认仅页面不可见时才弹系统通知。 - 边界:浏览器本地插件 —— 提醒只在 dsh 页面开着时生效;关着页面/关着 dsh 不会提醒(数据全在 localStorage,不联网)。
原理
| 层 | 机制 |
|---|---|
| Host | 无操作占位 entry(index.js),让 cordis 组合里有这一行;浏览器半区靠 dsh.client 声明发现 |
| Client | 手写 window.__ModuleLoader__ 工厂格式 bundle(同 dsh-wallet / dsh-newline-enter):sidebar.footer.action 卡片、shell.overlay 全屏 GUI、settings.general.item 设置行 |
| 数据 | localStorage["dsh-calendar:store"](日程数组)+ ["dsh-calendar:cfg"](通知/默认提醒),同页多组件用 dsh-calendar:change/:cfg 事件同步,跨标签页靠 storage 事件 |
安装
dsh plugin --profile web add github:Bobbychina/dsh-calendar
装完即用,不需要手改 profile:dsh plugin add 是 pnpm 转发器,装完会按 package.json 的 dsh.bundle 声明自动把插件加进该 profile 的 dsh.profile.bundles,插件自带的 cordis.patch.yml 负责往组合里 insert;profile 补丁与 /plugins/<id>/client.js 内容哈希均热更新,刷新页面即生效,无需重启。
本地开发(直接链本地目录):
dsh plugin --profile web add file:/path/to/dsh-calendar
兼容性与前置条件
- 依赖 dsh
0.1.5-rc.2的槽位sidebar.footer.action/shell.overlay/settings.general.item与手写window.__ModuleLoader__bundle 格式;dsh 版本不同(槽位名或 bundle 装载协议变更)可能挂不上,表现为侧边栏不出现卡片。 - 纯本地插件:日程存在浏览器 localStorage,不联网、不需要 API key;系统通知需在 GUI 顶部或设置里手动授权。
卸载
dsh plugin --profile web remove dsh-calendar
并移除 profiles/web/cordis.patch.yml 里对应 insert 行。
License
MIT