安装 RealtimeClipboard
RealtimeClipboard 在你每一台设备的浏览器里就能跑,为此你什么都不用装。 安装换来的只有一件很具体的事,而且只在一部分平台上成立:你在别的窗口里 干活的时候,应用也看得见你复制了什么。
先看这里:你到底要不要装东西?
大概率不用。在两台设备上打开应用,各自输入同一个短 密钥,它们就共用一个剪贴板。下面所有内容讲的都是一个功能 —— 后台捕获 —— 以及你的平台能不能做到它。
| 平台 | 要装什么 | 后台捕获 |
|---|---|---|
| Windows 10 / 11 | 桌面应用 | 可以 |
| macOS 11+ | 桌面应用 | 可以 |
| Linux,X11 | 桌面应用 | 可以 |
| Linux,Wayland | 桌面应用 | KDE 和 wlroots 可以;GNOME 不行 |
| Android / ChromeOS | 添加到主屏幕 | 不行 —— 被 Android 挡住 |
| iPhone / iPad | 添加到主屏幕 | 不行 —— 被 iOS 挡住 |
| 服务器、SSH | npx realtimeclipboard | 不适用 —— 它走管道 |
| 其他任何设备 | 什么都不用 —— 开浏览器 | 不行 |
下面每个平台都有一段简版说明,另外还各自有一份完整指南 —— 装好之后应该 是什么样子、怎么把第一条内容传过去,以及具体是什么会让它不工作。
-
在 Windows 上安装
.msi、托盘图标和状态栏应该显示什么,以及会挡住它的三件事: SmartScreen、被管控的单位电脑,还有 Windows 自带的剪贴板同步 —— 那是 另一个功能。 -
在 macOS 上安装
Intel 和 Apple Silicon 共用一个通用版下载,第一次打开时 Gatekeeper 会说 什么,以及为什么这里没有剪贴板权限要授予 —— 也正因为这样,应用才自己 把这件事说出来。
-
在 Linux 上安装
.deb、.rpm和 AppImage,webkit2gtk 4.1 这条 底线,以及一张表说清 Wayland:X11 可以,KDE 和 wlroots 可以,GNOME 不行, 而且没有任何办法能补救。 -
Android 和 ChromeOS
在 Chrome 里点两下,没有应用商店条目,以及那条让原生应用变得毫无意义的 Android 10 规则。当后台捕获根本不在选项里时,发送到底是怎么一回事。
-
iPhone 和 iPad
Safari 的分享菜单就是全部机制 —— iOS 上的 Chrome 做不到这件事,而且永远 不会弹出安装提示。另外还有那条粘贴横幅是什么,以及为什么没有应用关得掉它。
-
命令行
用管道送进
send,从watch里重定向出来,四条命令 一条不落。和浏览器用的是同一套加密,任何装了 Node 22 的机器上都能跑。 -
自己跑一个中继服务器
一个容器,没有数据库。怎么验证它跑起来了、怎么在前面加一层 TLS —— 还有副本数这个坑,它表现出来的样子是剪贴内容悄无声息地不到。
“后台捕获”究竟指什么
在浏览器里,RealtimeClipboard 只有在自己的窗口处于焦点时才读得到你的剪贴板。 这不是这个应用的局限 —— 这是每个浏览器对每个网站都强制执行的规则,因为 一个能悄悄读你剪贴板的页面,会把你复制过的每一个密码都收走。所以浏览器版 是这样工作的:你复制了点东西,切回 RealtimeClipboard,它在获得焦点的那一刻 把内容取走。
原生桌面应用不受这条规则约束。Windows、macOS 和 Linux 上的应用会持续盯着 系统剪贴板,所以你在任何程序里复制,它立刻就发出去,不用来回切窗口。
也就是说,桌面应用运行期间,你每一次复制它都读得到 —— 包括你因为别的原因 复制的密码。这些内容在离开你的机器之前就已经加密,也从不写到磁盘上,但这 确实是一件需要你点头的事。应用在首次启动的引导里就把话说清楚了,开关就在 那个对话框里:应用内意味着在你亲手粘贴进去之前,什么都不会离开这台 机器;它同时也在托盘菜单里,叫分享我复制的内容,所以你可以在复制 密码之前先暂停分享,连窗口都不用打开。
Windows
从下载页取 .msi。后台捕获在这里没有
任何附加条件,也不弹权限请求 —— Windows 是桌面应用最值得装的平台。
应用不需要管理员权限,不装驱动也不装服务。它只在 443 端口向一个主机名发起 出站连接,这正是 IT 部门愿意放行的形状。如果 SmartScreen 警告你,先确认文件 确实来自官方发布页, 再点继续。
macOS
一个 .dmg 同时覆盖 Intel 和 Apple Silicon —— 构建是通用的,
不用再去找第二个下载。
macOS 读剪贴板不需要任何特殊权限,所以这里没有权限请求可以授予。这件事是 双向的:如果某个应用开始读你每一次复制,操作系统不会有任何提示 —— 正因如此, 这个应用才自己说出来,在首次启动的引导里,附带对话框里那个应用内开关。
Linux
从发布页取 .deb、.rpm 或 AppImage。没有 Flathub、
Snap 或 AUR 包,这里也不会摆一条命令假装有。应用需要 webkit2gtk 4.1,大致
相当于 Ubuntu 22.04 或 Fedora 36 及以上;更老的系统请用浏览器或命令行客户端。
Wayland 那条限制,直说。在 X11 上,剪贴板一变应用就会收到通知,后台 捕获是好用的。在 Wayland 上则取决于你的合成器:KDE 和基于 wlroots 的那些提供 了对应协议,GNOME 没有 —— 在 GNOME Wayland 上,任何应用都无法监视剪贴板。 应用会检测到这一点并在状态栏里说明,而不是默默地什么都不做,然后退回到获得 焦点时再捕获,和浏览器完全一样。
Android 和 ChromeOS
没有 Android 应用,以后也不会有。从 Android 10 起,只有你当前正在用的应用、 当前的输入法,或者一个无障碍服务,才被允许读剪贴板。所以一个 RealtimeClipboard 应用能剩下的,只有一个分享菜单按钮和一个图标 —— 其余它能做的, 装好的网页应用已经在做了。
- 在 Chrome 里打开应用。
- 点菜单,然后选添加到主屏幕。
之后它就有了自己的图标和窗口,离线也能用。要发送内容,把它粘贴进应用,或者用 Android 的分享菜单。
iPhone 和 iPad
答案一样,原因也一样:iOS 从来不允许在后台读取粘贴板,而且从 iOS 16 起, 任何应用只要读一次剪贴板,系统就弹一条横幅。
- 用 Safari 打开应用。iOS 上的 Chrome 和 Firefox 装不了网页应用。
- 点分享,然后选添加到主屏幕。
iOS 自己不会弹任何安装提示,所以如果你在等一个提示出现,那是等不到的。 分享菜单就是全部机制。
服务器、SSH 会话和脚本
npx realtimeclipboard D75LV
给那些没有剪贴板、也没有屏幕的机器用。它读标准输入、写标准输出,所以能和 别的一切拼起来:
echo "deploy key" | npx realtimeclipboard send D75LV
npx realtimeclipboard watch D75LV --once > token.txt
它需要 Node 22 或更新的版本。它不是另一套实现 —— 它直接引用浏览器跑的那些 加密和传输文件,所以从服务器发出的一条内容,和从笔记本发出的没有任何区别。
自己跑一个中继服务器
中继服务器在你的设备之间传递加密后的剪贴内容。它读不到内容 —— 它看得见的 只有房间哈希和密文 —— 但如果你不愿意只凭信任接受这一点,那就自己跑一个:
docker run -p 8000:8000 ghcr.io/akshaynikhare/realtimeclipboard-relay
然后在设置 → 中继服务器里把应用指过去。
deploy 目录
里有一份带自动 TLS 的 docker-compose.yml,还有一份 Helm chart。
除非你给它配了 Redis,否则请把副本数固定为一个。