Uruchom program / skrypt, gdy ekran jest zablokowany lub odblokowany

13

Czy istnieje sposób na uruchomienie określonego skryptu lub programu, gdy ekran jest zablokowany lub odblokowany? Najlepiej funkcja bash lub AppleScript.

Czy istnieje wydarzenie, które mógłbym zasubskrybować, co pozwoliłoby mi to zrobić? Lub istniejąca aplikacja, która to obsługuje?

nwinkler
źródło
2
W przypadku ekranu blokady wysyłane jest powiadomienie, które można obsługiwać w aplikacji Cocoa. Musisz wysłuchać powiadomienia o nazwie: „com.apple.screenIsLocked”. Kod:[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"com.apple.screenIsLocked" object:nil];
Mateusz Szlosek
Czy istnieje sposób, aby to sprawdzić za pomocą AppleScript?
nwinkler,
Przepraszam, nie znam sposobu na wykonanie tego przez Apple Script. Ale stworzenie własnej aplikacji do tego zadania nie jest takie trudne. Daj mi znać, jeśli mogę pomóc.
Mateusz Szlosek
Jako dodatkowe powiadomienie wysyłane, gdy ekran jest odblokowany, nazywa się: „com.apple.screenIsUnlocked”
Mateusz Szlosek

Odpowiedzi:

14

Po kilku poszukiwaniach znalazłem SleepWatcher , bezpłatne narzędzie, które pozwala uruchomić skrypt, gdy ekran przechodzi w tryb uśpienia lub budzi się.

Po jego zainstalowaniu możesz połączyć skrypt powłoki uruchamiany w jednym z dostępnych zdarzeń (takich jak przyciemniony ekran , ekran budzenia , uśpienie komputera , budzenie komputera i kilka innych). Ze skryptu powłoki mogę uruchomić polecenie lub wywołać kod AppleScript, który chcę uruchomić w przypadku tych zdarzeń.

Ponieważ mój ekran przechodzi w tryb uśpienia po zablokowaniu komputera, właśnie tego szukałem.

Możesz zobaczyć to w akcji tutaj: https://github.com/nwinkler/sleepwatcher-lync-status

nwinkler
źródło
2
Ten program może zostać zainstalowany przy pomocy brew install sleepwatcherdodatkowych informacji na temat konfiguracji w plikach plist. Dokładna lokalizacja brew info sleepwatcher. Domyślne pliki to ~/.sleepi~/.wakeup
AB
2

EventScript ma kilka opcji, które mogą Ci pomóc. Jest to ładne, małe narzędzie, które może uruchamiać przepływy pracy .sh / applescript / automator i uruchamiać je na wielu różnych opcjach.

Oto niektóre opcje blokowania / odblokowywania ekranu: Skrypty zdarzeń

Sprawdź to tutaj .

Glorfindel
źródło
1
To wygląda całkiem przydatne, dzięki! W App Store kosztuje 3,99 USD.
nwinkler,
Mam teraz problemy z cichym zawieszaniem się EventScript, więc
miej
-1

Możesz to skonfigurować w następujący sposób:

sudo defaults write com.apple.loginwindow LoginHook /path/to/script
Frazer Kirkman
źródło
Nazwa sugeruje, że działa to po zalogowaniu, a nie po odblokowaniu ekranu. Czy to jest poprawne?
tripleee
stackoverflow.com/questions/22842016/... sugeruje, że i LoginHooktak jest przestarzałe. Możesz użyć launchddo uruchomienia rzeczy przy logowaniu, ale nie o to pyta to pytanie.
tripleee