Cursor themes (Русский)
Дисплейный сервер сопровождается темой курсора, которая помогает в различных аспектах навигации и манипуляции GUI. Тема курсора уже включена в сервер, но другие также могут быть установлены.
Установка
Установка совершается посредством пакета или загрузки и извлечения темы в соответствующий каталог.
Пакеты
Пакеты доступны в:
Вручную
Тему курсора, не доступную в официальных репозиториях и AUR, можно установить вручную. Скачанные темы нужно будет поместить в каталог icons (так как курсоры могут быть вместе с иконками).
Сайты, где можно найти темы:
Чтобы установить тему для конкретного пользователя, распакуйте ее в ~/.icons/
:
$ bsdtar xvf foobar-cursor-theme.tar.gz --directory ~/.icons
Структура папки, где содержаться темы, - имя-темы/cursors
, например: ~/.icons/тема/cursors/
. Убедитесь в том, что извлеченные файлы следуют данной структуре.
Чтобы посмотреть установленные темы:
find /usr/share/icons ~/.icons -type d -name "cursors"
Если пакет включает в себя файл index.theme
, проверьте, есть ли линия «Inherits» внутри. Если есть, то проверьте, существует ли такая же тема в системе (переименуйте, если необходимо).
Настройка
Существуют различные способы настройки установленных тем.
Спецификация XDG
Этот метод применим к X11 и Wayland.
Для настройки для конкретного пользователя используйте ~/.icons/default/index.theme
; для общесистемной конфигурации, используйте /usr/share/icons/default/index.theme
.
Опция Inherits
в разделе [icon theme]
должна быть установлена на имя каталога темы имя_темы
, например xcursor-breeze-snow
:
~/.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-tweaks или 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 размер
XFCE
Чтобы изменить тему:
xfconf-query --channel xsettings --property /Gtk/CursorThemeName --set имя_темы
Для изменения размера:
xfconf-query --channel xsettings --property /Gtk/CursorThemeSize --set размер
X resources
Для локального изменения темы, добавьте в ~/.Xresources
:
Xcursor.theme: имя_темы
Тема должна загрузиться оконным менеджером. Если этого не произошло, ее можно принудительно загрузить посредством ~/.xinitrc
или .xprofile:
$ xrdb ~/.Xresources
Если ваша тема поддерживает несколько размеров, добавьте в ~/.Xresources
:
Xcursor.size: 16
Если вы сомневаетесь в том, что ваша тема поддерживает несколько размеров, то запустите 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
If the above does not solve the problem, look in /usr/share/icons/whiteglass/cursors for additional cursors your theme may be missing, and create links for these as well.
Если вышеуказанные действия не помогают, посмотрите в /usr/share/icons/whiteglass/cursors
, чтобы увидеть, каких курсоров не хватает в теме, и добавить ссылки на них.
Замена недостающих курсоров
Некоторые программы устанавливают свои курсоры, которые вы, возможно, захотите переопределить. Типичным примером этого является программа 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
Список стилей курсора протокола X: appendix B
.Xdefaults
Если у вас есть конфликтующие курсоры, это может быть вызвано тем, что другой курсор был определен в файле ~/.Xdefaults
.
Смотрите также
- man Xcursor - больше информации о курсорах в X (поддерживаемые директории, форматы, совместимость и т.д.).