Ubuntu 24.04; как использовать xinput для смены положения сенсорного экрана по оси Y

Вопрос или проблема

Мне не совсем понятно, как работает преобразование координат 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 или в техническую поддержку.

Оцените материал
Добавить комментарий

Капча загружается...