Atsaharo ny console eo an-toerana rehefa mampiasa x11vnc

Miarahaba ny rehetra,

Betsaka ny lahatsoratra ao amin'ny Internet momba ny fomba fametrahana fifandraisana lavitra amin'ny fivoriana Xorg efa misy amin'ny alΓ lan'ny x11vnc, saingy tsy hitako na aiza na aiza ny fomba hanakanana ny monitor sy ny fidirana eo an-toerana mba hahafahan'ny olona mipetraka eo akaikin'ny solosaina lavitra. tsy mahita izay ataonao ary tsy manindry bokotra amin'ny session-nao. Eo ambanin'ny fanapahana dia ny fombako hanaovana ny x11vnc mitovy amin'ny fampifandraisana amin'ny Windows amin'ny RDP.

Dia atao hoe efa mahay mampiasa x11vnc ianao, raha tsy izany dia azonao atao ny mi-google na mamaky ohatra. eto.

nomena: Manomboka x11nvc izahay, mifandray amin'ny mpanjifa, mandeha ny zava-drehetra, fa ny console eo an-toerana amin'ny solosaina dia azo jerena sy ampidirina ihany koa.

Tianay: vonoy ny console eo an-toerana (monitor + clavier + mouse) mba tsy hisy na inona na inona ho hita na hiditra.

Mamono ny mpanara-maso

Ny zavatra voalohany tonga tao an-tsaina dia ny hamono fotsiny ny monitor amin'ny alΓ lan'ny xrandr, ohatra toy izao:

$ xrandr --output CRT1 --off

fa miaraka amin'izay koa, manomboka mieritreritra ny tontolon'ny varavarankely (manana KDE aho) fa tena maty ny monitor ary manomboka manipy varavarankely sy tontonana, mivoaka ny zava-drehetra ary lasa malahelo.
Misy fomba mahaliana kokoa, dia ny fandefasana ny monitor ho any amin'ny hibernation, azonao atao izany ohatra toy izao:

$ xset dpms force off

fa eto koa tsy milamina daholo. Ny rafitra dia mamoha ny monitor amin'ny hetsika voalohany. Ny tehina tsotra indrindra amin'ny endriky ny tsingerina dia manampy:

while :
do
    xset dpms force off
    sleep .5
done

Tsy nieritreritra bebe kokoa aho - kamo aho, manatanteraka ny tanjony - tsy mampiseho na inona na inona ny mpanara-maso, na dia manindry ny bokotra aza aho, manetsika ny totozy, sns.

UPS:

Бпасибо amarao ho an'ny fomba hafa mamadika ny famirapiratana ho aotra:

$ xrandr --output CRT1 --brightness 0

Manapaka ny fampidirana

Mba hanesorana ny fidirana dia nampiasa xinput aho. Rehefa natomboka tsy misy masontsivana, dia mampiseho lisitry ny fitaovana:

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

fitaovana Ivontoerana virtoaly... tsy azonao atao ny manafoana izany - misy hadisoana miseho, fa ny ambiny dia azo alefa sy alefa, ohatra, ity no fomba ahafahanao mijanona tsy misy totozy mandritra ny iray minitra:

xinput disable 9; sleep 60; xinput enable 9

Solon-tsambo

Ho an'ny raharahako dia nanao script aho izay mandeha amin'ny session ssh. Manafoana ny fidirana eo an-toerana izy io ary mampiakatra ny mpizara x11vnc, ary rehefa vita ny script dia miverina amin'ny laoniny ny zava-drehetra. Vokatr'izany dia nahazo script telo izahay, indro izy ireo (havaozina).

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

Raha ny marina, ny script lehibe (manana mpanara-maso roa aho, nanangana mpizara mahazatra iray aho ary iray ho an'ny monitor tsirairay).

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

Izay ihany. Midira amin'ny ssh ary manomboka vnc_server, raha mbola velona izy dia afaka miditra amin'ny vnc izahay ary maty ny console eo an-toerana.

Misaotra anao amin'ny fiheveranao, ny fanampiana sy ny fanatsarana dia raisina.

Source: www.habr.com

Add a comment