diff --git a/lua/binds/init.lua b/lua/binds/init.lua index ca702cf..12bc548 100644 --- a/lua/binds/init.lua +++ b/lua/binds/init.lua @@ -1,23 +1,36 @@ local M = {} local bind = require("lua.lib.bind") +local utils = require("lua.lib.utils") local pieces = { "apps", "window", "workspace", + "passthrough", } M.binds = {} +M.submaps = {} for _, piece in pairs(pieces) do - local bind_piece = require("lua.binds." .. piece).binds + local p = require("lua.binds." .. piece) + local bind_piece = p.binds for _, bind_item in pairs(bind_piece) do table.insert(M.binds, bind_item) end + local submap = p.submaps + if submap then + M.submaps = utils.tbl_recursive_merge(M.submaps, submap) + end end function M.load() bind.map(M.binds) + for name, binds in pairs(M.submaps) do + hl.define_submap(name, function() + bind.map(binds) + end) + end end return M diff --git a/lua/binds/passthrough.lua b/lua/binds/passthrough.lua new file mode 100644 index 0000000..ee94a5f --- /dev/null +++ b/lua/binds/passthrough.lua @@ -0,0 +1,21 @@ +local bind = require("lua.lib.bind") +local M = {} + +M.binds = { + { + keys = bind.with_leader("P"), + dispatcher = hl.dsp.submap("pass_through"), + desc = "Pass through submap", + }, +} + +M.submaps = { + pass_through = { + { + keys = bind.with_leader("escape"), + dispatcher = hl.dsp.submap("reset"), + }, + }, +} + +return M