Slökktu á staðbundnu stjórnborðinu þegar þú notar x11vnc

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 hér.

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 amarao fyrir aðra aðferð með því að snúa birtustigi í núll:

$ 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

Bæta við athugasemd