# Cursor themes (Русский)

Дисплейный сервер сопровождается темой курсора, которая помогает в различных аспектах навигации и манипуляции GUI. Дисплейный сервер включает в себя тему курсора по умолчанию, однако другие темы также могут быть установлены и выбраны.

## Установка

Установка совершается посредством пакета или загрузки и извлечения темы в соответствующий каталог.

### Пакеты

Пакеты с темами доступны в:

- Официальных репозиториях - поиск "xcursor-".
- AUR — поиск "cursor".

### Вручную

Если тема курсора не доступна в официальных репозиториях или AUR, ее можно установить вручную. Существует ряд сайтов, где можно скачать темы. Их нужно будет поместить в каталог icons (так как курсоры могут быть в комплекте с темами иконок).

Сайты, где можно найти соответствующие темы:

- GNOME Look
- Customize.org
- Deviant Art

Установка для конкретного пользователя производится посредством использования каталога `~/.icons/`. Распакуйте выбранную тему с помощью следующей команды, которая будет работать для большинства архивов:

    $ bsdtar xvf foobar-cursor-theme.tar.gz --directory ~/.icons

Структура папки, содержащая в себе тему курсоров - это `имя-темы/cursors`, например: `~/.icons/тема/cursors/`; Убедитесь в том, что извлеченные файлы следуют данной структуре.

Примечание: Общесистемная установка производится посредством каталога `/usr/share/icons`. Не рекомендуется прямая распаковка в данную директорию, потому что файлы не смогут быть отслежены pacman; рекомендуется создать пакет с темой.

Установленные темы можно отследить посредством следующей команды:

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

Если пакет включает в себя файл `index.theme`, проверьте, есть ли линия «Inherits» внутри. Если есть, проверьте, существует ли такая же тема в системе (переименуйте, если необходимо).

## Настройка

Существуют различные способы настройки установленных тем.

### LXAppearance

LXAppearance устанавливает курсор по умолчанию путем создания файла `index.theme`, как указано в #Спецификации XDG

### Спецификация XDG

Этот метод применим к X11 и Wayland.

Конфигурация для конкретного пользователя выполняется посредством создания и редактирования файла `~/.icons/default/index.theme`. Общесистемная конфигурация выполняется посредством редактирования файла `/usr/share/icons/default/index.theme`.

Укажите имя каталога темы:

    ~/.icons/default/index.theme

    [icon theme]
    Inherits=имя-темы

Важно: Создание символической ссылки при помощи `ln -s /usr/share/icons/имя-темы/ ~/.icons/default` не достаточно для изменения темы.

Создайте символическую ссылку на соответствующую директорию темы (в случае с общесистемной темой):

    ln -s /usr/share/icons/имя-темы/cursors ~/.icons/default/cursors

Изменения вступят в силу только после повторного входа в систему.

### Среда рабочего стола

Среды рабочего стола используют протокол XSETTINGS, обычно реализуемый через демон настроек. Это позволяет менять курсор на лету, но он может изменяться между приложениями. Смотрите #Спецификацию XDG, чтобы изменить тему вручную.

#### GNOME

Тема курсора в GNOME изменяется посредством gnome-tweak-tool или gsettings:

    gsettings set org.gnome.desktop.interface cursor-theme имя-темы

Также изменение размера курсора (зависит от темы. Размеры: 24, 32, 48, 64):

    gsettings set org.gnome.desktop.interface cursor-size размер

#### Mate

В MATE можно использовать mate-control-center или gsettings, чтобы изменить тему:

    gsettings set org.mate.peripherals-mouse cursor-theme имя-темы

Для изменения размера:

    gsettings set org.mate.peripherals-mouse размер

### X resources

Для локального изменения темы, добавьте в `~/.Xresources`:

    Xcursor.theme: имя-темы

Тема курсоров должна загрузиться оконным менеджером; если нет, можно принудительно применить тему посредством `~/.xinitrc` или .xprofile (в зависимости от личных предпочтений):

    $ xrdb ~/.Xresources

Добавьте данную строку в `~/.Xresources`, если ваша тема поддерживает несколько размеров:

    Xcursor.size: 16

Совет: 32, 48 или 64 также могут быть хорошим размером.

Если вы сомневаетесь в том, что ваша тема поддерживает несколько размеров, то запустите X без данных настроек и дайте ему возможность выбрать размер автоматически. (Обратитесь к документации своего оконного менеджера для деталей.)

### Переменные окружения

Используйте переменные окружения, чтобы установить временную тему курсора для определенного приложения, например:

    $ XCURSOR_THEME=НазваниеТемы xclock

XCURSOR_SIZE является необязательным, если тема поддерживает несколько размеров.

### Менеджеры дисплея

Тема курсора обычно устанавливается в пределах менеджера дисплея, но имейте в виду, она не переносится между сеансами.

#### GDM

Смотрите GDM#Changing the cursor theme

## Решение проблем

### Создание ссылок на недостающие курсоры

Приложения могу продолжать использовать тему по умолчанию, если в текущей теме отсутствуют некоторые курсоры. Это можно исправить, добавив ссылки на недостающие курсоры. Например:

    $ cd ~/.icons/тема/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", "left_ptr_watch" и заменить их курсором "left_ptr":

    $ cd ~/.icons/тема/cursors/
    $ rm watch left_ptr_watch
    $ ln -s left_ptr watch

$ ln -s left_ptr left_ptr_watch

### Замена недостающих курсоров

Некоторые программы устанавливают свои курсоры, которые вы, возможно, захотите переопределить. Типичным примером этого является программа rdesktop, которая подключается к компьютеру с ОС Microsoft Windows и использует курсоры, полученные от удаленной машины, которые может часто быть трудно увидеть из-за ограничения протокола, который обеспечивает плохое качество преобразования.

Проблему можно решить заменив эти курсоры, курсорами из этой же темы (или другой). Чтобы сделать это необходимо получить хэш-код изображения. Это делается путем установки переменной окружения `XCURSOR_DISCOVER` и запуском требуемого приложения:

    $ XCURSOR_DISCOVER=1 rdesktop ...

В первый раз (и только в первый раз) курсор установится, некоторые детали будут отображаться вот так:

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

Для поиска xcursor использует директорию `~/.icons/default/cursors`, туда следует поместить недостающие курсоры. Создайте директорию, если она не существует:

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

Далее, создадим ссылку на хэш-код изображения. В примере используется курсор `left_ptr` из темы `Vanilla-DMZ`:

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

Изменения будут видны после перезапуска приложения. Никаких специальных методов запуска приложений не требуется.

### rdesktop

Вот некоторые распространенные курсоры Microsoft Windows, rdesktop использует их при подключении к удаленной машине под управлением Windows 7. К сожалению анимированные курсоры трудно переопределить, так как они отправляются по-кадру, поэтому изображение нужно будет для каждого кадра!

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

### Изменение стандартного курсора X сервера

Стандартный курсор X-сервера появляется в форме Xcursor в оконных менеджерах, где не установлен курсор по умолчанию в left_ptr или в оконных менеджерах, где используется XCB (таких как awesome)) вместо Xlib.

Чтобы исправить это, просто добавьте следующее в `~/.xinitrc`, файлы конфигурации xsession или оконного менеджера, которые выполняются при запуске, если это возможно (например, bspwmrc оконного менеджера bspwm):

    $ xsetroot -cursor_name left_ptr

Для получения дополнительной информации смотрите Awesome wiki.

## Смотрите также

- man Xcursor - больше информации о курсорах в X (поддерживаемые директории, форматы, совместимость и т.д.).

Categories:

- X server (Русский)
- Eye candy (Русский)
- Русский