1 votos

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

Mi idea es atenuar la pantalla cuando el sistema está inactivo durante 10 segundos, y con una pulsación de tecla o la actividad del trackpad volver a la original (quiero preservar la batería de forma automática y no usar un protector de pantalla - Necesito supervisar alguna actividad pero con poca luz en la pantalla). No pude encontrar tal aplicación así que decidí hacer la solución con Automator.

Encontré la aplicación Shady que puede atenuar la pantalla cuando se inicia y si está activa (delante) con la pulsación de una tecla Q lo dejará.

Entonces, ¿cómo puedo hacer un script en Automator para que inicie Shady cuando el sistema esté inactivo durante 10 segundos y luego espere a que haya alguna pulsación de tecla o actividad del trackpad, y luego envíe la pulsación de tecla q para dejar a Shady? El script debería estar activo todo el tiempo, así que cuando se produzca otro tiempo de inactividad de 10 segundos, inicia Shady de nuevo.

1voto

Fuzzy Purple Monkey Puntos 702

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

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

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

Si, por ejemplo, estás viendo un vídeo con VLC, pmset -g assertions contendrá una línea como ésta:

   PreventUserIdleSystemSleep     1

Así que podrías 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 nuevos procesos cada segundo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X