Je veux que ce soit basé sur le système d'exploitation, donc je n'ai pas besoin d'une connexion Internet ou d'un navigateur ouvert, etc. Juste quelque chose qui peut arriver en arrière-plan
La façon la plus simple de le faire serait avec une application, mais voici comment le faire avec les commandes du système d'exploitation intégrées uniquement. Je sais que vous voulez qu'elle soit pilotée par les événements, mais je ne sais pas comment y parvenir, alors voici une façon de vérifier le niveau de la batterie, puis de faire autre chose si elle est supérieure / inférieure à un seuil.
Vous pouvez envisager un launchd
processus, il s'agit essentiellement d'une tâche planifiée qui s'exécute toutes les x
minutes. Ils sont souvent utilisés par les utilisateurs avancés, mais ne sont pas trop difficiles à configurer. Vous configurez une tâche planifiée launchd avec un fichier .plist que vous placez dans ce répertoire: Macintosh HD\Library\LaunchDaemons
et c'est ainsi que vous structurez le fichier .plist;
<?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 vous deviez enregistrer ce fichier comme com.me.BatteryInfo
dans le LaunchDaemons
dossier mentionné ci-dessus, cela créerait une tâche planifiée qui s'exécute toutes les 30 minutes. Le nombre, 1800
directement au </dict>
- dessus est le temps en secondes de la fréquence à laquelle vous souhaitez que la tâche s'exécute. Où il <string>/Users/yourusername/batt.sh</string>
est indiqué est l'endroit où vous spécifiez quel script s'exécute dans les délais. Vous devez partir <string>
et </sting>
intact.
La ligne <string>com.me.BatteryInfo</string>
est le nom unique de la tâche planifiée. Si vous allez en créer plusieurs, assurez-vous que chaque .plist porte un nom unique ici.
La prochaine chose que vous devez faire est de changer la propriété du .plist en root
. Ceci est nécessaire en tant que fonction de sécurité (pour empêcher les logiciels / utilisateurs de créer des tâches malveillantes planifiées, je suppose). Pour changer la propriété du fichier, faites sudo chown root \Library\LaunchDaemons\yourtask.plist
(remplacez yourtask.plist par le nom de fichier réel du .plist que vous avez créé). Cette tâche vous demandera un mot de passe.
Vous devez maintenant créer le script qui s'exécutera périodiquement. Vous devez créer un fichier .sh (un script bash) pour indiquer à l'ordinateur quoi faire. Pour créer un fichier .sh, ouvrez un éditeur de texte de programmeur, tel que Sublime Text ou Komodo Edit . N'UTILISEZ PAS Text Edit, car il ajoute souvent du texte à vos fichiers qui pourrait interférer avec votre script. L'édition de texte ne devrait pas vraiment être utilisée pour le code.
Créez un script (fichier .sh) avec le code suivant;
#!/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
Remplacez-la echo 'charged.'
par la ou les commandes de terminal que vous souhaitez exécuter lorsque la batterie est chargée. open /Applications/Notes.app
ouvrira l'application Notes; vous pouvez modifier le répertoire pour ouvrir une autre application.
$percent > 95
Cela indique à la ligne suivante de ne fonctionner que lorsque la batterie est plus que 95
chargée. Vous pouvez changer cela en ce que vous voulez. Le niveau de la batterie ici sera souvent légèrement différent de ce qui est affiché dans la barre de menu en haut. Si vous souhaitez `` fonctionner lorsque la batterie est complètement chargée '', je recommande de laisser ceci comme> 95 . Si vous souhaitez que la tâche s'exécute lorsque votre batterie tombe en dessous de 20% par exemple, remplacez-la par$percent < 20
REMARQUE: comme il s'agit d'une tâche planifiée, votre script s'exécutera toutes les x
minutes. Cela signifie que si vous mettez à l' open \Applications\Notes.app
intérieur de votre script, l'application Notes démarrera toutes les x
minutes (si votre batterie est chargée)
Cette tâche s'exécutera même si personne n'est connecté.
Je sais que vous avez posé cette question il y a quelque temps, mais j'espère que cela aidera quelqu'un.