blog.gmork.cz

Hibernace počítače v závislosti na procentním úbytku baterie

Řekněme, že chceme říci laptopu, aby nás informoval o tom,
že máme pouze 10 procent energie na beterii a při 5 procentech se sám hibernoval.
Na to potřebujeme vytvořit samotný Apple script a Launchctl agent plist.

Začneme samotným apple scriptem: ( cmd+mezerník -> Editor AppleScriptu )

set Cap to (do shell script „ioreg -w0 -l | grep ExternalChargeCapable“)
tell Cap to set {wallPower} to {last word of paragraph 1}
if wallPower = „Yes“ then
        return 0
else
        set Cap to (do shell script „ioreg -wO -l | grep Capacity“)
        tell Cap to set {Available, Max} to {last word of paragraph 2, last word of paragraph 1}
        set Pct to round (100 * Available / Max)

         if Pct ≤ 10 then
                tell application „iTunes“
                        pause
                end tell
                set volume output volume 50
                do shell script „say -v \“Zuzana\“ \“Nízký stav baterie !\“ “
                if Pct ≤ 5 then
                        beep 5
                        do shell script „say -v \“Zuzana\“ \“Uspávám počítač.\““
                        do shell script „pmset sleepnow“
               end if
        end if
end if

Tento skript uložíme do: ~/Library/Scripts/Battery.applescript
Nezapoměňte, že uživetelský adresář “Library” je skrytý v Lionu, dostanete se na něj přes Finder:
Otevřete Finder a stiskněte shift+cmd+g
a do dialogového okna napište: ~/Library/Scripts a vložte script.

Nyní již stačí pomocí textového editoru vytvořit plist pro Launchctl démona.
Ten bude vypadat takto:

<?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>KeepAlive</key>
<false/>
<key>Label</key>
<string>batteryAlert</string>
<key>LowPriorityIO</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>/Users/vase_uzivatelske_jmeno/Library/Scripts/Battery.applescript</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Battery Alert</string>
<key>StartInterval</key>
<integer>30</integer>
</dict>
</plist>

Nezapomeňte nahradit vase_uzivatelske_jmeno vaším !
Uložte takto vytvořený script do ~/Library/LaunchAgents/batteryAlert.plist

A a poslední co zbýbá je nahodit samotný script. Spusťte terminál a napište:

launchctl load ~/Library/LaunchAgents/batteryAlert.plist

To je vše. Až budete mít baterku na 10 prentech, Zuzanka Vám řekne, že máte nízký stav baterie
a při 5 procentech, že uspává počítač a uspí ho 🙂


Categorised as: Apple


Comments are closed.