После получения 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/ . Этот сайт рекомендовал обновить пакет ввода, который я не пробовал.
Я нашел простой ответ на свой вопрос, прочитав полезную информацию в 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/bash # This script rotates the screen and touchscreen input 180 degrees, disables the touchpad, and enables the virtual keyboard 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' onboard &
Затем я сделал исполняемый скрипт с помощью
chmod u+x rotate-inverted.sh
и назначил команда ~/rotate-inverted.sh
для сочетания клавиш Ctrl kbd> + Alt kbd> + I kbd> в
Системные настройки -> Клавиатура .
После того, как я вышел из системы и снова вошел в нее, я смог повернуть клавиатуру, нажав эту клавишу.
Я сделал то же самое для других позиций вращения, используя команды xinput enable 'SynPS/2 TouchPad'
и killall onboard
вместо xinput disable 'SynPS/2 TouchPad'
и onboard &
для rotate-normal.sh
.
Некоторые другие в этой теме обсуждали назначение таких скриптов дополнительным кнопкам в
Yoga & mdash; такие как кнопка блокировки & mdash; а также автоматически выполнять их при изменении положения йоги; но я не был уверен, как это сделать.
Я добавил еще пару строк, второй запуск скрипта вернет экран в нормальное состояние и включит сенсорную панель, протестированную с Ideapad 2 Pro. Кстати, я поставил панель запуска для скрипта на боковой панели . Как: новая панель запуска .
Акселерометр пока не поддерживается в ядре, но, возможно, что-то будет в следующем выпуске.
создать скрипт /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
(который не работает над Уэйлендом),Решение на Ubuntu 19.04 с Уэйлендом состоит в том, чтобы установить rotate-monitor
ключ к некоторому использованию привязки клавиш gsettings
или dconf-editor
.
Например, следующая команда вызовет Ctrl+F8
поворачивать экран против часовой стрелки:
$ gsettings set org.gnome.mutter.keybindings rotate-monitor "['XF86RotateWindows', '<Control>F8']"
Это не позволяет пользователю указывать целевую ориентацию, но только поворачивать экран, пока желаемая ориентация не достигнута.
(исходный отправленный здесь: https://unix.stackexchange.com/a/465395/20661)