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

AppleScript: 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 baterii a při 5 procentech se sám hibernoval. Na to potřebujeme vytvořit samotný Apple script a Launchctl agent plist.

Krok první:

Otevřeme si aplikaci Editor AppleScriptu (uložený v Aplikace -> Utility) a klikneme na Soubor -> Nový

Do okna AppleScriptu zkopírujeme následující:

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 50
		do shell script "say -v \"Zuzana\" \"Nízký stav baterie - připojte mě k nabíječce!\" "
		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

Krok druhý:

Uložíme si vytvořený skript na plochu pod názvem batteryScript.scpt a otevřeme si složku usr (složka usr je skrytá a dostaneme se do ní ve Finderu buď stiskem klávesy CMD a SHIFT a G nebo z horního menu výběrem Otevřít – Otevřít složku…) a uložený skript si do této složky zkopírujeme.

Krok třetí:

Otevřeme si aplikaci Terminál (uložený v Aplikace -> Utility) a do okna Terminálu vložíme následující:

sudo chmod +rx /usr/batteryScript.scpt

Potvrdíme stiskem klávesy ENTER a zadáním hesla.

Krok čtvrtý:

Otevřeme si nový textový dokument a vložíme do něj následující:

<?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>/usr/batteryScript.scpt</string>
 </array>
 <key>RunAtLoad</key>
 <true/>
 <key>ServiceDescription</key>
 <string>Battery Alert</string>
 <key>StartInterval</key>
 <integer>30</integer>
</dict>
</plist>

Uložte takto vytvořený script do ~/Library/LaunchAgents/batteryAlert.plist

Krok pátý a poslední:

A a poslední co zbývá 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 procentech, Zuzanka Vám řekne, že máte nízký stav baterie a při 5 procentech, že uspává počítač a uspí ho.

 

Původní článek pro http://blog.gmork.cz/ a mac-info.cz.

One comment

Přidávání komentářů není povoleno