рдирдорд╕реНрддреЗ,
x11vnc рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореМрдЬреВрджрд╛ Xorg рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рд░рд┐рдореЛрдЯ рдХрдиреЗрдХреНрд╢рди рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрд╣реАрдВ рднреА рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдореЙрдирд┐рдЯрд░ рдФрд░ рдЗрдирдкреБрдЯ рдХреЛ рдХреИрд╕реЗ рджрдмрд╛рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рд░рд┐рдореЛрдЯ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдмреИрдард╛ рдХреЛрдИ рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХреЗред рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рд╕рддреНрд░ рдореЗрдВ рдмрдЯрди рдирд╣реАрдВ рджрдмрд╛рддрд╛ред рдХрдЯ рдХреЗ рдиреАрдЪреЗ x11vnc рдХреЛ RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рдмрдирд╛рдиреЗ рдХреА рдореЗрд░реА рд╡рд┐рдзрд┐ рд╣реИред
рддреЛ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ x11vnc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Google рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдордИ: рд╣рдо x11nvc рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рд╕реНрдерд╛рдиреАрдп рдХрдВрд╕реЛрд▓ рджреЗрдЦрдиреЗ рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред
рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ: рд╕реНрдерд╛рдиреАрдп рдХрдВрд╕реЛрд▓ (рдореЙрдирд┐рдЯрд░ + рдХреАрдмреЛрд░реНрдб + рдорд╛рдЙрд╕) рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВ рддрд╛рдХрд┐ рдХреБрдЫ рднреА рджреЗрдЦрд╛ рдпрд╛ рджрд░реНрдЬ рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдореЙрдирд┐рдЯрд░ рдмрдВрдж рдХрд░рдирд╛
рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рдорди рдореЗрдВ рдЖрдИ рд╡рд╣ рдпрд╣ рдереА рдХрд┐ рдореЙрдирд┐рдЯрд░ рдХреЛ xrandr рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:
$ xrandr --output CRT1 --off
рд▓реЗрдХрд┐рди рдЙрд╕реА рд╕рдордп, рд╡рд┐рдВрдбреЛрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг (рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрдбреАрдИ рд╣реИ) рдпрд╣ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдореЙрдирд┐рдЯрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рдВрдбреЛ рдФрд░ рдкреИрдирд▓ рдХреЛ рдлреЗрдВрдХрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рдмрд╛рд╣рд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рдореЙрдирд┐рдЯрд░ рдХреЛ рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рдореЗрдВ рднреЗрдЬрдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ xset dpms force off
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рднреА, рд╕рдм рдХреБрдЫ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИред рд╕рд┐рд╕реНрдЯрдо рдкрд╣рд▓реА рдШрдЯрдирд╛ рдкрд░ рдореЙрдирд┐рдЯрд░ рдХреЛ рдЬрдЧрд╛рддрд╛ рд╣реИред рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмреИрд╕рд╛рдЦреА рдорджрдж рдХрд░рддреА рд╣реИ:
while :
do
xset dpms force off
sleep .5
done
рдореИрдВрдиреЗ рдЖрдЧреЗ рдирд╣реАрдВ рд╕реЛрдЪрд╛ - рдореИрдВ рдЖрд▓рд╕реА рдерд╛, рдпрд╣ рдЕрдкрдирд╛ рдЙрджреНрджреЗрд╢реНрдп рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ - рдореЙрдирд┐рдЯрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдореИрдВ рдмрдЯрди рджрдмрд╛рдКрдВ, рдорд╛рдЙрд╕ рд╣рд┐рд▓рд╛рдКрдВ, рдЖрджрд┐ред
рдпреБрдкреАрдбреА:
рдзрдиреНрдпрд╡рд╛рдж
$ xrandr --output CRT1 --brightness 0
рдЗрдирдкреБрдЯ рдХрд╛рдЯ рд░рд╣рд╛ рд╣реИ
рдЗрдирдкреБрдЯ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ xinput рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЬрдм рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
$ 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)]
рдЙрдкрдХрд░рдг рд╡рд░реНрдЪреБрдЕрд▓ рдХреЛрд░... рдЖрдк рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ - рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдХреА рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдЖрдк рдПрдХ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрд╕ рдХреЗ рдмрд┐рдирд╛ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ:
xinput disable 9; sleep 60; xinput enable 9
рдЯрд░реНрдирдХреА рд╕рдорд╛рдзрд╛рди
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрд╕рдПрд╕рдПрдЪ рд╕рддреНрд░ рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдЗрдирдкреБрдЯ рдХреЛ рджрдмрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ x11vnc рд╕рд░реНрд╡рд░ рдХреЛ рдмрдврд╝рд╛ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рд╕рдм рдХреБрдЫ рд╡реИрд╕реЗ рд╣реА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рд╡рд╣ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рддреАрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд┐рд▓реАрдВ, рд╡реЗ рдпрд╣рд╛рдВ (рдЕрджреНрдпрддрди) рд╣реИрдВред
рд╕реНрд╡рд┐рдЪ_рд▓реЛрдХрд▓_рдХрдВрд╕реЛрд▓:
#!/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
рдЕрдХреНрд╖рдо_рд╕реНрдерд╛рдиреАрдп_рдХрдВрд╕реЛрд▓:
#!/bin/sh
trap "switch_local_console 1" EXIT
while :
do
switch_local_console 0
sleep 1
done
рджрд░рдЕрд╕рд▓, рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдореЙрдирд┐рдЯрд░ рд╣реИрдВ, рдореИрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░реНрд╡рд░ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдирд┐рдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ)ред
vnc_рд╕рд░реНрд╡рд░:
#!/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
рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ vnc_server, рдЬрдм рддрдХ рд╡рд╣ рдЬреАрд╡рд┐рдд рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реАрдПрдирд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рд╣реИ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдХрдВрд╕реЛрд▓ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрддрд┐рд░рд┐рдХреНрдд рдФрд░ рд╕реБрдзрд╛рд░реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рд╕реНрд░реЛрдд: www.habr.com