Znalazłszy się jako posiadacz tak przeciętnego tabletu z niedziałającym sensorem (mój najstarszy syn starał się jak mógł), długo zastanawiałem się, gdzie go zaadaptować. Google’owane, Google’owane i Google’owane (
Moja metoda jest poniżej cięcia.
Potrzebne będą:
Linux z zainstalowanymi:
- x11vnc (Szczerze mówiąc, nie lubię wszelkiego rodzaju tigervnc i innych)
- adb z zestawu narzędzi dla Androida
Tablet/smart z włączonym trybem debugowania i ustawionym na:
- AndroidNVC (Mam ten, bo nie ma reklam)
- Jakiś program blokujący wygaszanie ekranu (nie mogłem go znaleźć bez reklam)
- Dowolny autoloader (uruchom VNC i bloker) jest opcjonalny (więcej na ten temat poniżej).
ok zaczynajmy.
1. Pobierz Modeline dla xorg.conf
$ cvt 1024 768 25 # Можно и gtf, но он не всегда дает корректный modeline.
2. Edycja
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
Restartujemy X-sys i sprawdzamy poprzez arandr. Ustaw lokalizację i orientację. Powinno to wyglądać mniej więcej tak:
Zapisujemy go do pliku - będzie nam przydatny.
3. Utwórz plik do automatycznego ładowania w WM/DE (mam 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
Sprawdźmy:
$ xrandr |grep VIRTUAL1
VIRTUAL1 connected 1024x768+1600+0 (normal left inverted right x axis y axis) 0mm x 0mm
Ponieważ w IceWM nie ma katalogu autostartu, ale istnieje plik ~/.icewm/startup (który powinien być wykonywalny), dodaj do niego następujące elementy:
sh -c /path/to/planshet.sh
4. Wyłącz wygaszanie monitora:
xset s off
xset s noblank
xset -dpms
Teraz zaczyna się zabawa! Jak uzyskać współrzędne „dotknięcia” urządzenia bez „metody prób i błędów” poprzez torturowanie klawiatury w konsoli?!
Dla czegoś takiego rzeźbiłem
6. Dodajmy to wszystko do planshet.sh
Pełna wersja
#!/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 предварительно прописав адрес и порт
I zrobimy to
chmod +x /path/to/planshet.sh
Właściwie to wszystko. Zrestartuj serwer X i uzyskaj tryb wieloekranowy.
Na moim „małym” działa Conky.
W załączeniu zrzut ekranu podwójnego ekranu.
Kiedy coś modeluję, wrzucam na niego również arkusze danych.
Źródło: www.habr.com