Inicie la aplicación con Automator cuando el sistema está inactivo

1

Mi idea es atenuar la pantalla cuando el sistema está inactivo durante 10 segundos, y con una pulsación del teclado o trackpad, la actividad cambia a original (quiero conservar la batería automáticamente y no usar un protector de pantalla. Necesito monitorear alguna actividad, pero con luz de pantalla baja). No pude encontrar dicha aplicación, así que decidí hacer una solución con Automator.

Encontré la aplicación Shady que puede atenuar la visualización cuando se inicia y si está activa (delante) con la tecla Q se cerrará.

Entonces, ¿cómo puedo hacer un script en Automator para iniciar Shady cuando el sistema está inactivo durante 10 segundos y luego esperar cualquier actividad de pulsación del teclado o trackpad, luego enviar la pulsación q para salir de Shady? La secuencia de comandos debe estar activa todo el tiempo, de modo que cuando transcurran otros 10 segundos de inactividad, vuelva a iniciar Shady.

    
pregunta Jovan Popovic 11.10.2013 - 16:08

1 respuesta

0

Si realmente quiere ahorrar energía, use brightness .c en lugar de Shady. Shady no reduce los niveles de retroiluminación de las pantallas, y las pantallas LCD generalmente requieren una cantidad similar de energía para mostrar píxeles oscuros y brillantes.

Puede ver el tiempo transcurrido desde la última acción del dispositivo de entrada humana (teclado o mouse) con ioreg :

ioreg -c IOHIDSystem | awk '/HIDIdleTime/{print $NF/1000000000;exit}'

Si, por ejemplo, está viendo un video con VLC, pmset -g assertions contendrá una línea como esta:

   PreventUserIdleSystemSleep     1

Por lo tanto, puedes usar un script como este:

#!/bin/bash

while sleep 0.5; do
  idle=$(ioreg -c IOHIDSystem | awk '/HIDIdleTime/{printf "%i",$NF/1000000000;exit}')
  current=$(brightness -l | awk '/display 0: brightness/{print $NF}')
  if [[ $idle -ge 10 ]] && pmset -g assertions | grep -q 'PreventUserIdleDisplaySleep *0'; then
    [[ $current != 0.000000 ]] && old=$current
    brightness 0
  else
    [[ $old ]] && brightness $old
  fi
done

Sin embargo, no tiene ningún sentido ejecutar más de diez procesos nuevos cada segundo.

    
respondido por el user495470 12.10.2013 - 09:25

Lea otras preguntas en las etiquetas