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