У меня есть ubuntu 12.04 и два монитора, где первый сенсорный экран.
Система распознает разрешение как один большой экран с разрешением 3840 * 1080.
Проблема в том, что при использовании сенсорной калибровки экран калибратора получает размер по обоим экранам. Таким образом, при касании экрана указатель получает двойные перемещения по оси X.
Есть ли какое-либо решение?
Графика: NVIDIA с Twin wiew
Сначала перечислите все входные источники с помощью 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
.
Объединить ID с первого шага (11
здесь) с именем экрана со второго шага (здесь LVDS-0
) и запустите эту команду:
xinput --map-to-output INPUT-ID SCREEN
В моем примере эта команда будет:
xinput --map-to-output 11 LVDS-0
Ваше сенсорное устройство не должно быть правильно отображено на устройстве ввода и не должно требовать дополнительной настройки.
Эти настройки не будут сохраняться между перезагрузками. См. Этот вопрос в , как сделать команды xinput
постоянными .
Archlinux wiki - лучшее описание того, как это решить, но вот что-то более конкретное.
Вы должны запустить xinput -list для определения имени вашего устройства ввода. Я создал таблицу для расчета значений преобразования.
Электронная таблица здесь: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing
Я запустил ваши номера (два экрана 1920x1080).
Если ваш сенсорный экран находится слева, команда будет («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
Так как это первый результат поиска Google для этой проблемы, я решил опубликовать свое решение, которое для меня выглядит просто.
Я нашел эту ссылку на archlinux , и вы может использовать
xinput --map-to-output <stylus device ID> <screen ID>
, поэтому мне не нужно играть с «матрицей преобразования координат» ...
Сначала перечислите все входные источники с помощью 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
.
Объединить ID с первого шага (11
здесь) с именем экрана со второго шага (здесь LVDS-0
) и запустите эту команду:
xinput --map-to-output INPUT-ID SCREEN
В моем примере эта команда будет:
xinput --map-to-output 11 LVDS-0
Ваше сенсорное устройство не должно быть правильно отображено на устройстве ввода и не должно требовать дополнительной настройки.
Эти настройки не будут сохраняться между перезагрузками. См. Этот вопрос в , как сделать команды xinput
постоянными .
Archlinux wiki - лучшее описание того, как это решить, но вот что-то более конкретное.
Вы должны запустить xinput -list для определения имени вашего устройства ввода. Я создал таблицу для расчета значений преобразования.
Электронная таблица здесь: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing
Я запустил ваши номера (два экрана 1920x1080).
Если ваш сенсорный экран находится слева, команда будет («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
Сначала перечислите все входные источники с помощью 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
.
Объединить ID с первого шага (11
здесь) с именем экрана со второго шага (здесь LVDS-0
) и запустите эту команду:
xinput --map-to-output INPUT-ID SCREEN
В моем примере эта команда будет:
xinput --map-to-output 11 LVDS-0
Ваше сенсорное устройство не должно быть правильно отображено на устройстве ввода и не должно требовать дополнительной настройки.
Эти настройки не будут сохраняться между перезагрузками. См. Этот вопрос в , как сделать команды xinput
постоянными .
Смотрите: 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
У меня почти такая же конфигурация (но экраны одна поверх других), и после нескольких правильных настроек я получаю несколько кликов, как описано в нижней строке ссылки выше. Я не нашел способ перестроить xorg-server
под Ubuntu; конечно, описанная процедура не работает.
Archlinux wiki - лучшее описание того, как это решить, но вот что-то более конкретное.
Вы должны запустить xinput -list для определения имени вашего устройства ввода. Я создал таблицу для расчета значений преобразования.
Электронная таблица здесь: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing
Я запустил ваши номера (два экрана 1920x1080).
Если ваш сенсорный экран находится слева, команда будет («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
Сначала перечислите все входные источники с помощью 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
.
Объединить ID с первого шага (11
здесь) с именем экрана со второго шага (здесь LVDS-0
) и запустите эту команду:
xinput --map-to-output INPUT-ID SCREEN
В моем примере эта команда будет:
xinput --map-to-output 11 LVDS-0
Ваше сенсорное устройство не должно быть правильно отображено на устройстве ввода и не должно требовать дополнительной настройки.
Эти настройки не будут сохраняться между перезагрузками. См. Этот вопрос в , как сделать команды xinput
постоянными .
Archlinux wiki - лучшее описание того, как это решить, но вот что-то более конкретное.
Вы должны запустить xinput -list для определения имени вашего устройства ввода. Я создал таблицу для расчета значений преобразования.
Электронная таблица здесь: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing
Я запустил ваши номера (два экрана 1920x1080).
Если ваш сенсорный экран находится слева, команда будет («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
Так как это первый результат поиска Google для этой проблемы, я решил опубликовать свое решение, которое для меня выглядит просто.
Я нашел эту ссылку на archlinux , и вы может использовать
xinput --map-to-output <stylus device ID> <screen ID>
, поэтому мне не нужно играть с «матрицей преобразования координат» ...
Сначала перечислите все входные источники с помощью 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
.
Объединить ID с первого шага (11
здесь) с именем экрана со второго шага (здесь LVDS-0
) и запустите эту команду:
xinput --map-to-output INPUT-ID SCREEN
В моем примере эта команда будет:
xinput --map-to-output 11 LVDS-0
Ваше сенсорное устройство не должно быть правильно отображено на устройстве ввода и не должно требовать дополнительной настройки.
Эти настройки не будут сохраняться между перезагрузками. См. Этот вопрос в , как сделать команды xinput
постоянными .
Смотрите: 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
У меня почти такая же конфигурация (но экраны одна поверх других), и после нескольких правильных настроек я получаю несколько кликов, как описано в нижней строке ссылки выше. Я не нашел способ перестроить xorg-server
под Ubuntu; конечно, описанная процедура не работает.
Archlinux wiki - лучшее описание того, как это решить, но вот что-то более конкретное.
Вы должны запустить xinput -list для определения имени вашего устройства ввода. Я создал таблицу для расчета значений преобразования.
Электронная таблица здесь: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing
Я запустил ваши номера (два экрана 1920x1080).
Если ваш сенсорный экран находится слева, команда будет («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
Так как это первый результат поиска Google для этой проблемы, я решил опубликовать свое решение, которое для меня выглядит просто.
Я нашел эту ссылку на archlinux , и вы может использовать
xinput --map-to-output <stylus device ID> <screen ID>
, поэтому мне не нужно играть с «матрицей преобразования координат» ...
Сначала перечислите все входные источники с помощью 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
.
Объединить ID с первого шага (11
здесь) с именем экрана со второго шага (здесь LVDS-0
) и запустите эту команду:
xinput --map-to-output INPUT-ID SCREEN
В моем примере эта команда будет:
xinput --map-to-output 11 LVDS-0
Ваше сенсорное устройство не должно быть правильно отображено на устройстве ввода и не должно требовать дополнительной настройки.
Эти настройки не будут сохраняться между перезагрузками. См. Этот вопрос в , как сделать команды xinput
постоянными .
Смотрите: 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
У меня почти такая же конфигурация (но экраны одна поверх других), и после нескольких правильных настроек я получаю несколько кликов, как описано в нижней строке ссылки выше. Я не нашел способ перестроить xorg-server
под Ubuntu; конечно, описанная процедура не работает.
Сначала перечислите все входные источники с помощью 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
.
Объединить ID с первого шага (11
здесь) с именем экрана со второго шага (здесь LVDS-0
) и запустите эту команду:
xinput --map-to-output INPUT-ID SCREEN
В моем примере эта команда будет:
xinput --map-to-output 11 LVDS-0
Ваше сенсорное устройство не должно быть правильно отображено на устройстве ввода и не должно требовать дополнительной настройки.
Эти настройки не будут сохраняться между перезагрузками. См. Этот вопрос в , как сделать команды xinput
постоянными .
Смотрите: 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
У меня почти такая же конфигурация (но экраны одна поверх других), и после нескольких правильных настроек я получаю несколько кликов, как описано в нижней строке ссылки выше. Я не нашел способ перестроить xorg-server
под Ubuntu; конечно, описанная процедура не работает.
Archlinux wiki - лучшее описание того, как это решить, но вот что-то более конкретное.
Вы должны запустить xinput -list для определения имени вашего устройства ввода. Я создал таблицу для расчета значений преобразования.
Электронная таблица здесь: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing
Я запустил ваши номера (два экрана 1920x1080).
Если ваш сенсорный экран находится слева, команда будет («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.36 0 0.64 0 1 0 0 0 1
– Knetic
29 April 2017 в 21:12
Так как это первый результат поиска Google для этой проблемы, я решил опубликовать свое решение, которое для меня выглядит просто.
Я нашел эту ссылку на archlinux , и вы может использовать
xinput --map-to-output <stylus device ID> <screen ID>
, поэтому мне не нужно играть с «матрицей преобразования координат» ...