DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

unsiscon /

unsiscon/dsh-novel-launcher

Verified

在 DSH 界面放一个悬浮球:点开本地书单,用你自己的阅读器打开,窗口自动归位。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@fbabe18b

dsh-novel-launcher 📖

在 DeepSeek Harness 的界面里放一个悬浮球:点开本地书单,选一本用你自己的阅读器打开,窗口自动落在你习惯的位置。

写代码的间隙看两眼小说,不用切窗口。


界面预览

点右下角的 📖 悬浮球,展开本地书单 —— 顶部「继续读」直接续上,中间三路搜索,底部一键记住窗口位置:

书单面板:继续读、拼音搜索、书库列表、记住位置 / 设置按钮

悬浮球常驻在界面右下角,不占布局、不影响写代码:

悬浮球常驻在 DSH 界面右下角

它做什么

  • 🟢 右下角悬浮球 —— 不占布局,点开点收
  • 📚 本地书单 —— 扫描你的书库文件夹,只列出真正的电子书
  • 🔍 三路搜索 —— 中文(魔界)、全拼(mojie)、首字母(mjd)都能搜到《魔界的女婿》
  • ⏯ 继续读 —— 顶部永远显示上次读到哪本、第几章
  • 🪟 窗口归位 —— 打开后自动把阅读器窗口搬到预设位置,顺手收掉上一个旧窗口
  • 🎨 跟随主题 —— 用 DSH 的设计变量,明暗自动适配
  • 🌗 点外部关闭 / Esc / 选书即收起 / 关闭自动清空搜索

它不做什么

  • 不抓网络小说、不带阅读器。书是你自己的,阅读器也是你自己的。
  • 不上传任何东西,纯本地。

安装

dsh plugin --profile web add github:<you>/dsh-novel-launcher

装好后重启一次 dsh web,刷新浏览器,右下角出现 📖 即可。

开发版:把本目录放进 ~/.dsh/profiles/web/node_modules/dsh-novel-launcher/, 再把 dsh-novel-launcher 加进 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 列表,重启即可(无需构建 —— 本插件纯 JS)。

首次使用

点悬浮球 → 自动进入设置页 → 选一个放书的文件夹 → 保存。完事。

设置项

设置 说明
书库目录 你的电子书放在哪
阅读器进程名 窗口归位用(macOS)。例如 OmniReader
阅读器 Bundle ID 优先用它来打开书,例如 com.shrek.masterreader
阅读器 .app 路径 可选,填了最优先
认这些格式 默认 epub, txt, mobi, azw3, pdf, fb2, chm, djvu, rtf, md, html
窗口归位 开书后搬窗口 + 收旧窗(仅 macOS)
拼音搜索 用 macOS 系统自带的中文转拼音(仅 macOS)
显示「继续读」 自动探测阅读器的本地数据库

窗口归位(macOS)是怎么工作的

macOS 不允许随便操纵别的程序的窗口,必须拿到「辅助功能」授权。为了拿到一个稳定可授权的身份,插件会:

  1. 首次启用时用 osacompile 把 assets/window-helper.applescript 编译成 ~/Applications/小说窗口助手.app
  2. 你在 系统设置 → 隐私与安全性 → 辅助功能 里把它加进去(只需一次)
  3. 之后每次开书,插件通过 /tmp 下的一个小命令文件告诉它做什么模式

这样做而不是直接跑 osascript,是因为后者的授权身份挂在 Node 上 —— Node 一升级路径就变,授权会静默失效。用一个独立小程序就没这个问题。

助手只做两件事:记住当前窗口位置 / 把窗口搬回那个位置(并关掉停在那个位置上的旧窗口)。 它永远不会关掉最前面那个窗口 —— 那是你刚打开的新书。

不想授权也完全没问题:关掉「窗口归位」,其他功能照常。

跨平台

功能 macOS Windows / Linux
悬浮球 / 书单 / 搜索 / 打开书 ✅ ✅(交给系统默认程序)
窗口归位 · 收旧窗 ✅ ❌ 自动隐藏该选项
拼音搜索 ✅ ❌ 自动关闭

数据与隐私

  • 配置:$DSH_HOME/novel-launcher/config.json
  • 窗口位置:~/Library/Application Support/DSHNovelLauncher/frame.txt
  • 命令文件:/tmp/dsh-novel-window-cmd.txt(每次开书覆盖一次)
  • 全部只在本机,不联网、不上传。

架构

  • Host 半体(lib/index.js):普通 Cordis 插件。扫目录、算拼音(走 osascript 调 macOS 的 NSString 转写)、探测阅读器数据库、拉起窗口助手,并注册 /novel-launcher/* 这组同源 JSON 接口。
  • 浏览器半体(lib/client.js):window.__ModuleLoader__.load 的纯 JS bundle, 注册进 shell.overlay 槽位。
  • 两者只用 HTTP 通信,不依赖任何私有 RPC。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit fbabe18b53c8

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout