光標主題
顯示伺服器有著一個從各方面幫助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/
; 請確保解壓出文件也是這樣的結構。
已經安裝的光標主題可以通過這條命令查看:
find /usr/share/icons ~/.local/share/icons ~/.icons -type d -name "cursors"
如果軟體包包含一個 index.theme
文件,檢查裡面是否有 "Inherits" 這一行。如果有,檢查繼承的主題是否也存在(有必要時重命名)。
配置[編輯 | 編輯原始碼]
有許多方法設置光標主題。
XDG 規範[編輯 | 編輯原始碼]
如果想要為指定用戶配置,創建並編輯 ~/.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
~/.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
如果對支持的光標大小有疑問,在沒有這個設置的情況下啟動 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
來獲取你的主題丟失的光標,並且給它們也創建連結。
$ 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