Yo quiero que esto sea sistema operativo basado, por lo que no necesita una conexión a internet o un navegador abierto, etc. Sólo algo que puede suceder en el fondo
La manera más sencilla de hacerlo sería con una aplicación, pero aquí está cómo hacerlo con construido-en OS comandos solo. Yo sé que usted quiere que sea por evento, pero no estoy seguro de cómo hacerlo, así que aquí es una forma de comprobar el nivel de batería, a continuación, hacer algo más si es por encima/por debajo de un umbral.
Usted puede considerar un launchd
proceso, esto es, básicamente, una tarea programada que se ejecuta cada x
minutos. A menudo son utilizados por los usuarios avanzados, pero no son demasiado difíciles de configurar. Configurar un launchd tarea programada con una .plist archivo que usted pone en este directorio: Macintosh HD\Library\LaunchDaemons
y esta es la forma en que la estructura de la .plist archivo;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Debug</key>
<true/>
<key>ExitTimeOut</key>
<integer>120</integer>
<key>Label</key>
<string>com.me.BatteryInfo</string>
<key>ProgramArguments</key>
<array>
<string>/Users/yourusername/batt.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>1800</integer>
</dict>
</plist>
Si se va a guardar el archivo como com.me.BatteryInfo
en la LaunchDaemons
carpeta mencionada arriba, se podría crear una tarea programada que se ejecuta cada 30 minutos. El número, 1800
, directamente arriba de la </dict>
es el tiempo en segundos de la frecuencia con que desea que se ejecute la tarea. Donde dice <string>/Users/yourusername/batt.sh</string>
es donde se especifica que se ejecuta la secuencia de comandos de programación. Usted debe dejar <string>
y </sting>
intacto.
La línea <string>com.me.BatteryInfo</string>
es el nombre único de la tarea programada. Si usted va a hacer más de uno, asegúrese de que cada uno de ellos .plist tiene un nombre único aquí.
La siguiente cosa que usted necesita hacer es cambiar la propiedad de la .plist a root
. Esto es necesario como una característica de seguridad (para dejar de software/usuarios crear programadas tareas maliciosos, supongo). Para cambiar la propiedad del archivo, realice sudo chown root \Library\LaunchDaemons\yourtask.plist
(reemplazar yourtask.plist con el nombre de archivo real de la .plist que creó). Esta tarea se le pide una contraseña.
Ahora lo que necesita para crear la secuencia de comandos que se ejecute periódicamente. Usted necesita para hacer una .sh archivo (un script de bash) para decirle a la computadora qué hacer. Para hacer una .sh archivo, abrir una programadores editor de texto, como Sublime Text o Komodo Edit. NO utilizar para la Edición de Texto, como a menudo se añade texto a tus archivos que podrían interferir con la secuencia de comandos. Edición de texto no debe ser utilizado para el código.
Hacer una secuencia de comandos (.sh archivo) con el siguiente código;
#!/bin/sh
percent=$(ioreg -l | awk '$3~/Capacity/{c[$3]=$5}END{OFMT="%.3f";max=c["\"MaxCapacity\""];print(max>0?100*c["\"CurrentCapacity\""]/max:"?")}')
if [ $percent > 95 ]
then
echo 'charged.'
fi
exit 0
Reemplace echo 'charged.'
con el terminal de comandos(s) que desea ejecutar cuando la batería está cargada. open /Applications/Notes.app
se abrirá la aplicación de Notas; puede cambiar el directorio para abrir una aplicación diferente.
$percent > 95
Esto indica la siguiente línea para que sólo se ejecute cuando la batería es de más de 95
cargada. Usted puede cambiar esto a lo que usted desea. El nivel de la batería aquí a menudo ser un poco diferente a lo que se muestra en la barra de menú en la parte superior. Si desea ejecutar cuando la batería está completamente cargada' yo recomiendo dejar este como > 95.
Si desea que la tarea se ejecute cuando la batería esté por debajo del 20% por ejemplo, cambiar a $percent < 20
NOTA: Debido a que esta es una tarea programada, el script se ejecutará cada x
número de minutos. Esto significa que si usted pone open \Applications\Notes.app
dentro de la secuencia de comandos, la aplicación de Notas comenzará a cada x
minutos (si la batería está cargada)
Esta tarea se ejecutará incluso si nadie está en sesión.
Sé que esta pregunta hace un tiempo, pero esperemos que esto ayude a alguien.