Files
hammerspoon/HotKeyMapper.lua
2026-05-14 18:59:23 -04:00

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