[Почти решено] Два экрана - один сенсорный. Указатель (мышь) сенсорного неправильно рассчитывает координаты

Добрый день!

Такая задачка.

К машине подключено 2 экрана: обычный и сенсорный. Машина будет управлять технологической установкой. Сенсорный экран используется для вывода элементов управления (кнопки и т.п.), обычный экран для отображения контролируемой информации (показания датчиков и т.п.). Рабочий стол расширен на 2 экрана.

Мышь, которая классическая, работает правильно, при движении в сторону края левого экрана переходит на правый, и наоборот.

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

Из-за такого неправильного пересчета попасть пальцем ни в одну кнопку невозможно.

Все настройки из коробки (кроме раскладки клавиатуры).

Есть ли способ ограничить область работы (координаты) конкретного устройства ввода?

Это стандартная фишка

Это стандартная фишка Х-сервера.
Тебе надо прописать соответствующие "ServerLayout" и все!
Например, как описано тут.

Все оказалось гораздо

Все оказалось гораздо проще.

Ставим xrandr, xinput


l.kolesnik@kolisey ~ $ xrandr
Screen 0: minimum 8 x 8, current 2624 x 900, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
DP2 connected 1600x900+0+0 (normal left inverted right x axis y axis) 434mm x 236mm
1600x900 59.98*+
1280x1024 75.02 60.02
1152x864 75.00
1024x768 75.08 60.00
800x600 75.00 60.32
640x480 75.00 60.00
720x400 70.08
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VGA1 connected 1024x768+1600+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94
VIRTUAL1 disconnected (normal left inverted right x axis y axis)


l.kolesnik@kolisey ~ $ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=9 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=10 [slave pointer (2)]
⎜ ↳ Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]

Далее привязываем устройство ввода к устройству отображения по id и порту видеокарты:

xinput --map-to-output 11 VGA1

Все работает.

Единственная загвозка, которую не удалось решить - автозапуск для всех пользователей. Пробовал впихнуть в ~/.xinitrc, но в момент запуска почему-то сенсорный указатель привязвается к обычному экрану. Пока решил добавлением команды в автозапуск сессии xfce через его диспетчер настроек.

Исходный материал здесь: https://wiki.archlinux.org/index.php/Touchscreen

Спасибо за наводку, вышел на материал по предложенной ссылке.

Leonid Kolesnik

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".