Toggle applications via global hotkeys in Hammerspoon

This commit is contained in:
2018-04-23 23:41:19 +01:00
parent 3f5ff6352d
commit a1f616e01e
2 changed files with 67 additions and 7 deletions

View File

@@ -0,0 +1,38 @@
-- luacheck: read_globals hs
local obj = {}
function obj:bind (mods, key, name, path)
hs.hotkey.bind(mods, key, self:toggleFn(name, path))
end
function obj:toggleFn (name, path)
return function ()
self:toggle(name, path)
end
end
function obj:toggle (name, path)
local app = self.findRunningApp(name, path)
if app == nil then
return hs.application.open(path or name)
end
if app == hs.application.frontmostApplication() then
return app:hide()
end
return app:activate()
end
function obj.findRunningApp (name, path)
for _, app in ipairs(hs.application.runningApplications()) do
if app:name() == name and (path == nil or path == app:path()) then
return app
end
end
end
-- the end
return obj