Благодарности: денежное общество и мойка авто

Как настроить поворот экрана и тачскрина в Linux.

После установки Linux Ubuntu (сборка kubuntu) на HP Pavilion tx2500 не работал поворот экрана. А так хотелось крутить — вертеть. Возвращаться обратно на Windows не было желания, поэтому берем бубен
 
Вернее поворот экрана возможен через настройки дисплея, возможно даже вывести на некоторые кнопки поворот экрана с помощью xrandr
 
xrandr -o rigjt // поворот экрана вправо
xrandr -o left // поворот экрана влево
xrandr -o normal // обычный режим
xrandr -o inverted // переворот экрана
 
теперь в принципе можно задать эти команды на горячие клавиши, Настройки — Диспетчер настроек — Клавиатура — Комбинации клавиш
 
я не разобрался как включить кнопку поворота экрана на панели дисплея, возможно только использовать медиакнопки.
 
Он вертится!
 
Всё хорошо до тех пор как только мы прикасаемся к тачскрину, курсор не перевернулся вместе с экраном, и чтобы попасть в верхнюю левую часть экрана надо нажать в нижнюю правую.
 
Исправить положение можно повернув не только экран но и тачскрин.
 
Сначала определим, как называется наш тачскрин, для этого в консоли выполним команду xinput
 
# xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ 2.4G Receiver id=11 [slave pointer (2)]
⎜ ↳ 2.4G Receiver id=12 [slave pointer (2)]
Wacom ISDv4 93 Pen stylus id=14[slave pointer (2)]
⎜ ↳ Wacom ISDv4 93 Finger touch id= 15 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=17 [slave pointer (2)]
⎜ ↳ MCE IR Keyboard/Mouse (ene_ir) id=18 [slave pointer (2)]
⎜ ↳ Wacom ISDv4 93 Pen eraser id=21[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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ 2.4G Receiver id=10 [slave keyboard (3)]
↳ HP Webcam id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=16 [slave keyboard (3)]
↳ HP WMI hotkeys id=19 [slave keyboard (3)]
↳ ENE eHome Infrared Remote Receiver id=20 [slave keyboard (3)]
 
 
У нас 3 устройства: стилус, палец и ластик, к этим устройствам можно обращаться как по имени так и по ID, однако ID устройства может меняться при подключении USB устройств.
Далее нам надо выяснить какие параметры можно поменять у данных устрйств, для этого выполним в консоли команду xinput watch-props 14 где 14- ID устройства.
 
 
# xinput watch-props 14
Device 'Wacom ISDv4 93 Pen stylus':
Device Enabled (148): 1
Coordinate Transformation Matrix (150): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (274): 0
Device Accel Constant Deceleration (275): 1.000000
Device Accel Adaptive Deceleration (276): 1.000000
Device Accel Velocity Scaling (277): 10.000000
Device Node (268): "/dev/input/event10"
Wacom Tablet Area (304): 0, 0, 26312, 16520
Wacom Rotation (305): 0
Wacom Pressurecurve (306): 0, 0, 100, 100
Wacom Serial IDs (307): 147, 1, 0, 0, 0
Wacom Serial ID binding (308): 0
Wacom Pressure Threshold (309): 27
Wacom Sample and Suppress (310): 2, 4
Wacom Enable Touch (311): 0
Wacom Hover Click (312): 0
Wacom Enable Touch Gesture (313): 0
Wacom Touch Gesture Parameters (314): 0, 0, 250
Wacom Tool Type (315): "STYLUS" (297)
Wacom Button Actions (316): "None" (0), "None" (0), "None" (0), "None" (0), "None" (0), "None" (0), "None" (0)
Device Product ID (267): 1386, 147
Wacom Debug Levels (317): 0, 0
Evdev Axis Calibration (279): 188, 26308, 34, 16444
 
 
нас интересуют параметры выделенные зеленым, возможно некоторые параметры у других производителей тачей другие, например у тачскрина, который определился как Touchkit HID-USB Touchscreen есть параметр:
 
Evdev Axis Inversion 0,0
 
Который аналогичен нашему Coordinate Transformation Matrix, значения этого параметра инверсия осей X и Y
 
теперь осталось сделать скрипт изменения этих значений, создаем файл и туда пишем
 
обычный режим экрана

#!/bin/sh
xrandr -o normal
xinput —set-prop "Wacom ISDv4 93 Pen stylus" "Wacom Rotation" 0
xinput —set-prop "Wacom ISDv4 93 Pen stylus" "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1
 
xinput —set-prop "Wacom ISDv4 93 Finger touch" "Wacom Rotation" 0
xinput —set-prop "Wacom ISDv4 93 Finger touch" "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1
 
xinput —set-prop "Wacom ISDv4 93 Pen eraser" "Wacom Rotation" 0
xinput —set-prop "Wacom ISDv4 93 Pen eraser" "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1
 
поворот вправо
 
#!/bin/sh
xrandr -o right
xinput —set-prop "Wacom ISDv4 93 Pen stylus" "Wacom Rotation" 1
xinput —set-prop "Wacom ISDv4 93 Pen stylus" "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1
 
xinput —set-prop "Wacom ISDv4 93 Finger touch" "Wacom Rotation" 1
xinput —set-prop "Wacom ISDv4 93 Finger touch" "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1
 
xinput —set-prop "Wacom ISDv4 93 Pen eraser" "Wacom Rotation" 1
xinput —set-prop "Wacom ISDv4 93 Pen eraser" "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1
 
 
поворот влево
 
#!/bin/sh
xrandr -o left
xinput —set-prop "Wacom ISDv4 93 Pen stylus" "Wacom Rotation" 1
xinput —set-prop "Wacom ISDv4 93 Pen stylus" "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
 
xinput —set-prop "Wacom ISDv4 93 Finger touch" "Wacom Rotation" 1
xinput —set-prop "Wacom ISDv4 93 Finger touch" "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
 
xinput —set-prop "Wacom ISDv4 93 Pen eraser" "Wacom Rotation" 1
xinput —set-prop "Wacom ISDv4 93 Pen eraser" "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
 
 
переворот
 
#!/bin/sh
xrandr -o inverted
xinput —set-prop "Wacom ISDv4 93 Pen stylus" "Wacom Rotation" 0
xinput —set-prop "Wacom ISDv4 93 Pen stylus" "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
 
xinput —set-prop "Wacom ISDv4 93 Finger touch" "Wacom Rotation" 0
xinput —set-prop "Wacom ISDv4 93 Finger touch" "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
 
xinput —set-prop "Wacom ISDv4 93 Pen eraser" "Wacom Rotation" 0
xinput —set-prop "Wacom ISDv4 93 Pen eraser" "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
 
 
делаем 4 файла, ставим права на исполнение и назначаем клавиши для их исполнения.
 
В принципе можно всё сделать на одну кнопку и вращать экран сменяя положения по кругу, но мне лениво было писать скрипт.
 
Публикация данной статьи была сделана из офисного пакета OpenOffice.org по инструкции:http://кушеев.рф/archives/7
 
 
 
 

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс