剪切板管理工具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候选页面,如下图所示:

clipcat-menu

支持模糊过滤,删除操作类似,懒得截图了,也是支持编辑的,编辑的概率很低,忽略。

4. 其它

谈到剪切板管理软件,不得不提一下三种剪贴板(Primary、Secondary、Clipboard )的差异。

需求场景 推荐使用的剪贴板 操作方式
临时快速复制文本(如终端) Primary 选中文本 → 鼠标中键 / Shift+Insert 粘贴
跨程序通用复制(如文档 / 图片) Clipboard Ctrl+C 复制 → Ctrl+V 粘贴
专业软件多剪贴板需求 Secondary 依赖软件自定义操作(极少用)

不想继续往下看,看上面表格,有兴趣和耐心,请继续往下看,AI回答如下。

  1. 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 只存储纯文本,不支持图片、文件等二进制数据。
  1. 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 几乎成为 “历史遗产”。
  1. 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 特色。

最后修改于: Tuesday, September 23, 2025
欢迎关注微信公众号,留言交流;也欢迎使用微信小程序。

相关文章:

翻译: