Add hammerspoon. Almost usable now...

This commit is contained in:
2017-10-17 00:44:06 +02:00
parent d668c03630
commit a11d3cb3d5
5 changed files with 174 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
local eventtap = require("hs.eventtap")
local keycodes = require("hs.keycodes")
keycodes = keycodes.map
local events = eventtap.event.types
local module = {}
local escPressed = false
local otherPressed = false
local recursion = false
module.addModifier = function(ev)
ev:setFlags({['cmd'] = true})
return ev
end
module.eventWatcher = eventtap.new({events.keyDown, events.keyUp}, function(ev)
if recursion then
recursion = false
return false
end
if ev:getKeyCode() == keycodes['escape'] then
if ev:getType() == events.keyDown then
if not escPressed then
--hs.alert("esc down")
escPressed = true
otherPressed = false
return true
end
else
--hs.alert("esc up")
escPressed = false
if not otherPressed then
--hs.alert("escape")
ev = eventtap.event.newKeyEvent({}, 'escape', true)
recursion = true
ev:post()
else
--escPressed = false
end
return true
end
elseif escPressed and ev:getType() == events.keyDown then
otherPressed = true
ev = module.addModifier(ev)
recursion = true
ev:post()
return true
end
return false
end):start()
return module