Получить консультацию

Edit Template

Сервис autocalibrator для Xorg.

Функционал программы autocalibrator

Программа запускается после старта X-сервера. При запуске программа проверяет текущие настройки устройств вывода, и если к ним применены какие-нибудь коэффициенты трансформации (поворот, отражение, масштабирование, сдвиг), рассчитывает матрицы трансформации для устройств ввода, и применяет их. В дальнейшем программа остается в памяти и следит за изменениями экрана. В каждом случае применения трансформации к экрану, она применяет коэффициенты к устройствам ввода. Соответствие устройств ввода и вывода берется из файла /opt/current_config.sh. Файл можно переназначить при помощи ключа -c. Так же из этого файла берутся и применяются Данные калибровки. Если в файле изменились данные, можно заставить программу перечитать настройки, послав сигнал SIGUSR1.

Перечень параметров в файле конфигурации:

MON[#]=OUTNAME — наименование устройства вывода для экрана с заданным номером, например: MON1=DVI-I-1

MON[#]_TOUCH=DEVID — идентификатор устройства ввода, соответствующего монитору с заданным номером. Может цифровым идентификатором устройства, а также именем устройства, как оно отображается в списке xinput. Например: MON1_TOUCH=15 или MON1_TOUCH=»ELAN Touchscreen».

MON[#]_TOUCHAXYS — перечень значений осей калибровки тач-скрина, разделенный двоеточием. Например: MON1_TOUCHAXYS=»0,23767,0,32767,0,false,false,false». Последние 3 параметра — поменять оси X и Y местами (иногда случается на мелких тачах), инвертировать ось X, инвертировать ось Y. Если 1 — поменять местами.

Соответственно, если коэффициенты к устройствам ввода применяются сразу после применения трансформации геометрии экрана, то калибровать эти устройства можно сразу после этого. Калибратор будет получать координаты мыши так, будто он работает на единственном экране в своем оригинальном неперевернутом режиме. В связи с эти также пришлось опять убрать из патча xinput_calibrator добавление координат к щелчку мыши, т. к. в этом случае координаты уже пересчитаны.

С ключом -d уходит в режим демона. Без ключа можно отлаживаться. На экран должны выводиться сообщение при применении параметров экрана.

Матрица трансформации координат

Zoom

Ограничение перемещения курсора в пределах левой половины сенсорного дисплея.

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 0.5 0 0 0 1 0 0 0 1

Ограничение перемещения курсора в пределах верхней половины сенсорного дисплея.

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 1 0 0 0 0.5 0 0 0 1

Назначение перемещения курсора в левую половину сенсорного дисплея.

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 2 0 0 0 1 0 0 0 1

Назначение перемещения курсора в верхнюю половину сенсорного дисплея.

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 1 0 0 0 2 0 0 0 1

Translation

Сдвиг курсора вправо на половину ширины сенсорного экрана.

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 1 0 0.5 0 1 0 0 0 1

Сдвиг курсора влево на половину ширины сенсорного экрана.

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 1 0 -0.5 0 1 0 0 0 1

Сдвиг курсора вниз на половину высоты сенсорного экрана..

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 1 0 0 0 1 0.5 0 0 1

Сдвиньте курсор вверх на половину высоты сенсорного экрана..

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 1 0 0 0 1 -0.5 0 0 1

Zoom x Translation

Например, если мы хотим, чтобы центральная четверть сенсорного экрана использовалась для перемещения курсора по всему экрану..

эквивалентно

эквивалентно

$ xinput set-prop ‘<device name>’ ‘Coordinate Transformation Matrix’ 2 0 -0.5 0 2 -0.5 0 0 1

Режим масштабирования

Сенсорный дисплей может поддерживать четыре различных режима: «Нет», «Полный», «По центру» и «Полное соотношение сторон».

pw = предпочтительная ширина
ph = предпочтительная высота
(Предпочтительное разрешение сенсорного экрана.)
sw = ширина экрана
sh = высота экрана
(Виртуальный экран X Window System.)
dw = ширина дисплея
dh = высота дисплея
dx = Ось X дисплея
dy = Ось Y дисплея
(Фактическое разрешение и расположение сенсорного экрана.)

Режим ‘None’

Поведение не определено. Оно может работать как в режиме «Полный» или «Центрированный».

Режим ‘Полный’

эквивалентно

Режим ‘По центру’

эквивалентно

эквивалентно

Режим ‘Полное соотношение сторон’

(левая и правая стороны пустые)

эквивалентно

эквивалентно

Вращение

$ xrandr -o left

$ xrandr -o right

$ xrandr -o inverted

Отражение

$ xrandr -x

$ xrandr -y

Предыдущая запись
Следующая запись

Оставить отзыв

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Ознакомьтесь с нашими услугами

Широкий спектр предоставляемых услуг.