Сенсорный экран с двумя мониторами

У меня есть Ubuntu 12.04 и два монитора, где первый сенсорный экран.

Система распознает разрешение как один большой экран с разрешением 3840 * 1080.

Проблема заключается в том, что при использовании сенсорной калибровки размер экрана калибратора изменяется по обоим экранам. Таким образом, при касании экрана указатель получает двойное движение по оси X.

Есть ли какое-нибудь решение?

Графика: NVIDIA с Twin wiew

5
задан 23 May 2012 в 23:08

4 ответа

Сначала перечислите все источники входных данных с помощью xinput --list:

⎡ Virtual core pointer                       id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Sony Vaio Jogdial                         id=8    [slave  pointer  (2)]
⎜   ↳ Advanced Silicon S.A CoolTouch(TM) System id=11   [slave  pointer  (2)]
⎜   ↳ HID-compliant Mouse HID-compliant Mouse   id=13   [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)]
    ↳ Sony Vaio Keys                            id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=9    [slave  keyboard (3)]
    ↳ Power Button                              id=10   [slave  keyboard (3)]
    ↳ IR camera                                 id=12   [slave  keyboard (3)]
    ↳ Cherry USB keyboard                       id=14   [slave  keyboard (3)]
    ↳ Cherry USB keyboard                       id=15   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=16   [slave  keyboard (3)]

Возьмите интересующее вас устройство (в данном случае я использую «Advanced Silicon SA CoolTouch (TM) System») и запишите его ID.

Теперь вам нужно найти дисплей, на который вы хотите отобразить устройство ввода. Самый простой способ - использовать xrandr:

Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 16384 x 16384
HDMI-0 connected 1280x1024+1920+0 (normal left inverted right x axis y axis) 338mm x 270mm
   1280x1024     60.02*+
   1280x960      60.00  
   1280x720      60.00    59.94  
   1152x864      75.00    70.00  
   1024x768      60.00  
   800x600       60.32  
   720x480       59.94  
   640x480       59.94    59.93  
LVDS-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080     60.00*+  59.94  

В этом случае я хочу сопоставить свое сенсорное устройство с выходом LVDS-0.

Объедините идентификатор первого шага (здесь 11) с отображаемым именем второго шага (здесь LVDS-0) и выполните следующую команду:

xinput --map-to-output INPUT-ID SCREEN

В моем примере эта команда будет:

xinput --map-to-output 11 LVDS-0

Ваше сенсорное устройство не должно быть правильно сопоставлено с устройством ввода и не должно требовать какой-либо дополнительной настройки.

Эти настройки не будут сохраняться между перезагрузками . Пожалуйста, посмотрите этот вопрос на , как сделать xinput команды постоянными .

0
ответ дан 23 May 2012 в 23:08

Так как это первый результат поиска в Google для этой проблемы, я решил опубликовать свое решение, которое для меня выглядит простым.

Я нашел эту ссылку на archlinux , и вы можете использовать

xinput --map-to-output <stylus device ID> <screen ID>

, поэтому мне не нужно играть с «Матрицей преобразования координат» ...

0
ответ дан 23 May 2012 в 23:08

Archlinux Wiki - лучшее описание того, как решить эту проблему, но здесь есть кое-что более конкретное.

Вы должны запустить xinput --list, чтобы определить имя вашего устройства ввода. Я создал электронную таблицу для расчета значений преобразования.

Электронная таблица здесь: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing

Я набрал ваши номера (двойные 1920x) 116]

Если ваш сенсорный экран находится слева, команда будет выглядеть следующим образом: «Advanced Silicon SA CoolTouch (TM) System» - это название моего устройства ввода, замените его на ваше):

xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0 0 1 0 0 0 1

Для верно, это должно быть:

xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0.5 0 1 0 0 0 1
0
ответ дан 23 May 2012 в 23:08

См .: https://wiki.archlinux.org/index.php/Calibrating_Touchscreen

. Ваша матрица является одной из следующих:

 Touch screen on the left: 0. 5 0 0 0 1 0 0 0 1
 Touch screen on the right: 0. 5 0 0. 5 0 1 0 0 0 1

I имеют почти одинаковую конфигурацию (но экраны один поверх других), и после установки правильной матрицы я испытываю несколько щелчков, как описано в нижней строке ссылки выше. Я не нашел способа восстановить xorg-server под Ubuntu; наверняка описанная процедура не работает.

0
ответ дан 23 May 2012 в 23:08

Другие вопросы по тегам:

Похожие вопросы: