有了這款免費又強大的軟件,讓你少買很多 App

macOS 系統最令人難以割捨的特性之一就是豐富的自動化工具支撐:內置的 AppleScript 與 Automator,還有第三方軟件 Keyboard Maestro、Hazel、Alfred、LaunchBar 等。這些工具不僅僅為我們免除了許多無聊的重複工作,節省了精力和時間,也讓我們時不時可以體會一些解決問題與創造工具的樂趣。今天,我們來看一款更加強大、好玩的開源軟件 Hammerspoon。

通過橋接操作系統與 Lua 腳本引擎,這款軟件讓我們能夠用 Lua 腳本快速方便地與系統 API 溝通,獲取各種信息或者進行控制,包括但不僅限於這些方面:窗口、鍵鼠、文件系統、音頻、電池、屏幕、剪貼板、地理位置、Wi-Fi 等,基本上涵蓋了系統中的各個方面。除此之外,創建菜單欄圖標與菜單、繪製圖形界面等自然也不在話下。如果這樣的說明讓你有些不太明白,那我們其實可將它大致看作 macOS 平臺上的 JSBox 或 Pythonista

閱讀本文需要使用終端與 Git。少數派網站中有豐富的相關入門教程,可搜索訪問。

  • 玩轉 Terminal 終端:入門指南及進階技巧
  • Homebrew,Mac 應用管家
  • 輕鬆玩轉 Mac 命令

使用方法

Homebrew 用戶可以使用 cask 進行安裝:brew cask install hammerspoon,或者也可以在 GitHub 項目頁面 手動下載安裝。

有了這款免費又強大的軟件,讓你少買很多 App

偏好設置

首次打開 Hammerspoon 後,偏好設置窗口自動打開,點擊上圖中 Enable Accessibility 授予輔助功能權限。此時的 Hammerspoon 並不具備任何功能,就如同 iOS 上尚未加入任何捷徑的捷徑 App 一樣。我們需要在 ~/.hammerspoon/init.lua 中加入自己編寫的配置腳本,並且點擊 Hammerspoon 菜單欄圖標並選擇 Reload Config(重載配置),使配置生效。

推薦配置

在動手編寫代碼之前,我們先來看看其他人是怎麼使用 Hammerspoon 的,也可以直接使用他們公佈的成熟配置。

awesome-hammerspoon configuration

下載地址:ashfinal/awesome-hammerspoon

這份配置實現了這些功能:

  • 快捷鍵窗口管理
  • 桌面掛件,包含時鐘、日曆
  • 快捷鍵列表 Cheatsheet
  • Aria2 前端,可以快速添加下載任務,查看當前下載情況
  • 快捷搜索,類似於 Alfred,可搜索瀏覽器標籤頁、進程、詞典、Emoji 等
有了這款免費又強大的軟件,讓你少買很多 App

其中窗口管理與常見的快捷鍵操作類型不同,比較有意思:按下快捷鍵 ⌥Option + R 後進入管理模式

  • 使用 h/j/k/l 移動為上下左右的半屏
  • 使用y/u/i/o(即 hjkl 上方按鍵)移動為左上/左下/右上/右下的四分之一窗口
  • 使用 c 居中,按下 =/- 進行窗口大小縮放
  • 使用 w/s/a/d 向上下左右移動窗口
  • 使用 H/J/K/L 向左/下增減窗口大小
  • 使用方向鍵 上下左右 移動到相應方向上的顯示器
  • 使用 / 撤銷、重做上一次操作
  • 使用 q 或 Esc 退出管理

配置使用方法:在終端中運行 git clone https://github.com/ashfinal/awesome-hammerspoon.git ~/.hammerspoon,然後在 Hammerspoon 中重載配置就可以了。

點擊查看中文說明及討論:

  • 寫了一份(貌似)不錯的 Hammerspoon 的配置 - V2EX
  • (自我)感覺良好的 Hammerspoon 配置,有原生 aria2 前端和類似 Alfred 的搜索了 - V2EX

Hammerspoon config

下載地址:wangshub/hammerspoon-config

這份配置實現了這些功能:

  • 菜單欄顯示近日天氣,包含未來一週的天氣、氣溫與風向等
  • Wi-Fi 自動腳本,通過 Wi-Fi 判斷所在位置並做出相應的操作
  • 窗口管理,快速切換為二分屏、三分屏
  • 藍牙耳機自動連接等
有了這款免費又強大的軟件,讓你少買很多 App

配置使用方法:在終端中運行 git clone https://github.com/wangshub/hammerspoon-config.git ~/.hammerspoon,然後重載配置。

點擊查看中文說明及談論:https://www.v2ex.com/t/553241

HammerSpoon config file - by S1ngS1ng

下載地址:S1ngS1ng/HammerSpoon

這份配置實現了三方面的功能,包括快捷鍵窗口管理、播放器 VOX 控制以及 Vim 式的光標移動快捷鍵。其中的窗口管理,除了常規的全屏、居中與分屏,還能夠做到這些:

  • 用快捷鍵將當前窗口移動至其它顯示器,並全屏(可選)
  • 用快捷鍵任意調整當前窗口的大小
有了這款免費又強大的軟件,讓你少買很多 App

詳細介紹(中文):https://github.com/S1ngS1ng/HammerSpoon/blob/master/README-cn.md

作者還寫了一篇相關的文章,除了使用說明外,也介紹了原理與所使用的 API,對於想要自己編寫的讀者會有些幫助。

配置使用方法:在終端中運行 git clone https://github.com/S1ngS1ng/HammerSpoon.git ~/.hammerspoon,然後重載配置。

其他配置

此外,這裡也收集了一些其他配置,並列出其中的亮點功能,看看有沒有你感興趣或需要的。

配置方案

功能

Braden1996/BradensPoon

劃定區域打開終端、Spotify 提醒

ztomer/.hammerspoon

番茄計時器

andrewhampton/dotfiles

Gmail 新郵件提醒

tdlm/hammerspoon

菜單欄顯示 GitHub PR

TwoLeaves/hammerspoon

桌面 / Space 管理

scottcs/dot_hammerspoon

電池狀態提醒、系統休眠阻止、Hazel 代替等

agzam/spacehammer

Spacemacs 式的快捷鍵風格

你也可以訪問 Hammerspoon 官網 Wiki 頁面 查看更多配置方案,也可以在搜索引擎中進行搜尋。

自己動手寫腳本

直接用別人的配置,難以非常妥帖地符合自己的需求。那麼不如參考各種配置,規劃編寫我們自己的配置腳本。

如果對 Lua 語言不瞭解,可以看看 X分鐘速成Y 網站上的中文教程 快速入門。此外,Hammerspoon 官方提供了一份 快速入門指南,圍繞多個實際應用場景介紹了相關的 API 使用,並且給出了示例代碼,也可以點擊查看 完整的 API 文檔 。

除了 Hammerspoon 自身提供的接口外,還有不少其它開發者貢獻的 擴展 和 插件(點擊查看相應列表)。擴展為 Hammerspoon 加入了額外的 API,有些還被其最終合併進去,如 Spotify 控制、利用私有 API 操作桌面(Desktop/Space)的擴展。在 Hammerspoon 中插件被稱為 Spoon,是使用 API 編寫的較為完整的功能模塊,基本上開箱即用,比如 Bingdaily 自動每天使用 bing 圖片做壁紙,HSaria2 控制 Aria2 並提供一個面板可以添加任務,顯示當前下載情況。

「我想玩這個,但是不會編程怎麼辦?」,別急,現在開始學習編程也不晚 :)


分享到:


相關文章: