Mac高效使用 -- hammerspoon介绍,自动切换输入法与应用快速...

感谢 UP 的分享,我使用你给的启动器配置有点问题,只有已经启动一次在 dock 栏中的的应用才能打开,我根据官方文档改了改,字母映射的时候最好获取 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("处于没有打开过的状态下启动")
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
---获取当前使用应用的 id的方法
-- hotkey.bind(hyper,"m", function()
-- local app = hs.application.frontmostApplication()
-- print("-------------------")
-- print(app:bundleID())
-- print(app:name())
-- end)