Хабрахабр

[Из песочницы] И снова о втором мониторе из планшета…

Оказавшись обладателем среднего такого планшета с нерабочим сенсором (старшенький сынуля постарался) долго думал, куда приспособить. Гуглил, гуглил и нагуглил (раз, два, Хакер №227), а так же много других рецептов с участием spacedesk, iDispla и некоторых других. Вот только незадача — у меня Linux. Погуглив ещё, я нашел несколько рецептов и путем несложного шаманства получил приемлемый результат.

Мой способ под катом.

Вам потребуется:

Linux с установленными:

  • x11vnc (всякие tigervnc и прочие я откровенно недолюбливаю)
  • adb из комплекта android-tools

Планшет/смарт с включенным режимом отладки и установленными:

  • AndroidNVC (у меня именно он, т.к. нет рекламы)
  • Какой нибудь блокировщик гашения экрана(без рекламы не нашел)
  • Любой автозагрузчик(запускать VNC и блокировщик) — необязательно(об этом ниже).

так, стартуем.

Получаем Modeline для xorg.conf 1.

$ cvt 1024 768 25 # Можно и gtf, но он не всегда дает корректный modeline.

2. Редактируем

xorg.conf

Section "ServerLayout" Identifier "Xorg Configured" Screen 0 "Monitor" 0 0 Screen 2 "Screen2" rightof "Screen0" # "Пустышка для VNC" Option "Xinerama" "1" EndSection #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # здесь все настройки оборудования, коли таковые есть #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #Dummy видеокарта Section "Device" Identifier "Device2" Driver "dummy" VideoRam 8000 EndSection #Dummy монитор Section "Monitor" Identifier "Monitor2" Modeline "1024x768@25" 23.77 1024 1056 1144 1176 768 785 789 807 # см. п. 1 EndSection #Dummy экран Section "Screen" Identifier "Screen2" Device "Device2" Monitor "Monitor2" DefaultDepth 24 SubSection "Display" #разрешение плашета Modes "1024x768" Virtual 1024 748 EndSubSection EndSection

Перезапускаем Х-сы и проверяем через arandr. Настраиваем расположение и ориентацию.Должно быть примерно так:

Сохраняем в файл — он нам пригодится.

Создаем файл для автозагрузки в WM/DE (у меня planshet.sh) 3.

x11vnc -rfbport 5900 -display :0 -dontdisconnect -noxfixes -xdamage -shared -forever -clip 1024x768+1600+0 -scale 1024x768 -bg -cursor X -o /home/$USER/x11vnc.log -repeat xrandr --addmode VIRTUAL1 1024x768 # необязательно xrandr --output VIRTUAL1 --mode 1024x768 # необязательно xrandr --output VIRTUAL2 --off --output HDMI1 --off --output VIRTUAL1 --mode 1024x768 --pos 1602x0 --rotate normal --output DP1 --off --output VGA1 --mode 1600x900 --pos 0x0 --rotate normal #вот эта строка заимствована из сохраненного файла arandr

Проверим:

$ xrandr |grep VIRTUAL1 VIRTUAL1 connected 1024x768+1600+0 (normal left inverted right x axis y axis) 0mm x 0mm

Так как в IceWM каталога автостарта нет, но есть файл ~/.icewm/startup(который должен быть исполняемым), добавим в него следующее:

sh -c /path/to/planshet.sh

4. Отключим гашение мониторов:

xset s off xset s noblank xset -dpms

А теперь самое интересное! Как получить координаты «тапов» для устройства без «метода проб и ошибок» истязая клавиатуру в консоли?!

Если запускать ее из консоли, то получим искомое — вывод координат тапов. Ради такого дела наваял я программулю.

Допишем все это в planshet.sh 6.

Полная версия

#!/bin/bash x11vnc -rfbport 5900 -display :0 -dontdisconnect -noxfixes -xdamage -shared -forever -clip 1024x768+1600+0 -scale 1024x768 -bg -cursor X -o /home/$USER/x11vnc.log -repeat xrandr --addmode VIRTUAL1 1024x768 # необязательно xrandr --output VIRTUAL1 --mode 1024x768 # необязательно xrandr --output VIRTUAL2 --off --output HDMI1 --off --output VIRTUAL1 --mode 1024x768 --pos 1602x0 --rotate normal --output DP1 --off --output VGA1 --mode 1600x900 --pos 0x0 --rotate normal #вот эта строка заимствована из сохраненного файла arandr xset s off xset s noblank xset -dpms adb tcpip 5555 adb connect 192.168.0.14:5555 sudo adb devices adb shell input tap 1000 20 # тапаем по "квадратикам" в правом верхнем углу (не знаю, как нызавется) - скрин 3 adb shell input tap 392 138 # тапаем по AndroidVNC adb shell input tap 20 65 # запускаем VNC предварительно прописав адрес и порт

И сделаем

chmod +x /path/to/planshet.sh

Вот, собственно, и все. Перезагружаем Х-сервер и получаем мультискрин.

У меня на «маленьком» крутится conky.

Скрин двойного экрана прилагается.

А еще я на него кидаю datasheet'ы, когда что-то моделирую.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»