0
Найти на сайте: параметры поиска

 

 

[РЕШЕНО] Поворот экрана и ориентация мышки

  
Сообщений: 0
Юзнаю систему на ноуте-планшете. У него есть стилус которым можно тыкать по экрану. Есть необходимость в повороте экрана на 180. В настройках Wacon эта функция есть, но вот есть проблемка со стилусом.

При повороте экрана на 180 в режим Портрет, ориентация мышки-стилуса не изменяется и остается в Ландшафтном режиме. Когда стилусом ведешь влево курсор на экране едит вверх, когда вправо - вниз ну и в остальных плоскостях тоже.

Как изменить ориентацию мыши вместе с экраном???
Сообщений: 0
Вообщем долго капал инет на предмет такой фитчи и вот решилось:

Для начала смотрим id нужных нам устройств командой xinput,

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=10 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet stylus id=12 [slave pointer (2)]
⎜ ↳ Serial Wacom Tablet eraser id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=11 [slave keyboard (3)]

В моем случае это Id=12,13 и 10 мой трекпоинт (типа тачпад)

Далее пишем скрипт поворота экрана, он делает три вещи после определения текущего положения экрана:
- поворачивает экран,
- поворачивает ориентацию тачскрина,
- выключает или включает трекпоинт (по номеру ID в моем случае 10).

#!/bin/bash
rotation=`xrandr -q | fgrep "right (" `
if [ $? == 1 ] ;
then
xrandr -o right
xsetwacom --set "Serial Wacom Tablet stylus" Rotate cw
xsetwacom --set "TPPS/2 IBM TrackPoint" Rotate cw
xsetwacom --set "Serial Wacom Tablet eraser" Rotate cw
# следующая строчка отключает трекпоинт при повороте экрана
xinput set-prop 10 "Device Enabled" 0
else
xrandr -o normal
xsetwacom --set "Serial Wacom Tablet stylus" Rotate normal
xsetwacom --set "TPPS/2 IBM TrackPoint" Rotate normal
xsetwacom --set "Serial Wacom Tablet eraser" Rotate normal
xinput set-prop 10 "Device Enabled" 1
fi

Примечания:

- Список устойств можно ещё посмотреть с помощью xsetwacom --list
- right=cw, если захотите поворачивать в left, то тогда left=ccw

Если вы будете адаптировать под своё железо — учтите следующие моменты:

- Определение поворота в скрипте сделано халтурно — довольно грубый греп по выводу xrandr.
- keycode для вашей кнопки может быть другой
- Название тач-устройств может быть другим

Итак что получилось по факту
- По нажатию поворачивать картинку на 90°
- По повторному нажатию возвращать обратно
- Поворачивать восприятие всех тачскринов (обнаружилось в ходе отладки решения)
- (upd) отключаем тачпад — он иногда срабатывает на перевёрнутую крышку хотя в моем случае это было не обязательно.

Осталось придумать как исполнение скрипта зацепить на хардварную кнопку сделанную именно для поворота экрана
Редактировалось: 1 раз (Последний: 24 сентября 2012 в 21:27)
Сообщений: 0
в продолжении темы: "сам спрашиваю сам отвечаю"

Для того чтобы зацепить скрипт на хардварную кнопку у меня заработал эффективно вот такой метод

Для начала ставим пакет xbindkeys, который позволит нам вешать на произвольные кнопки произвольные программы:

apt-get install xbindkeys

Далее — пишем конфиг для xbindkeys:

Делаем touch ~/.xbindkeysrc

Запускаем xbindkey -k Получаем окно, в котором надо нажать нужную нам кнопку — на выходе будет строчка, которую нужно отдать xbindkeys-config, чтобы запустить программу по нажатию кнопки. Если на хардварную кнопку уже что-то стало по-умолчанию, то нажмите Shift + (нужная кнопка). Будет примерно так:

m:0x1 + c:199
Shift + XF86TouchpadToggle


Далее необходимо проставить ноли 0x0 в первой части выражения для активации нужной нам кнопки чтобы работала без клавиши Shift.

В моем случае keycode кнопки такой:

m:0x0 + c:199

(понятно, что для разных устройств вторая строчка будет разной)


Далее формируем конфиг, заходим в (~/.xbindkeys) и вписываем полученную строчку комбинации клавиш

"rotate"
m:0x0 + c:199


в файл xbindkeysrc.

После чего запускаем xbindkeys-config и открываем им файл xbindkeysrc. Так же по умолчанию в конфиг попадут образцы дефолтных кнопок от xbindkeys, их можно удалить.

Сохраняем изменения и закрываем конфиг.

Запускаем xkbindkeys, проверяем, что работает.

Прописываем запуск xbindkeys в ~/.xsession

И наслаждаемся функциональностью планшета
В начало страницы 
|
Перейти на форум: