32 lines
831 B
Lua
32 lines
831 B
Lua
--- HotkeyMapper.lua
|
|
local obj = {}
|
|
obj.registry = {}
|
|
|
|
obj.chooser = hs.chooser.new(function(choice)
|
|
if not choice then return end
|
|
end)
|
|
|
|
-- This is the function you'll use to log keys
|
|
function obj:register(mod, key, description, source)
|
|
table.insert(self.registry, {
|
|
text = string.format("%s + %s: %s", hs.inspect(mod):gsub('"', ''), key:upper(), description),
|
|
subText = "Source: " .. (source or "Unknown")
|
|
})
|
|
end
|
|
|
|
function obj:show()
|
|
if #self.registry == 0 then
|
|
hs.alert.show("No hotkeys registered in Mapper")
|
|
return
|
|
end
|
|
table.sort(self.registry, function(a, b) return a.text < b.text end)
|
|
obj.chooser:choices(self.registry)
|
|
obj.chooser:show()
|
|
end
|
|
|
|
function obj:init(mod, key)
|
|
hs.hotkey.bind(mod, key, function() self:show() end)
|
|
return self
|
|
end
|
|
|
|
return obj |