欢迎光临散文网 会员登陆 & 注册

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

2023-02-19 19:29 作者:风流阵里的急先疯  | 我要投稿

感谢 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)

Mac高效使用 -- hammerspoon介绍,自动切换输入法与应用快速...的评论 (共 条)

分享到微博请遵守国家法律