Mac高效使用 -- hammerspoon介紹,自動切換輸入法與應(yīng)用快速...

感謝 UP 的分享,我使用你給的啟動器配置有點問題,只有已經(jīng)啟動一次在 dock 欄中的的應(yīng)用才能打開,我根據(jù)官方文檔改了改,字母映射的時候最好獲取 ID,獲取名字在沒打開過的時候會獲取不到
local hotkey = require 'hs.hotkey'
local window = require 'hs.window'
local application = require 'hs.application'
local hyper = {"ctrl", "alt", "cmd","shift"}
local key2App = {
??d = 'com.alibaba.DingTalkMac',
??f = 'com.apple.finder',
??h = 'com.apple.ActivityMonitor',
??w = 'com.tencent.xinWeChat',
??c = 'com.google.Chrome',
??i = 'com.jetbrains.intellij',
??s = 'com.apple.Safari',
??t = 'org.tabby',
??n = 'notion.id'
}
for key, app in pairs(key2App) do
hotkey.bind(
??hyper,
??key,
??function()
????--application.launchOrFocus(app)
????toggle_application(app)
????--hs.grid.set(hs.window.focusedWindow(), gomiddle)
??end
)
end
-- Toggle application focus
function toggle_application(_app)
-- finds a running applications
local app = application.find(_app)
if app == nil then
??hs.application.open(_app,0,false)
??print("處于沒有打開過的狀態(tài)下啟動")
??return
end
if not app then
??-- application not running, launch app
??application.launchOrFocus(_app)
??return
end
-- application running, toggle hide/unhide
local mainwin = app:mainWindow()
if mainwin then
??if true == app:isFrontmost() then
????mainwin:application():hide()
??else
????mainwin:application():activate(true)
????mainwin:application():unhide()
????mainwin:focus()
??end
else
??--print("非主窗口打開")
??hs.application.open(_app,0,false)
end
end
---獲取當(dāng)前使用應(yīng)用的 id的方法
-- hotkey.bind(hyper,"m", function()
--???local app = hs.application.frontmostApplication()
--???print("-------------------")
--???print(app:bundleID())
--???print(app:name())
-- end)