แแแฃแแแ แฏแแก แงแแแแแก,
แแแขแแ แแแขแจแ แแ แแก แแแแ แ แกแขแแขแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฃแแแ แแแแงแแแแ แแแกแขแแแชแแฃแ แ แแแแจแแ แ แแ แกแแแฃแ Xorg แกแแกแแแแ x11vnc-แแก แกแแจแฃแแแแแแ, แแแแ แแ แแ แแแ แกแแ แแแแแแ, แ แแแแ แแแแแ แแฃแแ แแแแแแแแ แแแ แแแแแขแแ แ แแ แจแแงแแแแ แแกแ, แ แแ แแแกแขแแแชแแฃแ แ แแแแแแฃแขแแ แแก แแแแ แแแ แแฏแแแแแ แแแแแแแแก. แแแ แฎแแแแแก แ แแก แแแแแแ แแ แแ แแญแแ แก แฆแแแแแแแก แกแแกแแแแ. แญแ แแแแก แฅแแแแแ แแ แแก แฉแแแ แแแแแแ, แ แแ x11vnc แแแแฎแแแแ Windows-แแแ แแแแแแจแแ แแแ RDP-แแก แกแแจแฃแแแแแแ.
แแกแ แ แแ, แแแแฃแจแแแ, แ แแ แแฅแแแ แฃแแแ แแชแแ x11vnc-แแก แแแแแงแแแแแ, แแฃ แแ แ, แจแแแแซแแแแ Google-แจแ แแ แฌแแแแแแฎแแ แแแแแแแแแ
แแแแกแ แฉแแแ แแแแฃแจแแแ x11nvc, แแฃแแแแจแแ แแแแแ แแแก แแแแแแขแแแ, แงแแแแแคแแ แ แแฃแจแแแแก, แแแแ แแ แแแแแแฃแขแแ แแก แแแแแแฃแ แ แแแแกแแแ แแกแแแ แฎแแแแแกแแฌแแแแแแ แกแแแแฎแแแแ แแ แจแแกแแงแแแแแ.
แฒฉแแแ แแแแแแ: แแแแแ แแแ แแแแแแฃแ แ แแแแกแแแ (แแแแแขแแ แ + แแแแแแแขแฃแ แ + แแแฃแกแ) แ แแ แแ แแคแแ แ แฉแแแแแก แแ แจแแแงแแแแแ.
แแแแแขแแ แแแแก แแแแแ แแแ
แแแ แแแแ แ แแช แแแแแฎแกแแแแ แแงแ แฃแแ แแแแ แแแแแขแแ แแก แแแแแ แแแ xrandr-แแก แกแแจแฃแแแแแแ, แแแแแแแแแ แแกแ:
$ xrandr --output CRT1 --off
แแแแ แแ แแแแแแ แแฃแแแ, windowing แแแ แแแ (แแ แแแฅแแก KDE) แแฌแงแแแก แคแแฅแ แก, แ แแ แแแแแขแแ แ แแแ แแแแช แแแแแ แแฃแแแ แแ แแฌแงแแแก แคแแแฏแ แแแแก แแ แแแแแแแแแก แกแ แแแแก, แงแแแแแคแแ แ แแแซแ แแแแก แแ แฎแแแแ แกแแแแแแแ.
แแ แกแแแแแก แฃแคแ แ แกแแแแขแแ แแกแ แแแ, แ แแแแแแช แแ แแก แแแแแขแแ แแก แฐแแแแ แแแชแแแจแ แแแแแแแแ, แแแแก แแแแแแแแ แจแแแแซแแแแ แแแแแแแแแ แแกแ:
$ xset dpms force off
แแแแ แแ แแฅแแช แงแแแแแคแแ แ แแ แแ แแก แแแฃแแ. แกแแกแขแแแ แแฆแแแซแแแก แแแแแขแแ แก แแแ แแแ แฆแแแแกแซแแแแแแ. แฃแแแ แขแแแแกแ แงแแแแ แฏแแแ แชแแแแแก แกแแฎแแ แแฎแแแ แแแ:
while :
do
xset dpms force off
sleep .5
done
แแฆแแ แแแคแแฅแ แแ - แแแแแแแ แ, แแก แแแแแก แแแแแแก แแแกแแฎแฃแ แแแ - แแแแแขแแ แแแ แแ แแคแแ แก แแฉแแแแแแก, แแฃแแแแช แฆแแแแแแแก แแแแแญแแ แ, แแแฃแกแแก แแแแแขแแแ แแ แ.แจ.
UPD:
แแแแแแแ
$ 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
แแแแแ แแฃแ แแแแก แแแแแกแแแแแ
แฉแแแ แจแแแแฎแแแแแกแแแแก แแ แแแแแแแแ แกแแ แแแขแ, แ แแแแแกแแช แแแฌแแ แแแแ ssh แกแแกแแแแ. แแก แแ แแฃแแแแก แแแแแแแแ แแ แจแแงแแแแแก แแ แแแแฆแแแแก x11vnc แกแแ แแแ แก แแ แกแแ แแแขแแก แแแกแ แฃแแแแแก แจแแแแแ แงแแแแแคแแ แ แแ แฃแแแแแ แ แแแแ แช แแงแ. แจแแแแแแ, แฉแแแ แแแแแฆแแ แกแแแ แกแแ แแแขแ, แแฅ แแ แแก แแกแแแ (แแแแแฎแแแแฃแแแ).
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
แคแแฅแขแแแ แแแแ, แแแแแแ แ แกแแ แแแขแ (แแ แแแฅแแก แแ แ แแแแแขแแ แ, แแแแแงแแแ แแ แแ แกแแแ แแ แกแแ แแแ แ แแ แแ แแ แแแแแแฃแแ แแแแแขแแ แแกแแแแก).
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
แฒกแฃแ แแก แแ แแก. แจแแแแ ssh-แแก แกแแจแฃแแแแแแ แแ แแแฃแจแแแ vnc_server, แกแแแแ แแก แชแแชแฎแแแแ, แฉแแแ แแแแฅแแก แฌแแแแแ vnc-แแก แกแแจแฃแแแแแแ แแ แแแแแแแแ แแแ แแแแกแแแ แฉแแฅแ แแแ.
แแแแแแแแ แงแฃแ แแแฆแแแแกแแแแก, แแแกแแกแแแแแแแแแ แแแแแขแแแแแ แแ แแแฃแแฏแแแแกแแแแแ.
แฌแงแแ แ: www.habr.com