Kashe wasan bidiyo na gida lokacin amfani da x11vnc

Sannun ku,

Akwai labarai da yawa akan Intanet akan batun yadda ake saita haɗin nesa zuwa zaman Xorg da ake da shi ta hanyar x11vnc, amma ban sami ko'ina ba yadda ake murkushe mai saka idanu na gida da shigar da shi ta yadda duk wanda ke zaune kusa da kwamfutar ta nesa ya yi. kada ku ga abin da kuke yi kuma baya danna maɓalli a cikin zaman ku. A ƙasa da yanke shine hanyata don yin x11vnc mafi kama da haɗawa zuwa Windows ta hanyar RDP.

Don haka, bari mu ce kun riga kun san yadda ake amfani da x11vnc, idan ba haka ba, kuna iya google ko karanta misali. a nan.

An ba: muna ƙaddamar da x11nvc, haɗa shi tare da abokin ciniki, komai yana aiki, amma na'ura mai kwakwalwa ta gida kuma yana samuwa don dubawa da shigarwa.

Muna so: kashe na'urar wasan bidiyo na gida (mai duba + madannai + linzamin kwamfuta) don kada a iya gani ko shigar da komai.

Kashe masu saka idanu

Abu na farko da ya zo a zuciya shi ne kawai kashe mai duba ta hanyar xrandr, misali kamar haka:

$ xrandr --output CRT1 --off

amma a lokaci guda, yanayin taga (Ina da KDE) ya fara tunanin cewa an kashe mai saka idanu kuma ya fara jefa windows da bangarori, komai yana motsawa kuma ya zama bakin ciki.
Akwai hanya mafi ban sha'awa, wacce ita ce aika mai saka idanu zuwa cikin kwanciyar hankali, zaku iya yin wannan misali kamar haka:

$ xset dpms force off

amma a nan ma, ba komai ba ne mai santsi. Tsarin yana tada mai saka idanu a taron farko. Ƙunƙwasa mafi sauƙi a cikin hanyar zagayowar yana taimakawa:

while :
do
    xset dpms force off
    sleep .5
done

Ban yi tunanin kara ba - Na kasance kasala, yana aiki da manufarsa - masu saka idanu ba sa nuna komai, koda kuwa na danna maballin, motsa linzamin kwamfuta, da sauransu.

UPS:

Спасибо amariya don wata hanya tare da juya haske zuwa sifili:

$ xrandr --output CRT1 --brightness 0

Yanke abin shigar

Don musaki shigarwa na yi amfani da xinput. Lokacin da aka ƙaddamar ba tare da sigogi ba, yana nuna jerin na'urori:

$ 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)]

Na'urori Mahimman bayanai ... ba za ku iya kashe shi ba - an nuna kuskure, amma sauran za a iya kunna da kashewa, alal misali, wannan shine yadda za ku iya barin ku ba tare da linzamin kwamfuta na minti daya ba:

xinput disable 9; sleep 60; xinput enable 9

Shirye mafita

Don shari'ata, na yi rubutun da nake gudana a cikin zaman ssh. Yana hana shigarwar gida kuma yana ɗaga uwar garken x11vnc, kuma bayan kammala rubutun komai yana dawowa kamar yadda yake. Sakamakon haka, mun sami rubutun uku, a nan an sabunta su.

canza_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

kashe_local_console:

#!/bin/sh

trap "switch_local_console 1" EXIT

while :
do
    switch_local_console 0
    sleep 1
done

A zahiri, babban rubutun (Ina da masu saka idanu guda biyu, na saita sabar gama gari ɗaya kuma ɗaya ga kowane mai duba).

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

Shi ke nan. Shiga ta hanyar ssh kuma ƙaddamar vnc_server, yayin da yake raye, muna da damar ta vnc kuma an kashe na'urar wasan bidiyo na gida.

Na gode da kulawar ku, ana maraba da ƙari da haɓakawa.

source: www.habr.com

Add a comment