diff --git a/lua/binds/init.lua b/lua/binds/init.lua index 0ff90bc..ca702cf 100644 --- a/lua/binds/init.lua +++ b/lua/binds/init.lua @@ -4,6 +4,7 @@ local bind = require("lua.lib.bind") local pieces = { "apps", "window", + "workspace", } M.binds = {} diff --git a/lua/binds/workspace.lua b/lua/binds/workspace.lua new file mode 100644 index 0000000..856e3a0 --- /dev/null +++ b/lua/binds/workspace.lua @@ -0,0 +1,58 @@ +local bind = require("lua.lib.bind") +local utils = require("lua.lib.utils") + +local M = {} + +M.binds = {} + +for i = 1, 10 do + local n = tostring(i) + if n == "10" then + n = "0" + end + table.insert(M.binds, { + keys = bind.with_leader(n), + dispatcher = hl.dsp.focus({ workspace = i }), + desc = "Focus workspace " .. tostring(i), + }) + table.insert(M.binds, { + keys = bind.with_leader("SHIFT + " .. n), + dispatcher = hl.dsp.window.move({ workspace = i, follow = true }), + desc = "Move window to workspace " .. tostring(i), + }) + table.insert(M.binds, { + keys = bind.with_leader("CTRL + SHIFT + " .. n), + dispatcher = hl.dsp.window.move({ workspace = i, follow = false }), + desc = "Move window to workspace " .. tostring(i) .. " silently", + }) +end + +M.binds = utils.list_extend(M.binds, { + { + keys = bind.with_leader("mouse_up"), + dispatcher = hl.dsp.focus({ workspace = "m-1" }), + desc = "Focus to prev workspace on current monitor", + }, + { + keys = bind.with_leader("mouse_down"), + dispatcher = hl.dsp.focus({ workspace = "m+1" }), + desc = "Focus to next workspace on current monitor", + }, + { + keys = bind.with_leader("CTRL + down"), + dispatcher = hl.dsp.focus({ workspace = "emptynm" }), + desc = "Focus to next empty workspace", + }, + { + keys = bind.with_leader("CTRL + left"), + dispatcher = hl.dsp.focus({ workspace = "m-1" }), + desc = "Focus to prev workspace on current monitor", + }, + { + keys = bind.with_leader("CTRL + right"), + dispatcher = hl.dsp.focus({ workspace = "m+1" }), + desc = "Focus to next workspace on current monitor", + }, +}) + +return M