Hammerspoon pre Mac - Automate ma úplne
Macos / / December 26, 2019
Veľa akcií v OS X je možné automatizovať pomocou personálu Automator aplikácie. Hammerspoon bezplatný nástroj, robí to isté, ale hlbšie integrovaný so systémom, ktorý umožňuje vytvárať klávesové skratky viazané na akcie a dokonca aj malých programov.
Takéto nezvyčajné meno tvorcovia museli chcel zdôrazniť všestrannosť a pružnosť Hammerspoon. Môžu len ťažko vyčítať, pretože vďaka podpore Lua-skriptov otvára pred nami je naozaj obrovská príležitosť.
Ihneď treba povedať, že Hammerspoon budeme musieť pohrať s kódom trochu. Ale nebojte sa, bude schopný písať sami, nie je to nutné (aj keď je to veľmi jednoduché v prípade, že Lua), na Miesto obsahuje mnoho pripravených príkladov založených na rozšírenie, ktoré môžu byť použité alebo zmenený.
Po inštalácii Hammerspoon potrebné k tomu, aby univerzálny prístup k nej, a potom prejdite do ponuky Otvoriť Config v textovom editore pridať kód nášho prvého okna skriptu.
Tradične, môžete začať s Hello World, alebo prejsť priamo do zložitejších vecí: vývojári Pripravili
podrobný sprievodca. Sme s vami nebude strácať čas na maličkosti a robiť skratky pre pohyb okna. Ak to chcete urobiť, vložte do nášho init.lua nasledujúci kód, uložte dokumente zvoľte Hammerspoon Reload Config.hs.hotkey.bind ({ "cmd", "alt", "ctrl"}, "Y", () funkciu miestnej výhra = hs.window.focusedWindow () miestne f = vyhrať: rám () fx = fx - 10 fy = fy - 10 výhra: setFrame (f) koniec) hs.hotkey.bind ({ "cmd", "alt", "ctrl"}, "K", funkcia () miestne výhra = hs.window.focusedWindow () miestne f = vyhrať: rám () fy = fy - 10 win: setFrame (f) koniec) hs.hotkey.bind ({ "cmd", "alt", "ctrl"}, "U", () funkciu miestnej výhra = hs.window.focusedWindow () miestne f = vyhrať: rám () fx = fx 10 + fy = fy - 10 výhra: setFrame (f) koniec) hs.hotkey.bind ({ "cmd", "alt", "ctrl"}, "H", () funkciu miestnej výhra = hs.window.focusedWindow () miestne f = vyhrať: rám () fx = fx - 10 win: setFrame (f) koniec) hs.hotkey.bind ({ "cmd", "alt", "ctrl"}, "L", () funkciu miestnej výhra = hs.window.focusedWindow () miestne f = vyhrať: rám () fx = fx + 10 výhra: setFrame (f) koniec) hs.hotkey.bind ({ "cmd", "alt", "ctrl"}, "B", () funkciu miestnej výhra = hs.window.focusedWindow () miestne f = vyhrať: rám () fx = fx - 10 fy = fy + 10 výhra: setFrame (f) koniec) hs.hotkey.bind ({ "cmd", "alt", "ctrl"}, "J", () funkciu miestnej výhra = hs.window.focusedWindow () miestne f = vyhrať: rám () fy = fy + 10 výhra: setFrame (f) koniec) hs.hotkey.bind ({ "cmd", "alt", "ctrl"}, "N", () funkciu miestnej výhra = hs.window.focusedWindow () miestne f = vyhrať: rám () fx = fx 10 + fy = fy + 10 výhra: setFrame (f) end)
Pozriete Ak sa pozorne na kód, môžete vidieť parametre udávajúce počet pixelov, ktoré okno je presunutý, jeho pozícia a kombinácie klávesov, ktoré sú zodpovedné za hnutia. Kontrola: hold ⌃⌥⌘, Lisujeme na kľúči H / L pre pohyb vľavo a vpravo a J / K pre pohyb hore a dole. Všetko funguje.
Ako mini-programy možno uviesť príklad realizácie populárnej utility analógového Kofeín zabraňuje Mac prechod do režimu spánku. Príslušný skript len tucet riadkov kódu.
Miestne kofeín = hs.menubar.new () Funkcia setCaffeineDisplay (Štát) ak je štát potom kofeín: setTitle ( "vzbudiť") else kofeín: setTitle ( "SLEEPY") end. koniec funkcie caffeineClicked () setCaffeineDisplay (hs.caffeinate.toggle ( "displayIdle")) end if kofeín potom kofeín: setClickCallback (caffeineClicked) setCaffeineDisplay (hs.caffeinate.get ( "displayIdle")) koniec
Po uložení ospalý jednoduché sa zobrazí tlačidlo v menu, meniace sa nahor, v prípade, že zákaz ide do spánku.
Vo skriptu, môžete pridať nejaký kód fragmenty s rôznymi funkciami, budú pracovať nezávisle na sebe. Len Hammerspoon k dispozícii o stovky APIKtoré umožňujú automatizovať rad krokov od pohyblivých okien, interakcie s schránky a beh AppleScript ku všetkým druhom postupov založených na udalostiach, ako je napríklad pripojenie k sieti, pripojte USB-zariadenia a mnoho iní.
Nástroj je veľmi užitočné, a ak ste sa nebojí pohrať s kódom, to je bez preháňania, aby mohli pomôcť svojim hory prenášať.