Мой способ под катом.
Вам потребуется:
Linux с установленными:
- x11vnc (всякие tigervnc и прочие я откровенно недолюбливаю)
- adb из комплекта android-tools
Планшет/смарт с включенным режимом отладки и установленными:
- AndroidNVC (у меня именно он, т.к. нет рекламы)
- Какой нибудь блокировщик гашения экрана(без рекламы не нашел)
- Любой автозагрузчик(запускать VNC и блокировщик) — необязательно(об этом ниже).
так, стартуем.
1. Получаем Modeline для xorg.conf
$ cvt 1024 768 25 # Можно и gtf, но он не всегда дает корректный modeline.
2. Редактируем
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. Настраиваем расположение и ориентацию.Должно быть примерно так:
Сохраняем в файл — он нам пригодится.
3. Создаем файл для автозагрузки в WM/DE (у меня planshet.sh)
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
А теперь самое интересное! Как получить координаты «тапов» для устройства без «метода проб и ошибок» истязая клавиатуру в консоли?!
Ради такого дела наваял я программулю. Если запускать ее из консоли, то получим искомое — вывод координат тапов.
6. Допишем все это в planshet.sh
#!/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'ы, когда что-то моделирую.
Комментарии (30)
nevzorofff
26.03.2019 00:05Заминусуют, меня, конечно, но поковырятся интересно, а с практической точки зрения — для даташитов можно 17-дюймовый монитор за косарь(а внутри мкада и ещё дешевле) купить, а планшет на запчасти за пятихат на авито продать.
saintbyte
26.03.2019 03:06Хорошо вам в МСК, а вы на кубани попробуй что-нить купить по адекватной цене. У меня например про авито в Ростове сложилось впечатление что адекватные цены надо в красную книгу заносить.
rexen
26.03.2019 09:47-1Получается, что не зря в фольклоре появился мем «кубаноиды». Помесь прижимистости хохлов и торгашестости джигитов :)
saintbyte
26.03.2019 03:14+1В теории можно отказаться от сети использовав примерно такой хак adb forward tcp:6100 tcp:7100 и работать без подключения сети на андроиде.
vldF
26.03.2019 09:49У меня давно было желание сделать такое, но вот вопрос. Насколько сильно это все нагружает железо ПК?
Stanislavvv
26.03.2019 11:25Не скажу за всю связку, скажу за работу по vnc по сети.
Видео лучше смотреть на основном мониторе — vnc не для этого, хоть и можно (проверял во времена android 3.0 — получил порядка 4-6 фпс на окне в ~640x480, если правильно помню).
В остальном — должно быть нормально, по-моему. То есть, офисные задачи — практически как локально, если не через инет ходить, а через сеть предприятия хотя бы в 100Мбит.
delvin-fil Автор
26.03.2019 14:33Не сильно.
Исходя из того, что «боевой» компьютер весьма жиденький по современным меркам(i3 CPU 530, 2Гб ОЗУ, Мать Н55Н-М с интеграшкой), даже не замечает «выхлоп» на экран-пустышку(в xorg.conf указано 8Мб видео памяти) «коньков»(conky) с нехилым таким набором скриптов на python(LUA, к сожалению, пока не освоил), то вполне разумное потребление.
kenny_gomel
26.03.2019 14:40Не оффтоп, но и не по содержимому поста.
Ни на что не намекаю, но… есть мак, айфон, айпад и приложение Duet Display, которое позволяет использовать последние два, как внешние дисплеи всего-лишь подключив их по кабелю к маку.
Дорого, но зато без вот этого всего.
А вообще, статья хорошая, благодарю :)Jamim
26.03.2019 16:10+1есть мак, айфон, айпад и приложение Duet Display
Дорого, но зато без вот этого всего.
Думаю, эта статья про то, как дать устройству вторую жизнь, избежав при этом дополнительных трат. В данном случае, в качестве дополнительного дисплея.
Space__Elf
26.03.2019 17:34+1с нерабочим сенсором
Я уж по названию статьи думал вы тут Cintiq из планшета сделали.
dhaenoor
В параметрах разработчика есть опция — активный режим. Если её включить, то экран, при подключенных зарядке или компе, не будет выключаться. Сенсор не работает — подключи мышку через ATG и настрой.
TIMOHIUS
Эмм… Вроде как OTG же?
dhaenoor
Ну — я старый, мне можно
ashumkin
а если мышка по каким-либо причинам не работает, то можно эмулировать нажатия через
adb shell input ...