SyncClipboard
功能
- 剪贴板同步,支持文字、图片和文件。服务器/客户端架构,可以使用客户端内置服务器、独立部署服务器,也可以使用支持WebDAV的网盘作为服务器
- 优化图片类型的剪贴板,功能有:
- 从任意位置复制图片时,可以直接向文件系统粘贴图片文件,反之亦然
- 从浏览器复制图片后,后台下载原图到本地,解决无法从浏览器拷贝动态图的问题(大多网站有认证,适用范围有限,支持bilibili动态图片)
- 从文件系统复制较新格式类型的图片文件时(webp/heic等),在剪贴板内储存gif或jpg格式,用于直接向支持图片的文本框粘贴图片
服务器
独立服务器
SyncClipboard.Server支持跨平台运行,依赖ASP.NET Core 6.0,安装ASP.NET Core 运行时后,通过以下命令运行
dotnet /path/to/SyncClipboard.Server.dll --contentRoot ./
工作目录与dll所在目录一致,会产生临时文件,在appsettings.json中可以修改绑定的ip和端口,以及客户端认证需要的用户名和密码
如需修改工作目录,拷贝一份appsettings.json到新工作目录并修改--contentRoot后的路径
注意:
- 默认用户名是
admin,密码是admin,端口号是5033 - 客户端处填写
http://ip:端口号,http不可省略 - http使用明文传输(包括本软件用于认证使用的基于Basic Auth的账号密码),在公网部署考虑使用反向代理工具配置SSL
- 内置服务器并不是WebDAV实现
Docker
你也可以使用Docker轻松部署服务器
docker run -d \
--name=syncclipboard-server \
-p 5033:5033 \
--restart unless-stopped \
jericx/syncclipboard-server:latest
如需修改用户名和密码,请参考jericx/syncclipboard-server
客户端内置服务器
桌面客户端(Windows/Linux/macOS)内置了服务器,可以使用可视界面配置,注意事项同上
WebDAV服务器
可以使用支持WebDAV协议的网盘作为服务器
测试过的服务器:
注意:
- 坚果云有每月流量限制和短时间内请求次数限制,建议自行设置桌面端的
轮询服务器间隔和最大上传文件大小
客户端
桌面客户端(Windows/Linux/macOS)运行在后台时将自动同步剪贴板
展开/折叠截图
Windows
下载地址:Release页面中的SyncClipboard.zip,解压缩后运行SyncClipboard.exe
依赖:
- .NET 6.0桌面运行时,未安装会弹窗提醒并跳转到微软官方下载页面
- ASP.NET Core 6.0运行时,未安装会弹窗提醒并跳转到微软官方下载页面
- Windows10 2004及以上
- 微软Segoe Fluent Icons图标字体,Windows11自带无需安装,Windows10需要手动下载安装(官方地址),否则界面图标会大范围出错
注意:
- 删除软件时,配置文件目录不会被删除,配置文件储存在
%AppData%\SyncClipboard\,需要彻底删除软件时请手动删除整个目录
Linux, macOS
下载地址:SyncClipboard.Desktop,根据系统选择你需要的安装包
注意:
- 名称中带有
no-self-contained:依赖.NET 6.0桌面运行时和ASP.NET Core 6.0运行时 - 名称中带有
self-contained:通常可以直接运行 - 删除软件时,配置文件目录不会被删除,配置文件储存在
~/.config/SyncClipboard/(Linux),~/Library/Application Support/SyncClipboard/(macOS),需要彻底删除软件时请手动删除整个目录 - 使用
deb、rpm安装包时,每次更新版本需要先删除旧版,再安装新版,不支持直接更新 - Linux: 快捷键在Wayland不可用
- macOS:
“SyncClipboard”已损坏,无法打开,在终端中执行sudo xattr -d com.apple.quarantine /Applications/SyncClipboard.app - macOS: 快捷键依赖辅助功能权限(Accessibility),软件在需要时会弹窗提示(所有快捷键为空时则不需要),每个新版本需要重新授予权限
IOS
使用快捷指令
- 手动同步,导入这个快捷指令,手动触发上传或下载
- 自动同步,导入这个快捷指令,运行后设备会自动在后台同步剪贴板内容,此快捷指令将执行无限时长,需要手动关闭,你还可以手动修改同步后是否发送系统通知、查询的间隔秒数
Android
使用HTTP Request Shortcuts
导入这个配置文件,修改变量中的UserName,UserToken,url, url不要以斜线分隔符/结尾。HTTP Request Shortcuts支持从下拉菜单、桌面组件、桌面图标、分享菜单中使用
导入配置文件后修改配置图示
使用Autox.js
导入这个js文件,修改脚本中的前几行,并在Autox.js中设置脚本的触发方式,例如:开机时触发
// START User Config
const url = 'http://192.168.5.194:5033'
const username = 'admin'
const token = 'admin'
const intervalTime = 3 * 1000 // 3 seconds
const showToastNotification = true
// END User Config
Autox.js脚本运行在后台时可以自动下载远程剪贴板文字到本地,但自动上传依赖下列条件之一
- 将软件切换到前台
- Android版本小于等于Android 9 Pie
- 使用基于root权限的工具(Magisk/Xposed)解除
Autox.js后台操作剪切版的权限,参考
客户端配置说明
全平台依赖三条必要配置(配置的拼写可能会有所不同,含义相同)。
- user
- password
- url,格式为http(s)😕/ip(或者域名):port。使用WebDav服务器时,url需要具体到一个已存在的文件夹作为工作目录,例如
https://domain.com/dav/folder1/working%20folder,特殊符号需要使用url转义字符代替,不要使用这个文件夹存储其他文件。不使用桌面客户端(Windows/Linux/macOS)时需在工作目录中再创建file文件夹以同步文件,桌面客户端会在设置服务器时自动创建file文件夹。url尽量不要以斜线分隔符/结尾,在部分客户端中会出现问题。
API
以下是SyncClipboard用到的且SyncClipboard.Server实现了的接口
获取/上传剪贴板(文字)
GET /SyncClipboard.json
PUT /SyncClipboard.json
获取/上传剪贴板(图片/文件)
GET /SyncClipboard.json
HEAD /file/filename // optional
GET /file/filename
PUT /file/filename
PUT /SyncClipboard.json
SyncClipboard.json
{
"Type" : "Text"
"Clipboard" : "Content",
"File":""
}
{
"Type": "Image", // or "File"
"Clipboard": "md5 hash, optional",
"File": "filename"
}




好文好文

好文,不过我选择微信输入法
好文好文
@zen543 #3
小龙叔叔把你的底裤都看光了
@Ghost #5 我又不是程序员,没有动不动就搞自建的需求和技术。
对普通人来说,被张小龙一个人看穿底裤,总比百度,搜狗这些好,他们还会分享给其他人。
@zen543 #6
蛇鼠一窝,我们来到这个论坛的目的不就是为了探索新的东西
@Ghost #7 两害相权取其轻
不到半小时就部署好了。安卓14建议用xposed-clipboard-whitelist这个模块,在lsp把系统界面勾一下重启就好了
有没有mac端的截图