Keyboard Maestro – uruchomienie makra po odblokowaniu komputera

Tworząc jedno z makr w Keyboard Maestro stanąłem przed problemem, który mimo swojej prostoty okazał się całkiem sporym wyzwaniem. Mianowicie, chciałem aby makro zostało wykonane w sytuacji, kiedy komputer podłącza się do zdefiniowanej sieci bezprzewodowej i zostaje odblokowany, czyli w momencie kiedy widzę przed sobą pulpit systemu OS X.

Oczywiście w Keyboard Maestro występują triggery takie jak At login czy At system wake. Niestety pierwszy z nich działa jedynie w momencie logowania do systemu, co czynię raz na długi czas ze względu na usypianie mojego systemu, a sama operacja odblokowania komputera przez podanie hasła po wybudzeniu, nie jest traktowana jako logowanie. Wybudzenie systemu również odpala moje makro zaraz po aktywowaniu ekranu z prośbą o hasło, więc stanowczo za wcześnie.

Postanowiłem znaleźć sposób na to jak zmusić Keyboard Maestro do spauzowania zadania do momentu, kiedy system zostanie odblokowany. Najprostszym rozwiązaniem okazało się wykorzystanie akcji Pause until. Pozostało mi znaleźć element na który moje makro ma zaczekać. Stwierdziłem, że wyznacznikiem tego czy system jest aktywny będzie górna belka menu. Jedynym stałym i pewnym elementem, który jest zawsze widoczny, jest oczywiście jabłuszko Apple w lewym górnym rogu. Pozostało teraz weryfikować jego obecność, w tym celu zadałem akcji Pause until warunek, który sprawdza czy piksel w danym punkcie ma zdefiniowany kolor. Od tego momentu, makro po uruchomieniu czeka aż pojawi się wspomniany element i dopiero wtedy kontynuuje swoje działanie.

KM_1

Proste i skutecznie. Cały czas szukam jednak lepszego i bardziej właściwego technicznie sposobu weryfikacji odblokowania komputera, mimo że na tą chwilę podane rozwiązanie spisuje się bez zarzutu. Jeżeli macie pomysł, a być może swoje własne rozwiązanie tego problemu to czekam na Wasze komentarze i sugestie.