Сенсорный ввод не вращается: Lenovo Yoga 13 / Yoga 2 Pro
После получения Lenovo Yoga 13 на Рождество я был доволен его работой с Ubuntu. Изменить ориентацию дисплея легко в меню настроек дисплея или набрав, например, xrandr -o inverted
в терминале. Однако такое не приводит к повороту ввода сенсорного экрана (или, что не менее важно, сенсорной панели).
Я искал решения этой проблемы и нашел два многообещающих источника.
(1) http://cc.oulu.fi/~rantalai/synaptics/. При установке пакета и выполнении рекомендованных команд повернут дисплей и сенсорный ввод (но не сенсорный экран).
(2) http://www.elfsternberg.com/2013/05/25/thinkpad-yoga-ubuntu-12/. Этот сайт рекомендовал обновить пакет ввода, который я не пробовал.
5 ответов
Я нашел простой ответ на свой вопрос, прочитав полезную информацию в Ubuntu Wiki: X - Входное преобразование координат.
Эти команды могут использоваться для выравнивания вращений устройств ввода и дисплея:
Первая команда поворачивает дисплей, где может быть слева, справа, нормально или инвертировано:
xrandr -o <orientation>
переназначить устройство ввода:
xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>
Вторая команда переназначает устройство ввода (то есть сенсорную панель или сенсорный экран), где <matrix-elements-rowwise>
является 0 -1 1 1 0 0 0 0 1
, 0 1 0 -1 0 1 0 0 1
, 1 0 0 0 1 0 0 0 1
, или же -1 0 1 0 -1 1 0 0 1
; в соответствии с ориентацией выше.
Названия тачпада и тачскрина можно найти с помощью xinput list
и либо может быть отключен полностью с xinput disable <device-name>
, Впоследствии, xinput enable <device-name>
снова включит устройство ввода.
В моем случае, и, вероятно, для других с Yoga 13 (также на Yoga 2 Pro), сенсорный экран называется ELAN Touchscreen
и тачпад SynPS/2 Synaptics TouchPad
,
Таким образом, я поместил короткий скрипт в мой домашний каталог rotate-inverted.sh
со следующим содержанием:
#! / Bin/ Баш # Этот скрипт поворачивает экран и ввод сенсорного экрана на 180 градусов, отключает сенсорную панель и включает виртуальную клавиатуру xrandr -o инвертированный xinput set-prop 'ELAN Touchscreen' 'Матрица преобразования координат' -1 0 1 0 -1 1 0 0 1 xinput отключить "SynPS/2 Synaptics TouchPad" на борту &
Затем я сделал скрипт исполняемым с
chmod u+x rotate-inverted.sh
и назначил команду ~/rotate-inverted.sh
на сочетание клавиш Ctrl+Alt+I в
Системные настройки -> Клавиатура.
После того, как я вышел из системы и снова вошел в нее, я смог повернуть клавиатуру, нажав эту комбинацию клавиш.
Я сделал то же самое для других позиций вращения, используя команды xinput enable 'SynPS/2 TouchPad'
а также killall onboard
вместо xinput disable 'SynPS/2 TouchPad'
а также onboard &
за rotate-normal.sh
,
Некоторые другие в этой теме обсуждали назначение таких скриптов дополнительным кнопкам на
Йога - например, кнопка блокировки - а также автоматическое выполнение их при изменении положения Йоги; но я не был уверен, как это сделать.
Я добавил еще пару строк, второй запуск скрипта вернет экран в нормальное состояние и включит сенсорную панель, протестированную в Ideapad 2 Pro. Кстати, я поставил лаунчер для скрипта на боковой панели HowTo: новый лаунчер.
Акселерометр пока не поддерживается ядром, но, возможно, что-то выйдет в следующем выпуске.
создать сценарий /usr/local/bin/rotate-screen.sh
#!/bin/bash
# This script rotates the screen and touchscreen input 180 degrees, disables the touchpad, and enables the virtual keyboard
# And rotates screen back if the touchpad was disabled
isEnabled=$(xinput --list-props 'SynPS/2 Synaptics TouchPad' | awk '/Device Enabled/{print $NF}')
if [ $isEnabled == 1 ]
then
echo "Screen is turned upside down"
xrandr -o inverted
xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
xinput disable 'SynPS/2 Synaptics TouchPad'
# Remove hashtag below if you want pop-up the virtual keyboard
# onboard &
else
echo "Screen is turned back to normal"
xrandr -o normal
xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput enable 'SynPS/2 Synaptics TouchPad'
# killall onboard
fi
и дать ему исполняемые права:
sudo chmod +x /usr/local/bin/rotate-screen.sh
Утилита Spin предназначена для работы с ThinkPad Yogas, поэтому она обрабатывает информацию о стилусе и т. Д. И предлагает все виды управления ориентацией (с помощью кнопок, поворота экрана и акселерометра). Возможно, стоит попробовать.
Решения без xrandr
(который не работает на Wayland)
Решение на Ubuntu 19.04 с Wayland - установить rotate-monitor
ключ к некоторому связыванию клавиш, используя gsettings
или dconf-editor
,
Например, следующая команда вызовет Ctrl+F8
повернуть экран против часовой стрелки:
$ gsettings set org.gnome.mutter.keybindings rotate-monitor "['XF86RotateWindows', '<Control>F8']"
Это не позволяет пользователю указывать целевую ориентацию, а только поворачивать экран, пока не будет достигнута желаемая ориентация.
(оригинал размещен здесь: /questions/277128/ubuntu-1404-hostapd-80211a-iwlwifi-net-ap/277132#277132)
autorotate — это утилита Linux/X11 для ноутбуков 2-в-1 и других устройств с сенсорным экраном. Никаких прав ROOT не требуется!
Команда левый правый портрет и ланскейп являются обертками над xrandr и xinput для синхронизации поворота экрана и дигитайзера. На самом деле они будут вращать все устройства xinput, включая стилус, сенсорную панель, сенсорный экран, мышь...
Ноутбуки с датчиком оси могут работать без каких-либо команд для определения ориентации. Флаг --daemon предназначен для работы в фоновом режиме в качестве службы.