У меня есть карта NVidia GTX260 с одним обычным экраном над одним сенсорным экраном с использованием драйвера eGalax.
Я пытался настроить сенсорный экран с помощью xinput, но не могу сделать это правильно. С отключенным обычным экраном и переключением с параметром «Калибровка оси Evdev» он работает нормально, но когда я снова подключаю обычный экран, жесткое отображение смещается. Если я касаюсь сенсорного экрана, мышь перемещается в соответствующую позицию на другом экране.
Кажется, что ни «Матрица преобразования координат», ни «отображение на выход» не работают ...
Любая помощь очень ценится!
/ Хенрик
для меня с Ubuntu 12.04 LTS (64 бита) он не прерывал работу, пока в xinput --help не увидел, что правильная команда:
xinput map-to-crtc 'Имя ввода device 'Name of output device
blockquote>, в то время как имя устройства ввода отображается в виде $ xinput --list, имя устройства вывода отображается в виде $ xrandr и может быть LVDS1 или VGA1, например
Если Вы хотите графический инструмент, который находится в Вас системный лоток, то мы просто создали один и хотели бы видеть, полезно ли это для кого-либо еще: Просто выберите свое входное перьевое устройство и которые экранируют для отображения его на:
http://wenhsinjen.github.io/ptxconf/
Мы только что запустили так, может иметь проблему при идентификации планшета или экранов, поэтому сообщите нам. Мы немедленно зафиксируем его. Также мы планируем иметь его, сохраняют его предыдущую конфигурацию после того, как запуск - возможно, даже помнит, какая конфигурация использовалась, для которой, экранной конфигурации если некоторые люди продолжают добавлять и удалять мониторы.
У меня сейчас (13.04) была похожая проблема, но xinput map-to-output
помог, если я делаю вещи в правильном порядке.
xinput map-to-output
настраивает «Матрицу преобразования координат».
xinput_calibrator
устанавливает «Калибровку оси Евдева» и совершенно не знает о «Матрице преобразования координат». Он также всегда открывается растянутым до полной доступной области вывода.
Это означает, что вы должны запустить xinput_calibrator
на одном экране.
xrandr --output <non-touch-output> --off
xinput map-to-output <touch input device> <touch-output>
(чтобы сбросить «Матрицу преобразования координат», если вы к ней уже прикоснулись) . [тысяча сто двадцать пять]
Калибровать с xinput_calibrator
.
Теперь у вас должно быть хорошо откалиброванное касание на одном экране.
(Мой сенсорный экран был изначально отключен - X / Y поменялся местами, Y инвертирован - поэтому мне пришлось выполнить это дважды, с --misclick 0
. Я считаю, что это свойство моего сенсорного экрана, не связанное с ситуацией с двумя мониторами.)
Повторно включить второй экран.
xrandr --output <non-touch-output> --on
Сделайте map-to-output
снова.
Я никак не мог заставить работать мою стандартную сенсорную панель USB / eGalax в моей системе Mint 18.2 с любым ответом, который нашел сам, но подумал, что должен поделиться тем, что сработало для меня.
Сначала я отключил свой бесконтактный монитор (как предложил Бени Чернявский-Паскин) и откалибровал сенсорную панель, используя xinput_calibrator
.
Снова включил другой монитор (через раздел дисплея на панели «Системные настройки»). В этот момент сенсорная панель хорошо откалибрована, но вход по-прежнему отображается через оба монитора.
Чтобы полностью сместить его до нужного монитора / области, я затем заново сопоставил «Матрицу преобразования координат», как рекомендовано в настоящего руководства , используя
$ xinput set-prop "Device Name" --type=float "Coordinate Transformation Matrix" c0 0 c1 0 c2 c3 0 0 1
. Device Name
Я использовал xinput --list
, чтобы получить идентификатор сенсорной панели. Из следующего вывода я получил идентификатор 13 :
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SIGMACH1P USB Keyboard id=10 [slave pointer (2)]
⎜ ↳ SOAI Gaming Mouse id=12 [slave pointer (2)]
⎜ ↳ eGalax Inc. USB TouchController id=13 [slave pointer (2)]
Я вычислил параметры, как описано в упомянутом руководстве. например Для меня смещение сенсорной области шириной 768 пикселей моим монитором 1900 пикселей дало мне c0 = 768/(1900+768) = 0.287856
. Закончился этой командой:
$ xinput set-prop 13 --type=float "Coordinate Transformation Matrix" 0.287856, 0.000000, 0.712114, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Это все работает нормально. Кстати, у меня были некоторые проблемы, которые, кажется, исчезают, когда я использовал точность только 6 десятичных знаков для параметра idk, если это действительно требуется, или, скорее всего, я только что испортил что-то другое.
Хотя ответ Бени , вероятно, будет работать для некоторых (если не для большинства) людей, в моем случае xinput_calibrator
все еще путался, несмотря на то, что другие дисплеи были отключены. Я также не был неравнодушен к установке драйверов с закрытым исходным кодом от поставщика.
К счастью, используя информацию из этого самого QA и других источников (документация EVDEV xorg и этот ответ ), оказывается, что можно полностью настроить все вручную [ 1153] до тех пор, пока вы используете EVDEV и Xorg (по умолчанию для Kubuntu в настоящее время как минимум) .
xinput --list
. Это будет упоминаться как <DEVICE_ID>
. xinput --list-prop <DEVICE-ID>
и запишите значения по умолчанию на всякий случай. xinput --set-prop <DEVICE_ID> "Evdev Axes Swap" 1
. В противном случае оставьте это свойство без изменений. Evdev Axis Inversion
с двумя значениями - X Y
, где 0 - нормальное, а 1 - инвертированное. Итак: xinput --set-prop <DEVICE_ID> "Evdev Axis Inversion" 1 0
. Evdev Axis Calibration
управляет им, и оно теоретически зависит от поставщика , но это можно выяснить с небольшим подталкиванием (в буквальном смысле). Вот что вам нужно сделать: Evdev Axis Calibration
(это произошло в моем случае после запуска ptxconf). Если это так, запустите xinput --set-prop <DEVICE_ID> "Evdev Axis Calibration" <DEFAULT_VALUES_FROM_POINT_1>
(учтите, что хотя значения выводятся через запятую, на входе они должны быть разделены пробелом). <FAR_RIGHT_OFFSET> <FAR_LEFT_OFFSET> <VERY_TOP_OFFSET> <VERY_BOTTOM_OFFSET>
. xinput --list-props <DEVICE_ID>
и запишите свои окончательные значения. Вот и все! Как указано в выводе xinput_calibration
, для сохранения настроек вам необходимо добавить файл конфигурации в вашу конфигурацию xorg. dir (это /usr/share/X11/xorg.conf.d/
в Ubuntu, названный с достаточно низким приоритетом - как 99-calibration.conf
в представленном примере).
Подготовьте значения свойств xinput и проверьте имя устройства в xinput --list
. Теперь все, что вам нужно сделать, это создать файл следующим образом:
Section "InputClass"
Identifier "calibration"
MatchProduct "<DEVICE_NAME_FROM_XINPUT_LIST>"
Option "TransformationMatrix" "<VALUES_FROM(Coordinate Transformation Matrix)>"
Option "Calibration" "<VALUES_FROM(Evdev Axis Calibration)>"
Option "SwapAxes" "<VALUE_FROM(Evdev Axes Swap)>"
Option "InvertX" "<X_VALUE_FROM(Evdev Axis Inversion)>"
Option "InvertY" "<Y_VALUE_FROM(Evdev Axis Inversion)>"
EndSection
Например:
Section "InputClass"
Identifier "calibration"
MatchProduct "ACME USB Touch"
Option "TransformationMatrix" "0.5656 0.000000 0.676576 0.000000 0.765756 0.756233 0.000000 0.000000 1.000000"
Option "Calibration" "50 1366 25 2876"
Option "SwapAxes" "1"
Option "InvertY" "1"
EndSection
Проверить, все ли работает после перезагрузки. И теперь все готово!