缘起
我在之前的文章中介绍过多电脑键鼠共享软件Barrier/InputLeap/Deskflow,可以在Windows、macOS和Linux系统间共享键盘和鼠标,极大地方便了多电脑办公的体验。这些软件也支持跨系统共享剪切板内容,但我在使用中发现,共享剪切板的功能在Wayland环境下并不可用。不幸的是,我的主力电脑使用的Fedora 42系统,默认使用的图形界面正是Wayland,因此我无法在这台电脑上使用Barrier/InputLeap/Deskflow的剪切板共享功能。
后来我在Deskflow的讨论区看到有人提到另一款跨系统剪切板共享软件ClipCascade,说可以使用这个第三方软件来实现跨系统的剪切板共享功能,它支持Wayland环境。我尝试安装使用了一下,发现确实可以满足我的需求,因此在这里分享一下ClipCascade的安装和使用方法。
关于之前介绍的Barrier/InputLeap/Deskflow的安装和使用,可以参考我的这篇文章:全平台免费键盘鼠标共享软件Barrier/InputLeap/Deskflow的安装与使用。
简介
ClipCascade是一款免费开源的跨平台的剪切板共享软件,支持在Windows、macOS、Linux和Android系统间共享剪切板内容。它支持Wayland环境,因此可以在比较新的Linux系统上使用。而且它支持自建搭建服务器,因此数据传输更安全。
安装
共享剪切板服务器
在安装ClipCascade之前,我们需要先搭建一个共享剪切板的服务器。
其实ClipCascade官方提供了一个公共服务器,任何人都可以使用,但数据会经过第三方,如果你对隐私有较高的要求,建议自行搭建服务器。当然使用公共服务器你也可以选择加密传输数据,因此安全性也还不错。但我已经习惯自建各种服务了,所以这里就决定自建一个ClipCascade服务器了。
用Docker建ClipCascade服务器
ClipCascade官方提供了Docker镜像,可以直接用Docker来搭建服务器。我习惯了使用Docker Compose来管理Docker容器,因此这里也用Docker Compose来搭建ClipCascade服务器。所需的docker-compose.yml文件在ClipCascade的GitHub仓库里也有提供,可参见这里。下面是我使用的docker-compose.yml文件内容:
|
|
这里的DATA_DIR和TZ是从.env文件中读取的环境变量,DATA_DIR指定了ClipCascade服务器的数据存储目录,TZ指定了时区。你可以根据自己的需要修改这些配置。
另外,我还指定了traefik-network网络,因为我使用Traefik作为反向代理服务器,所有的服务都连接到这个网络。如果你没有使用Traefik,可以去掉这部分配置。
用Traefik反向代理ClipCascade服务器
关于Docker服务的反向代理,我在之前的文章中也介绍过,可以参考:
这两篇文章分别介绍了如何使用Nginx和Traefik来反向代理Docker服务。这里我继续使用Traefik来反向代理ClipCascade服务器。
我使用动态配置文件来配置Traefik的反向代理规则,创建一个名为clipcascade.yml的动态配置文件,内容如下:
|
|
启动服务与创建用户
-
启动Docker容器
进入存放
docker-compose.yml文件的目录,运行以下命令启动ClipCascade服务器:1docker-compose up -d -
反向代理
如果使用Traefik动态配置文件,配置文件创建好之后Traefik会自动加载配置,无需重启Traefik。
如果使用Nginx反向代理,需要重启Nginx服务:
1sudo systemctl restart nginx -
登录与创建用户
打开浏览器,访问
http://clipcascade.example.com(将clipcascade.example.com替换为你的域名),你会看到ClipCascade的登录页面。默认情况下,管理员账号是admin,密码是admin123。登录后会看到下面的页面:
建议你登录后立即点击上方的“修改密码”链接来修改管理员密码。
然后可以创建一个普通用户账号,用于日常使用。点击
Admin Panel里的Add New User按钮,输入用户名和密码,然后点击Add User按钮即可创建新的用户。
客户端安装与使用
ClipCascade支持多种操作系统,包括Windows、macOS、Linux和安卓。你可以根据GitHub仓库里的文档来下载并安装对应系统的客户端。
需要注意的是,Windows、macOS和Android系统上都有打包好的安装包,但是Linux系统上只有未打包的Python源码,需要自己解决依赖并运行。这里我以Fedora 42为例,介绍一下Linux系统上ClipCascade客户端的安装和使用。
Fedora 42上安装ClipCascade客户端
-
Python环境
ClipCascade客户端是用Python编写的,因此需要先安装Python环境。Fedora 42默认安装的是Python 3.12,但ClipCascade客户端依赖的一些Python库在Python 3.12中已经不再支持,因此需要安装Python 3.11。我使用
conda来管理Python环境,所以我用conda创建了一个Python 3.11的虚拟环境。至于使用conda管理的优点可以参考我的这篇文章:Python环境管理方式总结。1 2conda create -n clipcascade python=3.11 conda activate clipcascade然后安装Python依赖:
1pip3 install -r requirements.txt -
安装其他依赖
除了Python依赖外,还需要安装一些系统依赖。这些按照照ClipCascade的GitHub仓库里的说明来安装即可:
1 2 3 4 5sudo dnf check-update sudo dnf install -y python3 python3-pip python3-gobject xclip wl-clipboard dunst sudo dnf install -y libappindicator-gtk3 sudo dnf install -y python3-xxhash python3-pyperclip python3-requests python3-websocket-client python3-pycryptodomex python3-tkinter python3-pystray python3-pyfiglet python3-beautifulsoup4 sudo dnf install -y ffmpeg ffmpeg-devel需要注意的是,ClipCascade的安装说明里提到还需要用DNF安装
python3-plyer和python3-aiortc,但这两个包在Fedora 42的官方仓库里已经没有了。不过也不用担心,因为这两个包已经在requirements.txt里列出,前面用pip安装Python依赖时已经安装了。
上述两个问题是ClipCascade的GitHub仓库里的安装说明里没有指出的,我已经给作者提了一个issue,希望作者能更新一下安装说明。
运行客户端
进入ClipCascade客户端的源码目录,运行以下命令启动客户端:
|
|
启动后会弹出一个窗口,提示输入服务器地址、用户名和密码:

登录成功会弹出一个通知,然后就可以跟登录了同一个ClipCascade账号的其他设备共享剪切板内容了。
(Bonus)添加到开始菜单
截止到上一步,我们已经可以在Fedora 42上使用ClipCascade客户端了,但每次都要打开终端进入源码目录运行python3 main.py命令,还是比较麻烦的。我们可以把ClipCascade添加到开始菜单,这样就可以像其他应用一样通过开始菜单启动了。
Linux桌面环境使用.desktop文件来管理开始菜单里的应用程序。我使用Fedora 42的KDE桌面环境,开始菜单的.desktop文件存放在~/.local/share/applications/目录下。我们可以在这个目录下创建一个名为clipcascade.desktop的文件,内容如下:
|
|
需要把Exec和Icon字段的路径替换为你自己的路径。Exec字段指定了启动ClipCascade客户端的命令,这里需要指定Python解释器的路径和main.py文件的路径。Icon字段指定了ClipCascade的图标路径,可以下载ClipCascade的图标文件放在合适的位置。
需要注意的是,Exec字段中的Python解释器路径需要指定为你安装ClipCascade客户端时使用的Python环境中的Python解释器路径。如果你使用的是conda创建的虚拟环境,可以在终端中运行which python3命令来查看Python解释器的路径。
macOS上安装ClipCascade客户端
macOS上ClipCascade客户端的安装比较简单,直接下载打包好的安装包,然后按照ClipCascade的GitHub仓库里的说明来安装即可。我跟着说明一步步操作,并没有遇到额外的问题。