Halló,
Það eru margar greinar á netinu um hvernig á að setja upp fjartengingu við núverandi Xorg lotu í gegnum x11vnc, en ég hef hvergi fundið hvernig á að bæla niður staðbundna skjáinn og inntakið þannig að allir sem sitja við hlið ytri tölvunnar geri það. sér ekki hvað þú ert að gera og ýtir ekki á takka í lotunni þinni. Fyrir neðan klippinguna er aðferðin mín til að gera x11vnc líkari tengingu við Windows í gegnum RDP.
Svo segjum að þú veist nú þegar hvernig á að nota x11vnc, ef ekki geturðu googlað eða lesið til dæmis
Gefið: við ræsum x11nvc, tengjumst því við biðlarann, allt virkar, en staðbundin leikjatölva tölvunnar er einnig tiltæk til að skoða og setja inn.
Við viljum: slökktu á staðbundinni stjórnborðinu (skjár + lyklaborð + mús) þannig að ekkert sést eða sést inn.
Að slökkva á skjánum
Það fyrsta sem mér datt í hug var að slökkva einfaldlega á skjánum í gegnum xrandr, til dæmis svona:
$ xrandr --output CRT1 --off
en á sama tíma fer gluggaumhverfið (ég er með KDE) að halda að það sé virkilega slökkt á skjánum og fer að henda gluggum og spjöldum, allt færist út og verður leiðinlegt.
Það er áhugaverðari leið, sem er að senda skjáinn í dvala, þú getur gert þetta til dæmis svona:
$ xset dpms force off
en hér er líka ekki allt slétt. Kerfið vekur skjáinn við fyrsta atburðinn. Einfaldasta hækjan í formi hringrásar hjálpar:
while :
do
xset dpms force off
sleep .5
done
Ég hugsaði ekki lengra - ég var latur, það þjónar tilgangi sínum - skjáirnir sýna ekki neitt, jafnvel þó ég ýti á takkana, hreyfi músina osfrv.
UPP:
Takk
$ xrandr --output CRT1 --brightness 0
Að klippa út inntakið
Til að slökkva á inntak notaði ég xinput. Þegar það er ræst án breytu sýnir það lista yfir tæki:
$ 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)]
Tæki Sýndarkjarni... þú getur ekki slökkt á því - villa birtist, en restina er hægt að kveikja og slökkva á, til dæmis, svona geturðu verið án músar í eina mínútu:
xinput disable 9; sleep 60; xinput enable 9
Tilbúinn lausn
Fyrir mitt tilvik gerði ég handrit sem ég keyri í ssh lotu. Það bælir staðbundið inntak og hækkar x11vnc netþjóninn og þegar skriftinni er lokið snýr allt aftur eins og það var. Fyrir vikið fengum við þrjú handrit, hér eru þau (uppfærð).
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
Reyndar aðalhandritið (ég er með tvo skjái, ég setti upp einn sameiginlegan netþjón og einn fyrir hvern skjá).
vnc_þjónn:
#!/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
Það er allt og sumt. Skráðu þig inn með ssh og ræstu vnc_þjónn, meðan hann er á lífi, höfum við aðgang í gegnum vnc og staðbundin stjórnborð er slökkt.
Þakka þér fyrir athyglina, viðbætur og endurbætur eru vel þegnar.
Heimild: www.habr.com