Взамен убитого почти всусмерть X220i купил себе X220 tablet. Замечательная железка — ноутбук с вращающимся экраном, точскрином и пером (которое понимает «силу нажатия»). Однако, увы, часть хардварных кнопок (в т.ч. на вращающемся экране) не работала.
Одна из них — кнопка поворота (на фотографии). Очень полезна для перевода ноутбука в «readmode» (c книжно-портретной ориентацией).
Что мы хотим?
- По нажатию поворачивать картинку на 90°
- По повторному нажатию возвращать обратно
- Поворачивать восприятие всех точскринов (обнаружилось в ходе отладки решения)
Под катом — вариант решения и ссылки на использованные материалы.
Если вы будете адаптировать под своё железо — учтите следующие моменты:
- Определение поворота в скрипте сделано халтурно — довольно грубый греп по выводу xrandr.
- keycode для вашей кнопки может быть другой
- Название точ-устройств может быть другим
Для начала ставим пакет xkeybind, который позволит нам вешать на произвольные кнопки произвольные программы:
apt-get install xkeybind
Далее, пишем скрипт поворота экрана:
#!/bin/bash
rotation=`xrandr -q | fgrep "left (" `
if [ $? == 1 ] ;
then
xrandr -o left
xsetwacom --set "Wacom ISDv4 E6 Pen stylus" Rotate ccw
xsetwacom --set "Wacom ISDv4 E6 Finger touch" Rotate ccw
xsetwacom --set "Wacom ISDv4 E6 Pen eraser" Rotate ccw
else
xrandr -o normal
xsetwacom --set "Wacom ISDv4 E6 Pen stylus" Rotate normal
xsetwacom --set "Wacom ISDv4 E6 Finger touch" Rotate normal
xsetwacom --set "Wacom ISDv4 E6 Pen eraser" Rotate normal
fi
Примечания:
- как я и предупреждал, греп очень халтурный
- Список устойств можно посмотреть с помощью xsetwacom --list
- left=ccw, если захотите поворачивать в right, то тогда cw
Я этот скрипт назвал /usr/local/bin/rotate.
Не забываем про chmod +x на него.
Далее — пишем конфиг для xbindkeys:
- Делаем touch ~/.xbindkeysrc (у xbindkeys мелкий баг — в отсутствие конфига -k не работает).
- Запускаем xbindkey -k. Получаем окно, в котором надо нажать нужную нам кнопку — на выходе будет строчка, которую нужно отдать xbindkeys, чтобы запустить программу по нажатию кнопки. Этот путь у меня оказался самым эффективным, хоть и начал я с магических setkeys, сканкодов, кейкодов и т.д.
- Вписываем в конфиг (~/.xbindkeys):
"rotate" m:0x0 + c:161
(понятно, что для разных устройств вторая строчка будет разной)
- Запускаем xkbindkeys, проверяем, что работает.
- Прописываем запуск xbindkeys в ~/.xsession
- PROFIT??? (см картинку в начале поста)
Автор: amarao