1. Programas externos.
1.1. Enviar notificaciones al escritorio gráfico: notify-send
Instalar lib-notify-bin. Tutorial
Uso:
notify-send -a "Dell control" "Este script no funciona sin un parámetro."
1.2 Encender y apagar el monitor: xrandr
Encender:
xrandr --output $SALIDA --auto --right-of HDMI-A-0
Apagar:
xrandr --output $SALIDA --off
2. Comprobaciones preliminares
2.1 Comprobar existencia del parametro
if [ -z "$1" ]; then
notify-send -a "Dell control" "Este script no funciona sin un parámetro."
echo "no hay parámetro. abortar"
exit 1
fi
2.2 . Encontrar los datos del monitor:
INFO=`xrandr |grep $SALIDA`
echo "info: $INFO"
2.3. Comprobar que el monitor identificado como $SALIDA existe
PRIMERO=`echo "$INFO" | awk '{print $1}'`
echo "PRI: $PRIMERO"
if [ "$PRIMERO" != "$SALIDA" ] ; then
echo "No se encuentra patalla $SALIDA."
notify-send -a "Dell control" "No se encuentra la pantalla $SALIDA."
exit 1
fi
3. Comprobar que el monitor esta encendido.
La parte más oscura es comprobar el estado del monitor. El comando randr muestra una sutil diferencia entre el estado del monitor encendido y o apagado. Cuando está encendido muestra las medidas físicas del monitor; apagado, no.
3.1. La diferencia en xrandr
Encendido:
DVI-D-0 connected 1680x1050+1920+0 (normal left inverted right x axis y axis) 473mm x 296mm
Apagado:
DVI-D-0 connected (normal left inverted right x axis y axis)
3.2. Encontrar la diferencia con el script
ULTIMA_PALABRA=`echo "$INFO" | awk '{print $NF}'`
if [[ $ULTIMA_PALABRA == *"mm" ]]; then
# Si la última parabra es una medida, el monitor está activo. apagarlo
echo "Esta activo. Apagar"
xrandr --output $SALIDA --off
notify-send -a "Dell control" "monitor auxiliar $SALIDA apagado."
else
# el monitor no está activo. encenderlo
echo "No esta activo. Encender"
xrandr --output $SALIDA --auto --right-of HDMI-A-0
notify-send -a "Dell control" "Monitor auxiliar $SALIDA encendido."
fi
No hay comentarios:
Publicar un comentario