剪切板管理工具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

相關文章:

翻譯: