Hammerspoon dla Mac - Automatyzacja mnie całkowicie
Mac Os / / December 26, 2019
Wiele działań w OS X można zautomatyzować za pomocą aplikacji personelu Automator. Hammerspoon darmowe narzędzie robi to samo, ale bardziej głęboko zintegrowany z systemem, co pozwala na tworzenie skrótów klawiszowych związane z działaniami, a nawet małych programów.
Takie niezwykły twórcy nazwa musi mieć chciał podkreślić wszechstronność i elastyczność Hammerspoon. Mogą być trudno zarzucić, bo dzięki wsparciu Lua skrypty otwierające się przed nami jest naprawdę ogromna szansa.
Natychmiast należy powiedzieć, że Hammerspoon musimy majstrować przy kodzie trochę. Ale nie martw się, by móc napisać go samemu nie jest konieczne (chociaż jest to bardzo proste w przypadku Lua), na Strona zawiera wiele gotowych przykładów na podstawie rozszerzeń, które mogą być wykorzystane lub modyfikowane.
Po zainstalowaniu Hammerspoon potrzebę umożliwienia powszechnego dostępu do niego, a następnie przejść do menu konfiguracyjnego Otwórz w edytorze tekstowym, aby dodać kod naszego okna pierwszego skryptu.
Tradycyjnie, można rozpocząć z Hello World, lub udać się bezpośrednio do bardziej skomplikowanych rzeczy: Twórcy przygotowali
szczegółowy przewodnik. Jesteśmy z wami nie będzie tracić czasu na drobiazgi i zrobić skróty do przesuwania okna. Aby to zrobić, należy wstawić do naszej init.lua poniższy kod, zapisz dokument i wybrać menu Hammerspoon Reload Config.Funkcja hs.hotkey.bind ({ "CMD", "Alt" "ctrl"} "Y" () lokalne wygrana = hs.window.focusedWindow (lokalnego) F = wygrać ramy () fx = fx - 10 fy = fy - 10 wygranej: setFrame (f) końcowy) hs.hotkey.bind ({ "CMD", "Alt" "ctrl"} "K" () funkcji lokalnych wygrana = hs.window.focusedWindow () lokalne F = wygrać ramy () fy = fy - 10 wygranej: setFrame (f) końcowy) hs.hotkey.bind ({ "CMD", "Alt" "ctrl"}, "U" () funkcji lokalnych wygrana = hs.window.focusedWindow () lokalne F = wygrać ramy () fx = Fx 10 + fy = fy - 10 wygranej: setFrame (f) końcowy) hs.hotkey.bind ({ "CMD", "Alt" "ctrl"} "H" () funkcji lokalnych wygrana = hs.window.focusedWindow () lokalne F = wygrać ramy () fx = Fx - 10 wygranej: setFrame (f) (Funkcja { "CMD", "Alt" "ctrl"} "L" () koniec) hs.hotkey.bind lokalny wygrana = hs.window.focusedWindow () lokalne F = wygrać ramy () fx = Fx +10 wygranej: setFrame (f) (Funkcja { "CMD", "Alt" "ctrl"}, "B", () koniec) hs.hotkey.bind lokalny wygrana = hs.window.focusedWindow () lokalne F = wygrać ramy () fx = Fx - 10 fy = fy +10 wygranej: setFrame (f) końcowy) hs.hotkey.bind ({ "CMD", "Alt" "ctrl"} "J", () funkcji lokalnych wygrana = hs.window.focusedWindow () lokalne F = wygrać ramy () fy = fy +10 wygranej: setFrame (f) końcowy) hs.hotkey.bind ({ "CMD", "Alt" "ctrl"} "N", () funkcji lokalnych wygrana = hs.window.focusedWindow () lokalne F = wygrać ramy () fx = Fx 10 + fy = fy +10 wygranej: setFrame (f) end)
Jeśli przyjrzeć się bliżej na kod, można zobaczyć parametry określające liczbę pikseli, że okno jest poruszony, jego pozycji i kombinacji klawiszy, które są odpowiedzialne za ruch. Sprawdź: hold ⌃⌥⌘Naciskamy na klawisz H / L, aby przejść w lewo i prawo i J / K, aby przejść w górę iw dół. Prace wszystko.
Jako mini-programy można przytoczyć przykład realizacji popularnej narzędzie analogowej Kofeina zapobiega przejście Mac spać. Odpowiedni skrypt tylko kilkanaście linii kodu.
miejscowy kofeina = hs.menubar.new () Funkcja setCaffeineDisplay (stan), jeżeli państwo wtedy kofeina: setTitle ( "Awake") else kofeina: setTitle ( "sleepy") end. Funkcja końca caffeineClicked () setCaffeineDisplay (hs.caffeinate.toggle ( "displayIdle")) End If kofeina kofeina następnie: setClickCallback (caffeineClicked) setCaffeineDisplay (hs.caffeinate.get ( "displayIdle")) koniec
Po sennym proste pojawi się przycisk oszczędzania w pasku menu zmienia się obudzić, jeśli zakaz idzie spać.
W skrypcie, można dodać kilka fragmentów kodu z różnych funkcji, będą działać niezależnie od siebie. Wystarczy Hammerspoon dostępne informacje setki APIKtóre pozwalają zautomatyzować szereg działań od ruchomych okien, interakcji z schowka i metę AppleScript do wszelkiego rodzaju procesów w oparciu o zdarzenia, takie jak połączenia sieciowego, podłącz USB i wiele urządzeń innych.
Narzędzie jest bardzo przydatne, a jeśli nie boisz się majstrować przy kodzie, nie jest przesadą, aby być w stanie pomóc jej przenosić góry.