Automatyzacja MacOS
1 godz. 22 min · Keyboard Maestro · Biznes i Automatyzacje
Adam GospodarczykKeyboard Maestro pozwala na łatwe tworzenie makr, które przyspieszają pracę. Każde makro może być wywoływane ręcznie (np. skrótem klawiszowym) lub w zależności od kontekstu (np. poprzez uruchomienie programu). Makro może zawierać w sobie zarówno pojedyncze akcje jak i serię zadań następujących po sobie. W efekcie bez wiedzy programistycznej możliwa jest automatyzacja wielu powtarzalnych zadań.
W tym kursie znajdziesz nie tylko praktyki pracy z Keyboard Maestro ale również łączenie z innymi aplikacjami dzięki którym zwiększysz możliwości gładzika lub myszy, łatwiej zorganizujesz pliki czy zaczniesz szybciej nawigować po swoim komputerze.
Keyboard Maestro pozwala przede wszystkim na tworzenie automatyzacji lokalnych, tj. takich, które są wykonywane na naszym komputerze. W tym kursie dowiesz się jak wykonywać scenariusze automatyzacji stworzone w Zapierze lub Integromacie, co da Ci niemal nieograniczone możliwości ułatwiania sobie pracy.
Poza wiedzą o najważniejszych elementach Keyboard Maestro, dowiesz się również o dobrych praktykach tworzenia automatyzacji i scenariuszy, które pomogą Ci łatwiej i szybciej rozwijać własne usprawnienia oraz z czasem łatwo nimi zarządzać.
Ten kurs przeprowadzi Cię przez najważniejsze obszary pracy z komputerem, czyli pracę z plikami, pisania tekstów, pracy z przeglądarką, organizacji spotkań i komunikacji czy definiowania automatyzacji, które ułatwią Ci przełączanie się pomiędzy projektami. Całość sprawia, że zaczniesz oszczędzać czas niemal natychmiast po ukończeniu tego kursu.
Kurs ten przeznaczony jest dla zaawansowanych użytkowników systemu MacOS, którzy chcą wykorzystać możliwości automatyzacji oraz aplikacji takich jak Keyboard Maestro, do tego aby ułatwić sobie pracę i oszczędzać wiele godzin na optymalizacji codziennych zadań. Wiedza programistyczna nie jest wymagana, jednak sprawne posługiwanie się systemem MacOS już tak.
W tej lekcji pokażę Ci jak wykorzystać Keyboard Maestro do realizacji pojedynczych zadań,
które wykonujemy wielokrotnie i na których oszczędność czasu, nawet w postaci kilku
sekund, potrafi sumować się na przestrzeni dni, tygodni, lat do ogromnych wartości.
Pierwszym takim rodzajem automatyzacji
jest tekst Expander, czyli idea polegająca na tym, aby pisząc krótki ciąg znaków
otrzymać jakąś frazę, którą często wykorzystujemy.
Mogą to być linki, dane do faktury, numery kont bankowych czy np.
całe szablony wiadomości.
Jeżeli chodzi o definicje takich makr jest to niesamowicie proste, ponieważ
wystarczy nam trigger, a następnie akcja insert text. Tutaj jeżeli chodzi o akcję
insert text to zwróć uwagę, że mamy tutaj różnice, ponieważ możemy tutaj wybrać czy
chcemy dodać tekst poprzez wklejenie, bądź też wpisywanie.
Różnica pomiędzy nimi jest dokładnie taka
jak Ci się wydaje. W przypadku wklejenia tekst pojawia się natychmiast, a w
przypadku wpisywania symulowane są wciśnięcie klawiszy. Bardzo często
chociażby w przypadku uzupełnienia formularzy
przydaje się ta druga opcja.
I teraz, aby zdefiniować sobie taki zestaw makr polecam Ci zastanowić się chwilę
nad tym jakie informacje najczęściej wykorzystujesz podczas pisania a
następnie zdefiniować sobie poszczególne makr. Jednocześnie też do zasobów tej
lekcji dołączam takie specjalne makro, które zawiera specjalny skrypt pozwalający
dynamicznie definiować nowe makra typu text Expander.
Zatem jeżeli teraz wybiorę skrót klawiszowy to
pojawi się tutaj okno, które zapyta mnie o trigger, czyli np.
wpiszę teraz demo, a następnie w drugim
polu podaje wartość, która ma się pojawić po wpisaniu tego ciągu znaków.
Zauważ, że od razu zostało tutaj dodane nowe makro, a ja w momencie gdy napiszę
średnik demo otrzymam tekst, który podałem przed chwilą.
Coś takiego świetnie sprawdza się do tego,
aby szybko rozszerzać swoją bibliotekę snippetów. Tutaj jeszcze tylko jedna mała
rzecz polegająca na tym, że jeżeli chcesz wykorzystać to marko, pamiętaj proszę, aby w
tym miejscu znajdowała się nazwa grupy wewnątrz której znajduje się to makro.
W moim przypadku jest to grupa temporary,
i dokładnie taką wartość wpisuję w tym miejscu.
Kolejnym zestawem pojedynczych akcji, do których definicji bardzo Cię zachęcam jest
szybkie otwieranie aplikacji oraz folderów.
Przykładowo, sam mam zdefiniowanych kilka
akcji, które pozwalają mi nawigować do najczęściej wybieranych przeze mnie
folderów i te akcje działają gdy mam otwartego findera.
Przykładowo jeżeli wcisnę Shift+S zostanę przeniesiony do katalogu Sites, w ramach
którego mam zdefiniowanych kilka projektów.
Poza tym mam też takie specjalne makro, w
ramach którego wykorzystuję akcję prompt with list, do której przekazuję po prostu
listę katalogów do których chcę się dostać.
Następnie wykorzystuję akcję Open, do
której przekazuję zmienną pochodzącą z tego poprzedniego kroku. Zwróć uwagę,
że wykonanie tej akcji sprawia, że jej wynik zapisywany jest do zmiennej o nazwie
folder. Aby dostać się do zmiennej w przypadku Keyboard Maestro wykorzystuje taki
oto zapis. Czyli jak widzisz mamy tutaj znaki procentów oraz wcześniejsze słówko
variable. No i tutaj jako drugi człon podaję nazwę naszej zmiennej.
Wygląda to tak, że jeżeli teraz w finderze wybiorę skrót klawiszowy Shift+F
zostanie wyświetlone takie szybkie okno wyboru. I teraz co ciekawe lista, którą
tutaj mamy może być wpisywana przez nas ręcznie lub też pochodzić z pliku.
Coś takiego wykorzystuję w przypadku automatyzacji, która pozwala mi wybierać
zdefiniowane przeze mnie wcześniej projekty.
Jeżeli teraz wykonam sobie tę akcję zwróć uwagę, że pojawia się tutaj dynamicznie w
zawartość pliku którego lokalizacja znajduje się dokładnie tutaj. I teraz co
ciekawe zwróć uwagę w jaki sposób będę otwierał ten plik.
Wystarczy, że w Alfredzie podam apostrof a
następnie Maestro. Niemal natychmiast zostaje odnaleziony odpowiedni katalog,
który znajduje się tutaj. Wewnątrz niego znajdują się pliki, których zawartość jest
uzupełniana automatycznie również z pomocą Keyboard Maestro.
Wygląda to tak, że tak jak widziałeś
rzeczywiście zawartość tego pliku została wyświetlano tutaj.
Natomiast najciekawsze jest to, że mam
drugą akcję, która sprawia, że jeżeli wybiorę sobie kategoria to zawartość tego
pliku została automatycznie zaktualizowana a ja jednocześnie wewnątrz tej drugiej
akcji mogę od razu wybrać ten drugi projekt.
Poza tym nie wiem czy zwróćiłeś uwagę
ale ścieżka do tego pliku również zawiera tutaj zmienną.
Chodzi o to, że w pierwszym kroku wybieram
sobie projekt i nazwa tego projektu jest jednocześnie nazwą pliku .I aby Ci to
udowodnić nazwa, którą mamy tutaj jest nazwą, która znajduje się w tym miejscu.
Zatem jak widzisz jestem w stanie
dynamicznie aktualizować pliki, które potem wykorzystuję do tego, aby szybko wybierać
jakiejś określone wartości, które wykorzystuję na potrzeby innych makr.
Zachęcam Cię do tego, aby zdefiniować sobie
właśnie akcje, które podejmujsz w ramach Findera, chociażby do tego, aby uruchamiać
najczęściej wykorzystywane przez Ciebie foldery.
Poza tym jeżeli chodzi o pojedyncze akcje,
świetnie sprawdzają się tutaj również opcje systemowe takie jak włączenie trybu
DND. I swoją drogą, to zwróć uwagę, że mam tutaj skrót klawiszowy, który jest
zdefiniowany w ustawieniach klawiatury, w zakładce Shortcuts.
Następnie przechodzę tutaj do Mission
Control oraz do akcji włączania i wyłączania trybu DND.
Przypisuję go do określonej zmiennej i w ten sposób jestem w stanie np.
włączać tryb DND i tym samym wyłączać wszystkie powiadomienia w moim systemie
na czas np. nagrywania. Po taką akcję sięgam po prostu
definiując makra, które są powiązane z jakąś pracą kreatywną.
Poza tym jeżeli chodzi o pojedyncze akcje
które może zdefiniować to polecam Ci wykorzystanie użytecznych powiadomień.
Wystarczy tutaj wykorzystać Periodic Timer bądź Time of a Day do tego aby
zdefiniować kiedy jakieś powiadomienie ma zostać wyświetlone.
Przykładowo ja wyświetlam taki oto tekst w momencie, gdy czas odejść od komputera.
Poza tym przypominam sobie o rzeczach
takich jak zjedzenie obiadu czy wzięcie witamin.
Kolejną niesamowicie przydatną opcją jest wykorzystanie rozszerzenia Alfreda - Menu Bar Search -
o którym mówiłem Ci na początku tego kursu. Chodzi mianowicie o wykonywanie akcji w
aktualnie otwartej aplikacji z pomocą samego Alfreda.
Coś takiego również możesz podłączyć pod akcje wykonywane z poziomu Keyboard Maestro.
Czyli przykładowo, jeżeli przejdziemy do Sandboxa, a następnie wybierzemy akcję do
tego, aby aktywować Alfreda w trybie menu bar search, a następnie możemy wpisać np.
close all i następnie wcisnąć enter. Przy
czym tutaj jeszcze przyda nam się akcja pauzy,
do tego, aby poczekać chwilę na
wyświetlenie wyników. I to samo możemy zrobić czekając na samego Alfreda.
Tymczasowo przypiszę to makro to do klawisza Q to w momencie, gdy będę w moim edytorze
tekstowym i wcinę tę literę to oczywiście jeszcze muszę zadbać o to, aby był
wciśnięty Enter. No i jeżeli wywołam to makro program zostanie zamknięty.
Kolejnym pomysłem na wykorzystanie pojedynczych makr jest przygotowanie
chociażby takich pojedynczych akcji, które pozwolą Ci zarządzać oknami.
Jest to szczególnie przydatne w momencie gdy wykorzystuje się tzw.
workflows, w ramach których przykładowo ja sam definiuje sobie akcje, które uruchamiają
chociażby program do pisania tekstów i następnie przesuwają go na prawy ekran.
Jednocześnie też mam akcję do tego, aby chociażby włączać tryb pełnaekranowy.
I ta akcja wykorzystuje skrypt, który również dołączam do zasobów tej lekcji.
Poza tym mam tutaj zdefiniowane również takie makro, które dołączam do innych makr,
którego rolą jest sprawdzenie czy wciskam aktualnie klawisz SHIFT, i jeżeli tak to na
etapie wykonywania tego makra zostaną wyłączone wszystkie aplikacje.
Chodzi o to, że przykładowo rozpoczynając
pisanie, chciałbym przetrzymując klawisz Shift wyłączyć wszystkie inne aplikacje.
W związku z tym nic nie stoi na przeszkodzie, aby po prostu wykorzystać to
makro i swoją drogą mogę tutaj po prostu dodać akcję, która poczeka dwie lub trzy
sekundy na to, aż wszystkie aplikacje się zamkną.
Zatem jak widzisz możemy tutaj wykorzystać te wszystkie techniki, których Cię
nauczyłem do tego, aby tworzyć makra na swoje potrzeby.
Oczywiście nie ma tu za bardzo mowy o jakichś uniwersalnych makrach, które
pasują praktycznie do każdego ze względu na to, że każdy z nas ma jakoś inaczej
zorganizowane projekty i chociażby katalogi.
Natomiast najważniejsze jest dla mnie to, aby pokazać Ci pewne koncepcje, które
możesz wykorzystać i zaprojektować własne makra dostosowane do Twoich potrzeb.
Ja tylko dodam, że w kontekście pojedynczych akcji świetnie sprawdza się mi się
też zarządzanie Spotify z wykorzystaniem rozszerzenia Spotify mini player.
Po prostu jak widzisz również definiuje sobie tutaj akcję uruchamiające
poszczególne skróty klawiszowe i wpisujący zdefiniowany przeze mnie tekst.
Takie makro również wykorzystuję na przestrzeni różnych innych makr i
tym samym łatwo uruchamiam ulubioną muzykę.
I tutaj dołączam do zasobów tej lekcji
jeszcze takie proste makro zapisujące do do zmiennej is playing
obecny status Spotify. Po prostu czasem może zależeć Ci na tym, aby sprawdzić czy
aktualnie Spotify jest uruchomione i czy odtwarza jakąś muzykę.
W zależności od tego statusu możesz podjąć kolejne akcje.
Przykładowo tutaj mam makro uruchamiające Endela
i jak widzisz wykorzystuje tutaj makro Spotify status, do tego aby sprawdzić czy
uruchomiona jest muzyka, i jeżeli tak to w tym przypadku wyłączam Spotify i włączam Endela.
Dodatkowo nie wiem czy zwróciłeś uwagę ale najlepszym sposobem na to, aby
przekazywać informacje pomiędzy makrami, które wywołuje w ten sposób, jest
ustawienie jakiejś zmiennej, czyli w tym przypadku makro Spotify status ustawia zmienną
is playing i wartość tej zmiennej mogę odczytać w ramach innego scenariusza.
Dodatkowo jeżeli chodzi o wartości
zmiennych musisz zapamiętać to, że jeżeli wciśniesz skróty klawiszowe Command
przecinek to zostaną uruchomione preferencje Keyboard Maestro.
I tutaj w zakładce variables możesz
uzyskać dostęp do wszystkich zmiennych, które kiedykolwiek definiowałeś. Z tego
powodu możesz chcieć usuwać zmienne w momencie, gdy przestajesz z nich korzystać.
Aby to zrobić wystarczy, że wybierzesz
akcję set variables a następnie podasz nazwę tej zmiennej np.
w tym przypadku będzie to Basename i ustawisz jej wartość na Delete.
Dzięki temu jeżeli teraz wykonamy tę akcję zwróć uwagę, że zmienna tutaj zniknęła a ja
ostatecznie mogę tutaj utrzymywać porządek.
Zatem wygląda na to, że mamy wszystko co
nas interesuje, więc teraz dziękuję Ci za uwagę i zapraszam do kolejnej lekcji.