2026-06-08 18:28:10 +01:00
|
|
|
local workspace_map = {
|
|
|
|
|
"Home",
|
|
|
|
|
"Dev",
|
|
|
|
|
"Art",
|
|
|
|
|
"Gaming",
|
|
|
|
|
"Writing",
|
|
|
|
|
}
|
2026-06-07 19:03:11 +01:00
|
|
|
|
2026-06-27 12:51:49 +01:00
|
|
|
local monitors = hl.get_monitors()
|
|
|
|
|
|
2026-06-08 18:28:10 +01:00
|
|
|
-- Move active window to a workspace with SUPER + SHIFT + [1-5]
|
2026-06-07 19:32:56 +01:00
|
|
|
for i = 1, 5 do
|
2026-06-08 18:28:10 +01:00
|
|
|
hl.workspace_rule({
|
|
|
|
|
workspace = tostring((i * 2) - 1),
|
2026-06-27 12:51:49 +01:00
|
|
|
monitor = monitors[1].name,
|
2026-06-08 18:28:10 +01:00
|
|
|
})
|
|
|
|
|
|
2026-06-27 12:51:49 +01:00
|
|
|
if monitors[2] then
|
|
|
|
|
hl.workspace_rule({
|
|
|
|
|
workspace = tostring(i * 2),
|
|
|
|
|
monitor = monitors[2].name,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
hl.bind(
|
|
|
|
|
"SUPER + code:1" .. (i - 1),
|
|
|
|
|
hl.dsp.focus({ workspace = tostring(i * 2) }),
|
|
|
|
|
{ description = "Switch to workspace " .. workspace_map[i] }
|
|
|
|
|
)
|
|
|
|
|
end
|
2026-06-08 18:28:10 +01:00
|
|
|
hl.bind(
|
|
|
|
|
"SUPER + code:1" .. (i - 1),
|
|
|
|
|
hl.dsp.focus({ workspace = tostring((i * 2) - 1) }),
|
|
|
|
|
{ description = "Switch to workspace" .. i }
|
|
|
|
|
)
|
|
|
|
|
|
2026-06-07 19:32:56 +01:00
|
|
|
hl.bind("SUPER + SHIFT + code:1" .. (i - 1), function()
|
|
|
|
|
local active_workspace = hl.get_active_workspace()
|
|
|
|
|
local new_workspace = (i * 2) - (active_workspace.id % 2)
|
|
|
|
|
hl.dispatch(hl.dsp.window.move({ workspace = tostring(new_workspace), follow = false }))
|
2026-06-08 18:28:10 +01:00
|
|
|
end, { description = "Move window to workspace " .. workspace_map[i] })
|
2026-06-07 19:32:56 +01:00
|
|
|
end
|