光標主題

出自 Arch Linux 中文维基

顯示伺服器有著一個從各方面幫助GUI界面導航和操作的光標主題。顯示伺服器自帶一個光標主題,但依然可以安裝並使用其他光標主題。

安裝[編輯 | 編輯原始碼]

可以通過軟體包安裝,也可以下載光標主題並解壓到恰當的路徑來安裝。

通過軟體包[編輯 | 編輯原始碼]

下列連結提供可用的光標主題軟體包:

手動安裝[編輯 | 編輯原始碼]

在官方倉庫或AUR中沒有的光標主題可以手動安裝。許多網站都有可下載的光標主題。下載之後它們需要被放進icons目錄(因為光標可以和圖標主題綁定在一起)。

一些有光標主題的網站:

如果想要為指定用戶安裝,使用 ~/.local/share/icons/~/.icons/ 目錄。用以下命令可以解壓大多數歸檔:

$ tar xvf foobar-cursor-theme.tar.gz -C ~/.local/share/icons

光標主題的目錄結構為 theme-name/cursors,舉個例子: ~/.local/share/icons/theme/cursors/; 請確保解壓出文件也是這樣的結構。

注意: 如果想要系統範圍安裝,使用 /usr/share/icons 目錄。不推薦直接將文件解壓到這個目錄, 因為手動添加的文件不會被 pacman 追蹤;建議給光標主題創建一個 package

已經安裝的光標主題可以通過這條命令查看:

find /usr/share/icons ~/.local/share/icons ~/.icons -type d -name "cursors"

如果軟體包包含一個 index.theme 文件,檢查裡面是否有 "Inherits" 這一行。如果有,檢查繼承的主題是否也存在(有必要時重命名)。

配置[編輯 | 編輯原始碼]

有許多方法設置光標主題。

XDG 規範[編輯 | 編輯原始碼]

這個方法對 X11Wayland 光標主題都有效。

如果想要為指定用戶配置,創建並編輯 ~/.icons/default/index.theme;如果想要 系統範圍 配置,編輯 /usr/share/icons/default/index.theme

[icon theme] 部分中的 Inherits 選項必須被設置為X光標主題的目錄名cursor_theme_name,舉個例子 xcursor-breeze-snow:

~/.icons/default/index.theme
[icon theme] 
Inherits=cursor_theme_name

然後你應該編輯 ~/.config/gtk-3.0/settings.ini, 將 cursor_theme_name 替換為你選擇的主題:

~/.config/gtk-3.0/settings.ini
[Settings]
gtk-cursor-theme-name=cursor_theme_name

重啟 X 以應用更改。

如果還是沒用,試著創建一個將~/.icons/default/cursors (假設為指定用戶安裝)指向.local/share/icons/cursor_theme_name/cursors的符號連結然後再次重啟 X。

LXAppearance[編輯 | 編輯原始碼]

LXAppearance通過創建 ~/.icons/default/index.theme設置默認光標主題:如果你手動編輯它,LXAppearance 會覆寫它。記得還要按照 #XDG 規範 手動編輯 ~/.config/gtk-3.0/settings.ini,因為有些應用,如 Firefox ,使用這個設置文件。

桌面環境[編輯 | 編輯原始碼]

桌面環境 使用 X設置協議,通常通過設置守護進程達到效果。雖然這允許即時更改光標,但應用的主題在不同應用中可能不一致, 另見 #XDG 規範 來手動更改光標主題.

GNOME[編輯 | 編輯原始碼]

GNOME 中更改主題, 使用 gnome-tweaks ,或用這條命令直接設置:

$ gsettings set org.gnome.desktop.interface cursor-theme cursor_theme_name

用這條命令修改尺寸(尺寸有 24,32,48,64,因主題而不同):

$ gsettings set org.gnome.desktop.interface cursor-size cursor_theme_size
注意: 在 Wayland 上, Gnome 應用默認無法顯示位於~/.local/share/icons的光標主題。作為一種解決方法,你可以 add that path to XCURSOR_PATH.

MATE[編輯 | 編輯原始碼]

在 MATE 中可以使用 mate-control-center 或 gsettings 來修改主題:

gsettings set org.mate.peripherals-mouse cursor-theme cursor_theme_name

修改尺寸:

gsettings set org.mate.peripherals-mouse theme-size

XFCE[編輯 | 編輯原始碼]

修改 X光標主題 , 使用:

xfconf-query --channel xsettings --property /Gtk/CursorThemeName --set cursor_theme_name

修改尺寸:

xfconf-query --channel xsettings --property /Gtk/CursorThemeSize --set cursor_theme_size

X resources[編輯 | 編輯原始碼]

要想在本地命名光標主題,將下面這一行添加到 ~/.Xresources 文件:

Xcursor.theme: cursor-theme

要想正確地加載光標主題需要通過窗口管理器完成;如果窗口管理器無法完成,可以在輸入 ~/.xinitrc.xprofile (使用哪個取決於個人配置)中添加以下命令強制在窗口管理器之前加載:

$ xrdb ~/.Xresources

可選地,如果你的光標主題支持多個尺寸,在 ~/.Xresources 中添加下面這一行:

Xcursor.size: 16
提示:32, 48 或 64 也可能是適用的尺寸

如果對支持的光標大小有疑問,在沒有這個設置的情況下啟動 X 並讓它自動選擇光標尺寸(查閱你的窗口管理器文檔以獲得更多細節)。

環境變量[編輯 | 編輯原始碼]

你可以使用一個 環境變量 來為單個應用暫時設置主題,舉個例子:

$ XCURSOR_THEME=SomeThemeName xclock

XCURSOR_SIZE 是可選的,如果你的光標主題支持多個尺寸就可以使用。

如果你的光標主題安裝在 ~/.local/share/icons,為了避免潛在的問題,將該路徑添加到 XCURSOR_PATH 。舉個例子:

~/.bash_profile
export XCURSOR_PATH=${XCURSOR_PATH}:~/.local/share/icons

顯示管理器[編輯 | 編輯原始碼]

光標主題通常可以通過顯示管理器設置,但注意光標主題可能不會跨用戶會話延續。

GDM[編輯 | 編輯原始碼]

請見 GDM#更改光標主題.

疑難解答[編輯 | 編輯原始碼]

創建丟失光標的連結[編輯 | 編輯原始碼]

當缺少一些光標時,應用可能使用默認光標。這可以通過創建丟失光標的連結來糾正。舉個例子:

$ cd ~/.icons/theme/cursors/
$ ln -s right_ptr arrow
$ ln -s cross crosshair
$ ln -s right_ptr draft_large
$ ln -s right_ptr draft_small
$ ln -s cross plus
$ ln -s left_ptr top_left_arrow
$ ln -s cross tcross
$ ln -s hand hand1
$ ln -s hand hand2
$ ln -s left_side left_tee
$ ln -s left_ptr ul_angle
$ ln -s left_ptr ur_angle
$ ln -s left_ptr_watch 08e8e1c95fe2fc01f976f1e063a24ccd

如果以上命令沒能解決問題,看看 /usr/share/icons/whiteglass/cursors 來獲取你的主題丟失的光標,並且給它們也創建連結。

提示:你也可以移除不想要的光標。移除 "watch" 光標的例子:
$ cd ~/.icons/theme/cursors/
$ rm watch left_ptr_watch
$ ln -s left_ptr watch
$ ln -s left_ptr left_ptr_watch

提供丟失的光標[編輯 | 編輯原始碼]

一些程序設置了它們特製的光標 ~/.Xresources ,你可能想要覆蓋它們。一個常見的例子是 rdesktop,它與 Microsoft Windows 電腦連接並使用遠程機器的光標,這個光標因協議限制導致轉譯質量差,通常很難看清。

這可以通過用相同(或另一個)光標主題替換這些光標來解決。想要達成目的,必須獲得圖像的hash。這可以通過在啟動設置這些光標的程序前設置 XCURSOR_DISCOVER 環境變量來完成:

$ XCURSOR_DISCOVER=1 rdesktop ...

在首次(而且只有首次)光標設置時,一些細節會被展示出來,像這樣

Cursor image name: 24020000002800000528000084810000
...
Cursor image name: 7bf1cc07d310bf080118007e08fc30ff
...
Cursor hash 24020000002800000528000084810000 returns 0x0

當X光標尋找丟失的光標時,搜索的路徑包含了~/.icons/default/cursors 所以這裡可以放置用於X光標搜索的圖像。首先,如果還沒有這個目錄就創建它:

$ mkdir -p ~/.icons/default/cursors

然後將hash連結到目標圖像。這裡我們使用來自 Vanilla-DMZ 光標主題的 left_ptr 圖像

$ ln -s /usr/share/icons/Vanilla-DMZ/cursors/left_ptr ~/.icons/default/cursors/24020000002800000528000084810000

應用重啟後就可以看到更改效果。不需要特殊的啟動應用的方法。

rdesktop[編輯 | 編輯原始碼]

這裡有一些 rdesktop 連接運行 Windows 7 的遠程機器時常見的 Microsoft Windows 光標。不幸的是,動態光標難以被覆蓋因為它們是被逐幀發送的,所以每一幀都需要一個映射!

$ ln -s /usr/share/icons/$THEME/cursors/xterm          ~/.icons/default/cursors/00000000017e000002fc000000000000
$ ln -s /usr/share/icons/$THEME/cursors/right_ptr      ~/.icons/default/cursors/00000093000010860000631100006609
$ ln -s /usr/share/icons/$THEME/cursors/plus           ~/.icons/default/cursors/01e00000201c00004038000080300000
$ ln -s /usr/share/icons/$THEME/cursors/left_ptr       ~/.icons/default/cursors/24020000002800000528000084810000
$ ln -s /usr/share/icons/$THEME/cursors/left_ptr_watch ~/.icons/default/cursors/6ce0180090108e0005814700a0021400
$ ln -s /usr/share/icons/$THEME/cursors/hand           ~/.icons/default/cursors/d2201000a2c622004385440041308800
$ ln -s /usr/share/icons/$THEME/cursors/watch          ~/.icons/default/cursors/fc618c00da110f0034fd0e004e082400

更改默認 X 形光標[編輯 | 編輯原始碼]

默認的 X 形光標出現在沒有設置默認光標為 left_ptr 的窗口管理器或用 XCB 代替 Xlib 的窗口管理器(如 awesome)中。

要想修復只需將下列內容添加到你的 ~/.xinitrc ,X會話 或 窗口管理器啟動配置(如果可以的話,例如 bspwm 的 bspwmrrc)。

$ xsetroot -cursor_name left_ptr

光標風格列表在 X 協議的 appendix B 中。

.Xdefaults[編輯 | 編輯原始碼]

如果你有衝突的光標,它可能是因為一個不同的光標已經在 ~/.Xdefaults 文件中被設置。

光標大小在啟動時不會改變[編輯 | 編輯原始碼]

如果你正試著通過你的 ~/.xinitrc 中的 ~/.Xresources 並且它沒用的話,確保 xrandr 在加載 ~/.Xresources 運行。

確保你的 ~/.xinitrc 看起來類似於下面這樣

~/.xinitrc
xrandr
...
xrdb -merge ~/.Xresources
exec wm

Plasma (Wayland) 上的光標大小或主題不變[編輯 | 編輯原始碼]

在使用 Wayland 下的 Plasma 修改光標尺寸或主題時,確保在應用更改後重啟。[1] [2].

另見[編輯 | 編輯原始碼]

  • Xcursor(3) — 獲取有關 X 中光標的更多信息(支持的 目錄, 格式, 兼容性等等)。
  • 要想創作光標文件, 請見 Xcursorgen