почему акселерометр работает только в gnome? Зеркалит в портретном режиме и все портит, а в других рабочих столах не работает. Все чудесатей и чудесатей. И сломанный акселерометр все портит. Сложная инструкция работает с гномом с отключеным акселерометром, но зеркалит в других окружениях.
Имеете ввиду, что экран переключается в режимы "портрет"/"ландшафт" в зависимости от положения планшета в пространстве, но в Gnome ориентация оказывается неверной?
Автоповорот штатно работает только в Gnome и FlyDE. KDE раньше он работал частично в режиме Wayland. В иных окружениях рабочего стола такая функциональность, похоже, не предусмотрена. Там решалось запуском скрипта, который что-то шаманил с настройками Иксов, типа вот такого
https://github.com/jfwells/linux-asus-t100ta/blob/master/support-scripts/rotate.sh или как тут
https://4pda.to/forum/index.php?showtopic=650808&view=findpost&p=74034680Для работы штатного автоповорота нужен пакет iio-sensors-proxy.
Для корректной работы iio-sensors-proxy нужно, что бы микросхема акселерометра была правильно сориентирована на плате устройства. Иначе требуется т.н. матрица трансформации в правилах UDEV.
Как создать правило, описано в /lib/udev/hwdb.d/60-sensor.hwdb
Надо создать файл с правилом /lib/udev/hwdb.d/61-sensor-local.hwdb и переинициализировать базу устройств.
Вот пример для моего планшета:
# To add local entries, create a new file
# /etc/udev/hwdb.d/61-sensor-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
# udevadm trigger -y `dirname $(udevadm info -n "/dev/iio:deviceXXX" -q path)`
# where /dev/iio:deviceXXX is the device in question.
#
# Allowed properties are:
# ACCEL_MOUNT_MATRIX=<matrix>
#
# where <matrix> is a mount-matrix in the format specified in the IIO
# subsystem[1]. The default, when unset, is equivalent to:
# ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
# eg. the identity matrix.
#
# [1]: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dfc57732ad38f93ae6232a3b4e64fd077383a0f1
#
#
# Sort by brand, model
#########################################
# DEXP
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*svn*DEXP*:*pn*DEXPOEM*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
После sensor:modalias:acpi: указывается идентификаторы оборудования (подробности в 60-sensor.hwdb, там же примеры). Для начала, если не ошибаюсь, достаточно поставить звёздочки sensor:modalias:acpi:*:dmi:*:*
ACCEL_MOUNT_MATRIX - вот тут надо хорошо понимать векторную алгебру, тогда можно сразу написать корректную матрицу, но обычно с двух-трёх попыток подбирают, где должна стоять единица и с каким знаком.
Обратите внимание, что должен быть пробел перед ACCEL_MOUNT_MATRIX, и новой строка в конце файла. Иначе это игнорировалось.