講解如何更換Linux的滑鼠游標 / 鼠標 / 指針 / 光標。


1. Xcursor概述 #
Linux各大桌面遵循Xcursor的標準來更換滑鼠圖示。
不過電腦要更換滑鼠游標(cursor)圖示似乎沒那麼簡單了。
我是說Linux桌面。Windows簡單多了呢,下載.cur檔案就能替換,不過聽說有小屁孩會爲了把滑鼠游標換成Minecraft圖示導致電腦中毒。
以前X11桌面的時代可以任意更換,因為Xcursor統一處理,X11會透過讀取~/.Xresources,或者由桌面環境決定游標主題。
Wayland就很複雜了。沒弄好的話會導致APP的滑鼠外觀不一致。
Wayland沿用了Xcursor的標準,但桌面環境需要負責的東西變多了,滑鼠外觀這件事上就落到了合成器頭上。GNOME和KDE都有自己的滑鼠主題(Adwaita尖尖的,Breeze則是圓角),甚至GTK和QT自己做client decoration,這就導致了過去有一段時間,在KDE開啟GTK程式(如Firefox)會變成GNOME的滑鼠。
為了解決這個問題,現在各大桌面使用了cursor-shape-v1的協定來定義滑鼠游標外觀。wlroots寫的合成器如Hyprland也支援了。
隨著時間發展,現在只有在打包不良的Flatpak程式才會偶爾出現游標不一致的情況。Arch Wiki記錄了如何用各種手段讓游標主題一致。
2. 自製游標檔案格式 #
-
GNOME Look和KDE Store有很多游標主題能下載。
-
要自製游標主題不難,以Xcursor的格式建立圖片就可以了。另外有程式能將Windows的.ani與.cur檔案轉成Xcursor格式:https://github.com/quantum5/win2xcur
-
參照Xcursor手冊:XCURSOR(3) manual page,一個游標主題目錄應該有以下檔案,包含各種滑鼠狀態的圖示。沒有副檔名,本身是Xcursor定義的二進位格式。這些檔案可以由xcursorgen生成。
主題名稱
├── index.theme
└── cursors/
├── left_ptr
├── hand2
├── xterm
├── wait
├── watch
├── cross
├── default
└── pointer-
遵照XDG標準,把游標主題放到
~/.local/share/icons/或~/.icons就能讀取。透過系統套件管理器安裝的會放到/usr/share/icons/ -
不過Xcursor是一個很老的標準了,不支援向量圖,要考慮HiDPI的圖片問題,也就是在單個
left_ptr裡面要塞不同DPI的圖片,否則滑鼠就只會有一種解析度(預設爲24,適合1920x1080解析度的電腦)。 -
Hyprland作者覺得Xcursor的格式爛透了,就推行自己發明的hyprcursor格式。但採用的桌面不多。
3. 桌面更換游標圖示 #
GNOME #
-
到GNOME Look下載,將滑鼠主題放到
~/.local/share/icons/或~/.icons -
安裝GNOME Tweaks
sudo apt install gnome-tweaks- 選取滑鼠游標圖示

KDE Plasma #
-
到KDE Store下載,將滑鼠主題放到
~/.local/share/icons/或~/.icons。 不知道爲什麼,有些版本的KDE只會讀取~/.icons。 -
在Plasma系統設定 → 顏色與主題游標 → 游標,選取滑鼠圖示
