Вопрос или проблема
Мне не совсем понятно, как работает преобразование координат xinput.
С этой командой (единичная матрица) сенсорный экран будет реагировать, но ось Y будет инвертирована:
xinput set-prop “eGalaxTouch Virtual Device for Single” “Coordinate Transformation Matrix” 1 0 0 0 1 0 0 0 1
В этом ответе есть несколько примерных входных данных; кажется, что последняя строка всегда 0 0 1, согласно Какую “матрицу преобразования координат” мне нужно использовать, чтобы мой сенсорный экран работал правильно?
Какая матрица будет для инверсии оси Y?
(X – влево-вправо, Y – вверх-вниз)
Ответ или решение
Для решения проблемы с инверсией Y-оси на сенсорном экране в Ubuntu 24.04 можно использовать команду xinput
с заданием корректной матрицы преобразования координат. Ваша задача заключается в изменении ориентировки сенсорного ввода, и особенно это касается инверсии Y-оси.
Понимание матрицы преобразования координат
Матрица преобразования координат в xinput
имеет форму 3×3 и выглядит следующим образом:
| m00 m01 m02 |
| m10 m11 m12 |
| 0 0 1 |
Где:
m00
иm11
контролируют масштаб по X и Y соответственно.m01
иm10
ответственные за наклон (косую перестановку) координат, что в большинстве случаев фиксируется на 0 для обычной настройки.m02
иm12
задают перевод (сдвиг) по X и Y, и в большинстве случаев также фиксируются на 0.- Последний ряд всегда равен
0 0 1
, чтобы сохранить однородность точек.
Инверсия Y-оси
Чтобы инвертировать ось Y, вы должны установить m11
в -1
, а остальные элементы останутся прежними. Ваша матрица будет выглядеть следующим образом:
| 1 0 0 |
| 0 -1 1 |
| 0 0 1 |
Объяснение:
m00 = 1
— не масштабируем по оси X.m11 = -1
— инвертируем ось Y.m12 = 1
— сдвиг по оси Y, чтобы учесть инверсию (в данном случае можно использовать половину высоты экрана для точного выравнивания).
Команда для инверсии Y-оси
Следовательно, команда для инверсии Y-оси вашего сенсорного экрана будет следующей:
xinput set-prop "eGalaxTouch Virtual Device for Single" "Coordinate Transformation Matrix" 1 0 0 0 -1 1 0 0 1
Применение изменений
После выполнения этой команды, ваш сенсорный экран должен правильно реагировать на касания, и ось Y будет инвертирована, что соответствует вашим ожиданиям.
Проверка настроек
Чтобы убедиться, что изменения были применены, вы можете использовать следующую команду, чтобы получить текущие свойства сенсорного экрана и проверить матрицу:
xinput list-props "eGalaxTouch Virtual Device for Single"
Ищите строку, связанную с "Coordinate Transformation Matrix", чтобы убедиться, что матрица установлена правильно.
Заключение
В результате, с помощью указанной настройки вы сможете исправить проблему с инверсией Y-оси на вашем сенсорном экране в Ubuntu 24.04. Если у вас возникнут дальнейшие вопросы или проблемы, не стесняйтесь обращаться за помощью на форумах сообщества Ubuntu или в техническую поддержку.