Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

ClipboardSync — KOReader 跨设备剪贴板同步插件

在 KOReader 和手机之间双向同步剪贴板文本,类似微信输入法的跨设备剪贴板,但无需任何账号、无需在手机端运行任何后台服务。

本插件基于开源推送服务 ntfy.sh 实现,在此向 ntfy 的作者 Philipp C. Heckel 致敬——正是他免费开放的 pub/sub 服务和移动端 App,让这个插件成为可能。ntfy 仓库: github.com/binwiederhier/ntfy。


目录


功能一览

功能 说明
手机 → Kindle 手机复制文本 → KOReader 拉取 → 写入剪贴板,可在搜索/笔记/字典框粘贴
Kindle → 手机 选中文字一键推送 → 手机收到 ntfy 通知 → 长按复制
双向隔离 用两个频道自动分开方向,拉取时不会拿到自己刚推送的内容
无需后台服务 手机和 Kindle 都只做 HTTP 客户端,不需要常驻后台
跨网络 不限于局域网,4G/5G 也能用
自建支持 可填入自建 ntfy 服务器地址,完全自主掌控

工作原理

┌─────────┐      POST /<topic>-p2k      ┌───────────┐      GET /<topic>-p2k/json      ┌──────────┐
│  手机    │  ──────────────────────────▶ │           │  ──────────────────────────────▶ │          │
│ (复制)   │                              │  ntfy.sh  │                                  │ KOReader │
│         │  ◀────────────────────────── │  (中转)    │  ◀────────────────────────────── │ (拉取)   │
│  收到通知 │      POST /<topic>-k2p      │           │      GET /<topic>-k2p/json       │          │
└─────────┘                              └───────────┘                                  └──────────┘
  • <topic>-p2k:手机 → Kindle(Phone to Kindle)
  • <topic>-k2p:Kindle → 手机(Kindle to Phone)

你只需选一个不易猜到的主题名(如 my-clip-a7x9k2),插件自动在上面追加 -p2k 和 -k2p 后缀,创建两个独立频道。这样 Kindle 拉取时只会收到手机发的,不会收到自己刚推送的。


快速开始

30 秒速览:

  1. 把插件文件夹拷到 KOReader 插件目录,重启
  2. 菜单 → Clipboard sync → Settings → Topic,填一个随机主题名(如 my-clip-a7x9k2)
  3. 手机装 ntfy App,订阅 <你的topic>-k2p 频道接收 Kindle 推送
  4. 手机建一个快捷指令,POST 剪贴板到 https://ntfy.sh/<你的topic>-p2k 发送给 Kindle
  5. Kindle 菜单 → Pull from device 拉取

安装

1. 安装 KOReader 插件

将 clipboardsync.koplugin 文件夹完整复制到 KOReader 的插件目录:

平台 插件目录路径
Kindle(USB 连接) Kindle 存储根目录下 koreader/plugins/
Android Android/data/org.koreader.koreader/files/koreader/plugins/(需用文件管理器访问)
其他(Linux/Mac) KOReader 安装目录下的 plugins/

复制后重启 KOReader,菜单中会出现 Clipboard sync 选项(通常在 More tools 下)。

2. 手机端配置

iPhone / iPad

所需工具: ntfy(App Store 免费) + iOS「快捷指令」App(系统自带)

接收 Kindle 推送的文本
  1. 从 App Store 安装 ntfy
  2. 打开 ntfy → 点击右上角 +
  3. 输入 my-clip-a7x9k2-k2p(你的主题名加 -k2p)
  4. Kindle 推送文本后,手机会收到推送通知,点开即可看到全文,长按复制到剪贴板
发送手机剪贴板到 Kindle

用 iOS「快捷指令」App 创建一个一键发送快捷方式:

  1. 打开「快捷指令」App → 新建快捷指令
  2. 添加操作 ①:获取剪贴板
  3. 添加操作 ②:获取 URL 内容
    • URL:https://ntfy.sh/my-clip-a7x9k2-p2k(你的主题名加 -p2k)
    • 方法:POST
    • 请求体:选择「文本」,填入上一步的「剪贴板」变量
  4. 点击右上角 ... → 添加到主屏幕
  5. 使用时:复制文字 → 点主屏幕上的快捷方式图标 → Kindle 上点 Pull from device

也可以直接在 ntfy App 内手动发布(Topic 填 my-clip-a7x9k2-p2k),但快捷指令更方便,一键完成。

Android

所需工具: ntfy(Google Play 或 F-Droid 免费)

接收 Kindle 推送的文本
  1. 安装 ntfy App
  2. 打开 ntfy → 点击 + → 输入 my-clip-a7x9k2-k2p
  3. Kindle 推送文本后,手机收到通知,点开查看,长按复制
发送手机剪贴板到 Kindle

方式一:ntfy App 内手动发布(最简单)

  1. 打开 ntfy App → 点击底部的发布图标(纸飞机)
  2. Topic 填 my-clip-a7x9k2-p2k
  3. Message 粘贴要发送的文本 → 点击发布

方式二:用 Tasker / MacroDroid 自动化(推荐)

创建一个自动化任务:读取剪贴板 → HTTP POST 到 https://ntfy.sh/my-clip-a7x9k2-p2k,绑定到通知栏或桌面快捷方式。以 Tasker 为例:

  1. 新建 Task → 添加 Variable Query(读取剪贴板内容到 %CLIP)
  2. 添加 HTTP Request:
    • Method:POST
    • URL:https://ntfy.sh/my-clip-a7x9k2-p2k
    • Body:%CLIP
    • Content-Type:text/plain
  3. 在桌面添加 Task 快捷方式

方式三:用 HTTP Shortcuts App(免费专用工具)

这是一个专门发 HTTP 请求的 App,比 Tasker 更简单:

  1. 新建一个 Shortcut → Method 选 POST
  2. URL 填 https://ntfy.sh/my-clip-a7x9k2-p2k
  3. Body 类型选 Text,填入 {{clipboard}}(它支持读取剪贴板)
  4. 保存后在桌面放一个图标,点一下就发送

使用方法

手机 → Kindle(手机复制,Kindle 粘贴)

  1. 在手机上复制文本(或运行快捷指令发送)
  2. 在 KOReader 中打开菜单 → Clipboard sync → Pull from device
  3. 文本写入 KOReader 剪贴板,可在搜索框、笔记、字典输入框中粘贴

Kindle → 手机(Kindle 复制,手机粘贴)

方式一:选中文本直接推送(最常用)

  1. 在 KOReader 中长按选中文字
  2. 在弹出的高亮菜单中点击 Push to device
  3. 手机收到 ntfy 通知,点开查看,长按复制

方式二:推送已有剪贴板内容

  1. 在 KOReader 中复制文本到剪贴板(选中文本后点 Copy)
  2. 打开菜单 → Clipboard sync → Push clipboard to device
  3. 手机收到通知

自建服务器(可选)

如果你不放心公共 ntfy.sh 服务,可以自建 ntfy 服务器。ntfy 是开源的(GPLv2 + Apache 2.0 双许可),Docker 一行命令就能跑:

docker run -d \
  --name ntfy \
  --restart=unless-stopped \
  -p 80:80 \
  -v ntfy-cache:/var/lib/ntfy \
  -v ntfy-config:/etc/ntfy \
  binwiederhier/ntfy serve

自建后,在 KOReader 菜单 → Clipboard sync → Settings → Server 中填入你的服务器地址(如 http://192.168.1.100)。ntfy 支持访问控制(Access Control),可以给频道加密码,防止他人读取或发送。详见 ntfy 官方文档。


安全说明

  • ntfy.sh 免费版是公开的,知道频道名的人理论上可以读取或发送消息
  • 请使用不易猜到的频道名(如 my-clip-a7x9k2,不要用 test 或 clipboard)
  • 本插件不会传输任何账号密码,只有你主动复制或选中的文本
  • 如需更高安全性,请自建服务器并开启访问控制
  • ntfy 官方也不存储消息超过约 12 小时,且不会持久化消息内容

限制说明

限制 说明 应对
Kindle 剪贴板是 KOReader 内部的 拉取的文本只能在 KOReader 内部粘贴(搜索、笔记、字典) Android 版 KOReader 调用的是系统剪贴板,可跨应用粘贴
Kindle 会休眠 KOReader 不常驻后台,休眠后无法接收推送 本插件设计为按需拉取(Pull),不依赖 Kindle 后台常驻
ntfy 推送延迟 Kindle → 手机方向靠 ntfy 推送通知,通常几秒 属于正常推送延迟
消息缓存 ntfy.sh 免费版缓存约 12 小时 如需更长,自建服务器调整 cache-duration

常见问题

Q: 插件菜单里找不到 Clipboard sync?

确认插件文件夹完整放在了正确的 plugins/ 目录下,且重启了 KOReader。文件夹名必须是 clipboardsync.koplugin,包含 main.lua 和 _meta.lua 两个文件。

Q: Pull from device 提示"No clipboard found"?

说明手机还没有往 <topic>-p2k 频道发过消息。确认:

  1. 主题名拼写正确
  2. 手机端的 URL 里确实是 -p2k 后缀(不是 -k2p)
  3. 手机已成功发送(用浏览器直接访问 https://ntfy.sh/<topic>-p2k/json?poll=1 看能否收到)

Q: Push to device 后手机没收到通知?

  1. 确认 ntfy App 已开启通知权限
  2. 确认订阅的是 -k2p 后缀的频道(不是 -p2k)
  3. 检查 KOReader 是否已连接 WiFi

Q: 可以用一台手机配多个 Kindle 吗?

可以。每台 Kindle 用同一个主题名即可,多台设备会共享同一个频道。

Q: 文本里有换行和特殊字符会丢失吗?

不会。插件通过 HTTP POST body 以 UTF-8 纯文本传输,换行、中文、emoji 都能完整保留。


致谢

本插件的核心功能完全依赖于 ntfy.sh 这项免费、开源的推送通知服务。ntfy 由 Philipp C. Heckel 开发并开源,采用 Apache 2.0 + GPLv2 双许可,提供了:

没有 ntfy 的开放和慷慨,这个插件就不可能以"零配置、零后台服务"的方式实现。在此向 Philipp 和所有 ntfy 贡献者致敬。

同时感谢 KOReader 团队提供了优秀的电子书阅读器和灵活的插件系统。


许可证

本项目基于 GNU General Public License v3.0 开源。

ClipboardSync — KOReader 跨设备剪贴板同步插件
Copyright (C) 2026

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

About

KOReader 双向剪贴板同步插件(基于 ntfy)

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages