Cursor themes (Русский)

From ArchWiki
Jump to: navigation, search


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

Установка

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

Пакеты

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

Вручную

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

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

Установка для конкретного пользователя производится посредством использования каталога ~/.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» внутри. Если есть, проверьте, существует ли такая же тема в системе (переименуйте, если необходимо).

Настройка

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

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

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

Отредактируйте /usr/share/icons/default/index.theme с привилегиями суперпользователя.

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

/usr/share/icons/default/index.theme
[icon theme] 
Inherits=имя-темы

Затем отредактируйте ~/.config/gtk-3.0/settings.ini.

Измените в следующей строчке имя-темы на имя директории темы:

~/.config/gtk-3.0/settings.ini
[Settings]
gtk-cursor-theme-name=имя-темы

Перелогинтесь, чтобы изменения вступили в силу.

LXAppearance

LXAppearance устанавливает курсор по умолчанию путем создания файла ~/.icons/default/index.theme. LXAppearance перезапишет любые изменения, сделанные вручную. Не забудьте отредактировать ~/.config/gtk-3.0/settings.ini, как это указано в Спецификации XDG, потому что некоторые приложения, например Firefox, используют эти настройки.

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

Среды рабочего стола используют протокол 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":
$ 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/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-сервера появляется в форме Xcursor в оконных менеджерах, где не установлен курсор по умолчанию в left_ptr или в оконных менеджерах, где используется XCB (таких как awesome)) вместо Xlib.

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

$ xsetroot -cursor_name left_ptr

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

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

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