āĻ¸āĻŦāĻžāĻāĻā§ āĻ āĻāĻŋāĻŦāĻžāĻĻāĻ¨,
x11vnc-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ Xorg āĻ¸ā§āĻļāĻ¨ā§ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻā§ āĻ
āĻ¨ā§āĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻāĻŽāĻŋ āĻā§āĻĨāĻžāĻ āĻā§āĻāĻā§ āĻĒāĻžāĻāĻ¨āĻŋ āĻ¯ā§ āĻā§āĻāĻžāĻŦā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻŽāĻ¨āĻŋāĻāĻ° āĻāĻŦāĻ āĻāĻ¨āĻĒā§āĻāĻā§ āĻĻāĻŽāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§ āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°ā§āĻ° āĻĒāĻžāĻļā§ āĻŦāĻ¸ā§ āĻĨāĻžāĻāĻž āĻ¯ā§ āĻā§āĻ āĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻāĻ°āĻā§āĻ¨ āĻ¤āĻž āĻĻā§āĻā§āĻ¨ āĻ¨āĻž āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻļāĻ¨ā§ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒā§āĻ¨ āĻ¨āĻžāĨ¤ āĻāĻžāĻā§āĻ° āĻ¨ā§āĻā§ x11vnc-āĻā§ āĻāĻ°āĻĄāĻŋāĻĒāĻŋ-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻ¨ā§āĻĄā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§ āĻāĻ°āĻ āĻ
āĻ¨ā§āĻ°ā§āĻĒ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻžāĻ¨ā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ x11vnc āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻŦāĻž āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž 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
āĻāĻžāĻ°āĻžāĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨
āĻāĻŽāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ āĻ¯āĻž āĻāĻŽāĻŋ āĻāĻāĻāĻŋ 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, āĻ¤āĻŋāĻ¨āĻŋ āĻā§āĻŦāĻŋāĻ¤ āĻĨāĻžāĻāĻžāĻāĻžāĻ˛ā§āĻ¨, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŋāĻāĻ¨āĻ¸āĻŋ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻā§ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻ¨āĻ¸ā§āĻ˛āĻāĻŋ āĻ¨āĻŋāĻā§ āĻā§āĻā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§āĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻ¸āĻāĻ¯ā§āĻāĻ¨ āĻāĻŦāĻ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ¸ā§āĻŦāĻžāĻāĻ¤ āĻāĻžāĻ¨āĻžāĻāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com