Silav hemû,
Li ser Înternetê gelek gotar hene li ser mijara ku meriv çawa bi x11vnc ve têkiliyek ji dûr ve bi danişîna Xorg-ê ya heyî ve saz dike, lê min li cîh nedît ku meriv çawa çavdêriya herêmî û têketinê bitepisîne da ku her kesê ku li tenişta komputera dûr rûniştî bike. nabîne ku hûn çi dikin û di danişîna we de bişkokan pê nake. Li jêr qutkirinê rêbaza min e ji bo çêkirina x11vnc ji girêdana bi Windows-ê re bi RDP-ê bêtir mîna hev.
Ji ber vê yekê, em bibêjin ku hûn jixwe dizanin ku meriv x11vnc çawa bikar tîne, heke na, hûn dikarin wek nimûne google bikin an bixwînin.
Dayîn: em x11nvc dest pê dikin, bi xerîdar re pê ve girêdidin, her tişt dixebite, lê konsoleya herêmî ya komputerê jî ji bo dîtin û têketinê heye.
Em dixwazin: konsolê herêmî (monitor + Klavyeya + mişk) vekin da ku tiştek neyê dîtin an têkevin.
Vemirandina çavdêran
Yekem tiştê ku hat bîra me ev bû ku meriv bi riya xrandr-ê ve monitorê vemirîne, mînakî bi vî rengî:
$ xrandr --output CRT1 --off
lê di heman demê de, hawîrdora pencereyê (KDE-ya min heye) dest pê dike ku difikire ku çavdêr bi rastî vemirî ye û dest bi avêtina pencere û panelan dike, her tişt derdikeve û xemgîn dibe.
Rêbazek balkêştir heye, ew e ku meriv çavdêriyê bişîne hibernasyonê, hûn dikarin vê yekê mînakek weha bikin:
$ xset dpms force off
lê li vir jî her tişt ne sivik e. Pergal di bûyera yekem de çavdêriyê hişyar dike. Krîça herî hêsan a di forma çerxê de dibe alîkar:
while :
do
xset dpms force off
sleep .5
done
Ez bêtir nefikirîm - ez tembel bûm, ew ji armanca xwe re xizmet dike - çavdêr tiştek nîşan nadin, hetta ku ez bişkokan bikirim, mişkê bikim, hwd.
UPD:
Sipî
$ xrandr --output CRT1 --brightness 0
Birîna têketinê
Ji bo neçalakkirina têketinê min xinput bikar anî. Dema ku bêyî pîvanan tê destpêkirin, navnîşek cîhazan nîşan dide:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Laser Mouse id=9 [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)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ USB 2.0 Camera: HD 720P Webcam id=10 [slave keyboard (3)]
↳ HID 041e:30d3 id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
Devices Navê virtual... hûn nekarin wê neçalak bikin - xeletiyek tê xuyang kirin, lê ya mayî dikare were vemirandin û girtin, mînakî, bi vî rengî hûn dikarin deqîqeyek bê mişk bimînin:
xinput disable 9; sleep 60; xinput enable 9
Çareseriya amade
Ji bo doza xwe, min skrîptek çêkir ku ez di danişînek ssh de dimeşînim. Ew têketina herêmî ditepisîne û servera x11vnc bilind dike, û piştî qedandina senaryoyê her tişt wekî xwe vedigere. Wekî encamek, me sê nivîsar girtin, li vir ew in (nûve kirin).
switch_local_console:
#!/bin/sh
case $1 in
1|on)
desired=1
;;
0|off)
desired=0
;;
*)
echo "USAGE: $0 0|1|on|off"
exit 1
;;
esac
keyboards=`xinput | grep -v "XTEST" | grep "slave keyboard" | sed -re 's/^.*sid=([0-9]+)s.*$/1/'`
mouses=`xinput | grep -v "XTEST" | grep "slave pointer" | sed -re 's/^.*sid=([0-9]+)s.*$/1/'`
monitors=`xrandr | grep " connected" | sed -re 's/^(.+) connected.*$/1/'`
for device in $mouses
do
xinput --set-prop $device "Device Enabled" $desired
done
for device in $keyboards
do
xinput --set-prop $device "Device Enabled" $desired
done
for device in $monitors
do
xrandr --output $device --brightness $desired
done
disable_local_console:
#!/bin/sh
trap "switch_local_console 1" EXIT
while :
do
switch_local_console 0
sleep 1
done
Bi rastî, skrîpta sereke (du çavdêrên min hene, min serverek hevpar û yek ji bo her çavdêriyek saz kir).
vnc_server:
#!/bin/bash
[[ ":0" == "$DISPLAY" ]] && echo "Should be run under ssh session" && exit 1
export DISPLAY=:0
killall x11vnc
rm -r /tmp/x11vnc
mkdir -p /tmp/x11vnc/{5900,5901,5902}
params="-fixscreen V=5 -forever -usepw -noxkb -noxdamage -repeat -nevershared"
echo "Starting VNC servers"
x11vnc -rfbport 5900 $params 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5900 &
x11vnc -rfbport 5901 $params -clip 1920x1080+0+0 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5901 &
x11vnc -rfbport 5902 $params -clip 1920x1080+1920+0 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5902 &
echo "Waiting VNC servers"
while [ `ps afx | grep -c "x11vnc -rfbport"` -ne "4" ]
do
sleep .5
done
echo "Disabling local console"
disable_local_console
echo "Killing VNC servers"
killall x11vnc
Navê pêger. Bi ssh têkevin û dest pê bikin vnc_server, dema ku ew sax e, em bi riya vncê gihîştinê û konsolê herêmî tê vemirandin.
Spas ji bo baldariya we, zêdekirin û çêtirkirin bi xêr hatin.
Source: www.habr.com