Estoy creando un demonio de lanzamiento en mi MacBook (con Monterrey instalado) para devolver el porcentaje de batería a la pantalla de bloqueo. Yo era capaz de elaborar el siguiente comando y ejecutarlo en la terminal sin ningún problema:
sudo defaults write /Library/Preferences/com.apple.loginwindow.plist LoginwindowText "Battery percentage: `pmset -g batt | perl -pe 's/.*?(\d+\%).*/$1/' | sed -n '2 p'`"
Para automatizar el comando (concretamente para que se ejecute cada minuto), he creado un archivo en /Library/LaunchDaemons llamado com.thecoder.lockscreenbattery.plist con el siguiente marcado:
<?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>Label</key>
<string>com.thecoder.lockscreenbattery</string>
<key>ProgramArguments</key>
<array>
<string>defaults write /Library/Preferences/com.apple.loginwindow.plist LoginwindowText "Battery percentage: `pmset -g batt | perl -pe 's/.*?(\d+\%).*/$1/' | sed -n '2 p'`"</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>60</integer>
</dict>
</plist>
Finalmente, para iniciar el demonio, ejecuté el comando de Terminal sudo launchctl load /Library/LaunchDaemons/com.thecoder.lockscreenbattery.plist
(También me aseguré de que el archivo tuviera permisos de ejecución para el usuario, el grupo y otros).
Sin embargo, el comando no se ejecuta como se supone cada minuto. De hecho, sólo se ejecuta cuando lo hago explícitamente en la Terminal. ¿Alguien tiene alguna idea de cómo puedo seguir solucionando esto? Muchas gracias de antemano.