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» внутри. Если есть, проверьте, существует ли такая же тема в системе (переименуйте, если необходимо).
Настройка
Существуют различные способы настройки установленных тем.
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/имя-темы/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
Если вы сомневаетесь в том, что ваша тема поддерживает несколько размеров, то запустите 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
для того, чтобы увидеть каких курсоров не хватает в вашей теме и добавьте ссылки на них.
Замена недостающих курсоров
Некоторые программы устанавливают свои курсоры, которые вы, возможно, захотите переопределить. Типичным примером этого является программа 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 (поддерживаемые директории, форматы, совместимость и т.д.).