剪切板管理工具clipcat推荐
Linux下的剪切板管理工具我用过很多,CopyQ、clipman + wofi、diodon、xclip等,其中CopyQ是个崩溃王子,动不动就程序崩溃了(也有优势,可配置删除快捷键,比如类似vi的d删除某条历史记录),Clipman + wofi用了很久,没什么大毛病,配置起来稍微复杂,剩下的几个,总感觉差点意思。
前几天发现clipcat这个rust写的剪切板软件,用起来还不错,能直接和rofi联动,自带的命令行工具逻辑清晰(下文会提到)。
1. 安装
笔者现在用Arch,直接一把梭,能进仓库的都是有点东西的,基本值得信赖,每天能用到新版本软件,很快乐。
毕竟世界总是变化的,上一篇文章写到的AMDVLK Open,没想到前些日子AMD想通了,不继续自己玩啦,集中资源去和社区开发RADV,可喜可贺。
1sudo pacman -S clipcat
其它发行版我没有测试,官方仓库说支持MacOS,不知道效果如何,Windows应该是不支持。
每天,我都用Linux,没有任何切换操作系统的动力。
2. 配置
包安装完后,会提供4个命令行工具:
- clipcatctl (clipcat 客户端控制程序)
- clipcatd (clipcat 服务端)
- clipcat-menu (和内置或者外部finder联动)
- clipcat-notify (监听剪切板工具)
逻辑标准清晰,一看作者就是懂Linux的,也许有人会问,一个剪切板工具软件整4个子命令,会不会太复杂了。其实不然,你需要的配置的非常简单,各司其职。
- 生成默认配置文件:
1mkdir -p $XDG_CONFIG_HOME/clipcat
2clipcatd default-config > $XDG_CONFIG_HOME/clipcat/clipcatd.toml
3clipcatctl default-config > $XDG_CONFIG_HOME/clipcat/clipcatctl.toml
4clipcat-menu default-config > $XDG_CONFIG_HOME/clipcat/clipcat-menu.toml
$XDG_CONFIG_HOME 环境变量,一般就是用户家目录的 .config
,默认的配置基本不用改动。
- 设置开机启动:
1➜ cat ~/.config/systemd/user/clipcat.service
2[Unit]
3Description=Clipcat Daemon for labwc
4After=graphical-session.target
5Wants=graphical-session.target
6
7[Install]
8WantedBy=default.target
9
10[Service]
11# NOTE: We assume that your `clipcatd` is located at `/usr/bin/clipcatd`.
12ExecStartPre=/bin/rm -f %t/clipcat/grpc.sock
13ExecStart=/usr/bin/clipcatd --no-daemon --replace
14Restart=on-failure
15Type=simple
16
17➜ grep -A3 -B3 clipcat .config/labwc/autostart
18# clipman
19# wl-paste -t text --watch clipman store > /dev/null 2>&1 &
20
21# clipcat
22systemctl --user start clipcat.service
23
24# Enable notifications. Typically GNOME/KDE application notifications go
25# through the org.freedesktop.Notifications D-Bus API and require a client such
即使用systemd配置文件,再通过labwc的autostart启动。这里因为我使用labwc稍微有些绕,没有直接使用systemd启动(有些通知组件启动顺序的问题,不想消耗太多精力排错)。 成熟的桌面环境,直接用官方仓库的systemd启动,猜测应该是没有问题的。
- 配置快捷键
直接看配置:
1➜ ~ grep -A1 -B1 clipcat .config/labwc/rc.xml
2 <keybind key="C-semicolon">
3 <action name="Execute" command="clipcat-menu"/>
4 </keybind>
5 <keybind key="W-r">
6 <action name="Execute" command="clipcat-menu remove"/>
7 </keybind>
按Ctrl + ;
触发clipcat-menu 相关命令,弹出finder,之前装了rofi,默认弹出rofi供候选目标条目,按 Win + r
可选择删除条目。
3. 使用截图
使用示例
1➜ clipcat-notify
2{
3 "clipboard_kind": "Secondary",
4 "mime": "text/plain;charset=utf-8",
5 "timestamp": "2025-09-23T14:08:41.002047903+08:00"
6}⏎
7➜ clipcatctl list
871dd4a1351d227c2: ➜ ~ clipcat-notify\n{\n "clipboard_kind": "Secondary",\n "mime": "text/plain;charset=utf...(6 lines)
983dc07228086d2b1: ➜ ~ grep -A1 -B1 clipcat .config/labwc/rc.xml\n <keybind key="C-semicolon">\n <ac...(7 lines)
104ddec13ce4e41226: 、使用\n
11a7590a35e18f9812: ➜ ~ grep -A3 -B3 clipcat .config/labwc/autostart\n# clipman\n# wl-paste -t text --watch ...(9 lines)
125086cda61d3968d0: ➜ ~ cat ~/.config/systemd/user/clipcat.service\n[Unit]\nDescription=Clipcat Daemon for l...(15 lines)
1398b78567ca66783a: 如果你没有设置
1410ae2a59320ab394: $XDG_CONFIG_HOME
选中一段文本或者复制,按 Ctrl + ;
弹出rofi候选页面,如下图所示:
支持模糊过滤,删除操作类似,懒得截图了,也是支持编辑的,编辑的概率很低,忽略。
4. 其它
谈到剪切板管理软件,不得不提一下三种剪贴板(Primary、Secondary、Clipboard )的差异。
需求场景 | 推荐使用的剪贴板 | 操作方式 |
---|---|---|
临时快速复制文本(如终端) | Primary | 选中文本 → 鼠标中键 / Shift+Insert 粘贴 |
跨程序通用复制(如文档 / 图片) | Clipboard | Ctrl+C 复制 → Ctrl+V 粘贴 |
专业软件多剪贴板需求 | Secondary | 依赖软件自定义操作(极少用) |
不想继续往下看,看上面表格,有兴趣和耐心,请继续往下看,AI回答如下。
- Primary(主剪贴板):Linux 特有的 “即时剪贴板”
Primary 是 X Window 系统最早期设计的剪贴板,核心定位是 “即时、临时的文本交换”,完全为效率而生,也是 Linux 与 Windows/macOS 剪贴板逻辑差异最大的地方。
1核心逻辑:
2
3当你用鼠标拖拽选中任意文本(如终端中的命令、编辑器里的代码),系统会自动将选中的内容存入 Primary,无需按下任何 “复制” 快捷键(如 Ctrl+C)。
4
5粘贴时,只需在目标位置点击鼠标中键(或按下 Shift+Insert 组合键),即可将 Primary 中的内容粘贴过去。
6典型场景:
7 在终端中选中一条命令,直接在另一个终端窗口中点击中键粘贴,无需 Ctrl+C/Ctrl+V;
8 在文本编辑器中选中文段,快速粘贴到浏览器地址栏或聊天窗口;
9 临时复制少量内容(如文件名、变量名),无需担心覆盖 “正式” 复制的内容。
10注意点:
11 Primary 数据是 “覆盖式” 的:新选中的文本会直接替换 Primary 中原有内容;
12 数据不持久:关闭存储 Primary 内容的程序(如关闭选中文本所在的终端),Primary 中的数据可能被清空;
13 仅支持文本:多数情况下 Primary 只存储纯文本,不支持图片、文件等二进制数据。
- Secondary(次要剪贴板):“小众备用剪贴板”
Secondary 同样是 X Window 系统定义的剪贴板,但定位是 “程序特定的备用交换区”,设计初衷是为专业软件提供 “多剪贴板并行” 能力,但其实用性较低,目前已逐渐被忽略。
1核心逻辑:
2Secondary 不支持 “选中文本自动填充”,必须由程序主动调用 X 系统接口才能写入数据(如部分专业文本编辑器会提供 “复制到次要剪贴板” 的选项)。
3粘贴时也需程序主动读取 Secondary 数据,没有统一的系统级快捷键(需软件自定义,如某些工具中用 Ctrl+Shift+V 粘贴 Secondary 内容)。
4典型场景:
5
6 仅在少数专业工具中有用,例如:
7 部分 CAD 软件用 Secondary 存储 “辅助标注文本”,与 Primary 的 “主内容” 区分;
8 早期文本编辑器(如 Emacs)支持用 Secondary 临时存储 “备用片段”,避免覆盖 Primary。
9 注意点:
10 支持度极低:90% 以上的现代 Linux 程序(如浏览器、办公软件、终端)完全不支持 Secondary,无法写入或读取其数据;
11 功能可替代:如今多剪贴板需求已被剪贴板管理工具(如 clipcat、CopyQ)的 “历史记录” 功能覆盖,Secondary 几乎成为 “历史遗产”。
- Clipboard(标准剪贴板):跨系统兼容的 “通用剪贴板”
Clipboard 是为了兼容 Windows 等系统的剪贴板逻辑而设计的,核心定位是 “通用、持久的跨程序数据交换”,也是大多数用户最熟悉的剪贴板(即我们常说的 “Ctrl+C/Ctrl+V 剪贴板”)。
1核心逻辑:
2必须通过主动触发 “复制” 操作才能写入数据:如按下 Ctrl+C、右键菜单选择 “复制”、菜单中点击 “复制” 按钮等。
3粘贴时需主动触发 “粘贴” 操作:如按下 Ctrl+V、右键菜单 “粘贴”、Ctrl+Shift+V(部分终端中)。
4典型场景:
5
6 从浏览器复制网页内容,粘贴到 Word/LibreOffice 文档;
7 复制图片(如截图、本地图片),粘贴到聊天软件或图片编辑器;
8 复制文件(如在文件管理器中选中文件后按 Ctrl+C),粘贴到另一个文件夹(本质是文件路径的传递)。
9
10注意点:
11
12 数据持久化:Clipboard 中的数据会一直保留,直到你执行新的 “复制” 操作(覆盖原有数据),即使关闭源程序也不会丢失(如复制浏览器中的文本后关闭浏览器,仍可粘贴);
13 支持多数据类型:不仅支持纯文本,还能存储图片、HTML、文件路径、富文本(如带格式的文字)等多种 MIME 类型,程序会根据目标场景自动选择合适的格式粘贴(如复制网页文字到记事本,会自动去除 HTML 格式,保留纯文本);
14 跨系统兼容:在 Linux 中通过 Clipboard 复制的内容,可在 Wine 运行的 Windows 程序中粘贴,反之亦然;Wayland 桌面(如 GNOME 40+、KDE Plasma 5+)也完全兼容 Clipboard 逻辑。
Wayland 完全保留了 Primary、Secondary、Clipboard 三种剪贴板的定义,行为与 X Window 一致。
简而言之,普通用户显式接触 Secondary 的机会不多,Clipboard 三种主流操作系统通用,Primary 为 Linux 特色。


版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。
相关文章:
- 微信小程序开发记
- 解决Arch下VSCode无法输入中文的问题
- 迷你主机组装记
- greetd和regreet使用教程
- 我的工具箱
- Xray科学上网简要
- Arch linux如何顺畅连接蓝牙设备
- Wayland 环境下gif录屏
- Ubuntu安装chrome的方法总结
- Linux安装最新版本Python