αž αžΎαž™αž˜αŸ’αžαž„αž‘αŸ€αžαž’αŸ†αž–αžΈαž˜αŸ‰αžΌαž“αžΈαž‘αŸαžšαž‘αžΈαž–αžΈαžšαž–αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αž“αŸ’αž‘αŸ‡ ...

αžŠαŸ„αž™αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžαžΆαžαŸ’αž›αž½αž“αžαŸ’αž‰αž»αŸ†αž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž“αŸƒαžαŸαž”αŸ’αž›αŸαžαž˜αž’αŸ’αž™αž˜αž”αŸ‚αž”αž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž§αž”αž€αžšαžŽαŸαž…αžΆαž”αŸ‹αžŸαž‰αŸ’αž‰αžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αž€αžΌαž“αž”αŸ’αžšαž»αžŸαž…αŸ’αž”αž„αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž’αžŸαŸ‹αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–) αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‚αž·αžαž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž™αžΌαžšαž’αŸ†αž–αžΈαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžŸαž˜αŸ’αžšαž”αžœαžΆαŸ” Googled, Googled αž“αž·αž„ Googled (αžŠαž„, Π΄Π²Π°, Hacker No. 227), αž€αŸαžŠαžΌαž…αž‡αžΆαžšαžΌαž”αž˜αž“αŸ’αžαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸ spacedesk, iDispla αž“αž·αž„αž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž”αž‰αŸ’αž αžΆαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž‚αžΊαžαžΆαžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž›αžΈαž“αž»αž…αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž–αžΈ googling αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“β€‹αž‘αŸ€αž αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αžšαž€β€‹αžƒαžΎαž‰β€‹αžšαžΌαž”αž˜αž“αŸ’αžβ€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“ αž αžΎαž™β€‹αžαžΆαž˜β€‹αžšαž™αŸˆβ€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αž”αžΆαž”β€‹αž”αŸ‚αž”β€‹αžŸαžΆαž˜αž‰αŸ’αž‰β€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“ αžαŸ’αž‰αž»αŸ†β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž›αž‘αŸ’αž’αž•αž›β€‹αžŠαŸ‚αž›β€‹αž’αžΆαž…β€‹αž‘αž‘αž½αž›β€‹αž™αž€β€‹αž”αžΆαž“αŸ”

αž αžΎαž™αž˜αŸ’αžαž„αž‘αŸ€αžαž’αŸ†αž–αžΈαž˜αŸ‰αžΌαž“αžΈαž‘αŸαžšαž‘αžΈαž–αžΈαžšαž–αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αž“αŸ’αž‘αŸ‡ ...
αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊαž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž€αžΆαžαŸ‹αŸ”

αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš:

αž›αžΈαž“αž»αž…αžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αŸ–

  • x11vnc (αž“αž·αž™αžΆαž™αžŠαŸ„αž™αžαŸ’αžšαž„αŸ‹αž‘αŸ…αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αžΌαž›αž…αž·αžαŸ’αžαž‚αŸ’αžšαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘ tigervnc αž“αž·αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αž)
  • adb αž–αžΈαž§αž”αž€αžšαžŽαŸ Android

αžαŸαž”αŸ’αž›αŸαž/αž†αŸ’αž›αžΆαžαžœαŸƒαž‡αžΆαž˜αž½αž™αžšαž”αŸ€αž”αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ αž αžΎαž™αž€αŸ†αžŽαžαŸ‹αž‘αŸ…αŸ–

  • AndroidNVC (αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž˜αž½αž™αž“αŸαŸ‡ αž–αŸ’αžšαŸ„αŸ‡αž’αžαŸ‹αž˜αžΆαž“αž•αŸ’αžŸαžΆαž™αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜)
  • αž”αŸ’αžšαž—αŸαž‘αž§αž”αž€αžšαžŽαŸαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž€αžΆαžšαž”αž·αž‘αž’αŸαž€αŸ’αžšαž„αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“ (αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αžΆαž“αž‘αŸαž”αžΎαž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αžŸαžΆαž™αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜)
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ autoloader αžŽαžΆαž˜αž½αž™ (αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš VNC αž“αž·αž„ blocker) αž‚αžΊαžŸαŸ’αžšαŸαž…αž…αž·αžαŸ’αž (αž”αž“αŸ’αžαŸ‚αž˜αž›αžΎαžœαžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜)αŸ”

αž˜αž·αž“αž’αžΈαž‘αŸ αžαŸ„αŸ‡αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ”

1. αž‘αž‘αž½αž›αž”αžΆαž“ Modeline αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ xorg.conf

$ 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

αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ X-sys αž‘αžΎαž„αžœαž·αž‰αž αžΎαž™αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαž˜αžšαž™αŸˆ 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

αžŠαŸ„αž™αžŸαžΆαžšαž˜αž·αž“αž˜αžΆαž“αžαž autostart αž“αŸ…αž€αŸ’αž“αž»αž„ 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

αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžαžΆαž˜αž–αž·αžαŸ” αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ X αž‘αžΎαž„αžœαž·αž‰ αž αžΎαž™αž‘αž‘αž½αž›αž”αžΆαž“αž’αŸαž€αŸ’αžšαž„αŸ‹αž…αŸ’αžšαžΎαž“αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαžαŸ‹αž›αžΎ "αžαžΌαž…" αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αŸ”

αžšαžΌαž”αžαžαž’αŸαž€αŸ’αžšαž„αŸ‹αž“αŸƒαž’αŸαž€αŸ’αžšαž„αŸ‹αž‘αŸ’αžœαŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αŸ”

αž αžΎαž™αž˜αŸ’αžαž„αž‘αŸ€αžαž’αŸ†αž–αžΈαž˜αŸ‰αžΌαž“αžΈαž‘αŸαžšαž‘αžΈαž–αžΈαžšαž–αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αž“αŸ’αž‘αŸ‡ ...

αžαŸ’αž‰αž»αŸ†β€‹αž€αŸβ€‹αž”αŸ„αŸ‡β€‹αžŸαž“αŸ’αž›αžΉαž€β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž‘αŸ…β€‹αž›αžΎβ€‹αžœαžΆβ€‹αžŠαŸ‚αžš αž–αŸαž›β€‹αžαŸ’αž‰αž»αŸ†β€‹αž™αž€β€‹αž‚αŸ†αžšαžΌβ€‹αžαžΆαž˜β€‹αž’αŸ’αžœαžΈβ€‹αž˜αž½αž™αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹