Wireless Keyboard ausschalten > Mac aus

apple][c

Aktives Mitglied
Thread Starter
Dabei seit
26.01.2005
Beiträge
877
Reaktionspunkte
190
Hallo zusammen!

Mir ist gerade die Idee gekommen, ob es via AppleScript oder anderem Tool möglich wäre, dass wenn ich das neue wireless Keyboard ausschalte, mein MBP auch in den Ruhezustand geht.

Ich denke man kann das über "Verbindung verloren" oder so regeln. Hätte aber den Nachteil, dass wenn man mit dem Book aus dem Raum geht, er auch in den Ruhezustand geht.

Irgendjemand bewandert hier und kann so ein Script machen? Andere Ideen?

Gruss, Marc
 
Ich kram diesen alten Thread nochmal raus!

Hat immer noch keiner eine Lösung?
 
Es müsste theoretisch ein Systemereignis ausgelöst werden, wenn die Verbindung zur Bluetooth-Tastatur verloren geht, aber Google findet keine Antwort, wie man darauf per AppleScript zugreifen kann. Auch die Suche nach "Bluetooth" im AppleScript-Dictionary von System Events geht leer aus.

Den Mac in den Ruhezustand schicken per AppleScript ist an sich kein Problem:
Code:
tell application "System Events" to sleep

Eine (nicht sehr elegante) Bastellösung wäre folgendes: Du erstellst ein Überwachungsskript, das in einer Endlosschleife alle 10 Sekunden oder so prüft, ob die Tastatur noch dran ist, und wenn nicht, den Mac in den Sleep-Modus schickt:
Code:
repeat while true
	-- check if keyboard is connected
	-- if not, put computer to sleep
	delay 10 -- check again after 10 seconds
end repeat
Das Skript muss als Application gespeichert und dann z.B. bei jeder Anmeldung im Hintergrund gestartet werden. Keine Ahnung, ob das Ressourcen verbraucht, aber wohl nicht nennenswert viele.

Jetzt zur eigentlichen Überprüfung:
Da sich die Namen von Bluetooth-Geräten leicht ändern können (manchmal ändert sich der Name meiner Mac Wireless Tastatur völlig selbständig von "<Name>'s Tastatur" in "Bluetooth Keyboard" und wieder zurück), würde ich statt dessen über die MAC-Adresse gehen. Die findest Du im Terminal wie folgt raus:
Code:
system_profiler SPBluetoothDataType | grep -B 3 "Type: Keyboard"

Dort steht dann z.B. "Address: 01-2b-32-ef-37-1e"
Diese Adresse schreibst Du auf. Jetzt kann man sich alle Adressen von Bluetooth-Geräten, die NICHT verbunden sind, ausgeben lassen:
Code:
system_profiler SPBluetoothDataType | grep -B 8 "Connected: No" | grep -w Address | sed s/' *Address: '//

Jetzt musst Du nur noch prüfen, ob die Adresse Deiner Tastatur zu diesen gehört. Ein komplettes Skript könnte so aussehen:
Code:
property myKeyboard : "01-2b-32-ef-37-1e"

repeat while true -- CAUTION! this process will run forever until stopped

	-- check if keyboard is connected
	-- if not, put computer to sleep
	do shell script "system_profiler SPBluetoothDataType | grep -B 8 'Connected: No' | grep -w Address | sed s/' *Address: '//"
	if (myKeyboard as text) is in result then tell application "System Events" to sleep
	
	delay 10 -- check again after 10 seconds
end repeat
Hat bei mir einwandfrei funktioniert (MacBookPro5,5 mit Mac OS X 10.6.6)

Lass mal wissen, ob es bei Dir auch läuft.
 
Zurück
Oben Unten