光標主題 - Arch Linux 中文维基

跳至內容

# 光標主題

出自 Arch Linux 中文维基

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

## 安裝

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

### 通過軟體包

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

- 官方倉庫——"xcursor-" search.
- AUR——"cursor" search.

### 手動安裝

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

一些有光標主題的網站:

- GNOME Look
- Deviant Art
- Open Desktop

如果想要為指定用戶安裝,使用 `~/.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 規範

這個方法對 X11 和 Wayland 光標主題都有效。

如果想要為指定用戶配置,創建並編輯 `~/.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

分類：​

- X 伺服器
- 小提升

光標主題
新增話題