Move focus across workspace (lua vs conf)

Hyprland version
Hyprland 0.56.1 built from branch v0.56.1 at commit 5c9377c15f85c50648f35ca5a213754f95b93ca0 clean (version: bump to 0.56.1).
Date: Mon Jul 27 16:33:49 2026
Tag: v0.56.1, commits: 7643

Libraries:
Hyprgraphics: built against 0.5.1, system has 0.5.1
Hyprutils: built against 0.14.0, system has 0.14.0
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.8, system has 0.6.8
Aquamarine: built against 0.14.0, system has 0.14.0

Version ABI string: 5c9377c15f85c50648f35ca5a213754f95b93ca0_aq_0.14_hu_0.14_hg_0.5_hc_0.1_hlg_0.6
no flags were set

When using .lua I am not able to move window focus with keyboard shortcuts across workspace boundaries. This works with conf but not with lua.

When focus is on the left side (of the right monitor) and I move the focus left. The focus moves to a window on the very right side of the same workspace and not to a window on the workspace left of this one.

old conf

# Move focus with mainMod + arrow keys / hjkl (vim controls)
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, j, movefocus, u
bind = $mainMod, k, movefocus, d

new lua

-- Directional Focus (Arrow Keys)
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))

-- Directional Focus (Vim Controls)
hl.bind(mainMod .. " + H", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + L", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + J", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + K", hl.dsp.focus({ direction = "down" }))

Am I missing a flag somewhere?

I have the same issue with cyclenext. It only cycles though windows on the current workspace

bind = ALT, Tab, cyclenext,				# change focus to another window
bind = ALT, Tab, bringactivetotop,		# bring it to the top
hl.bind("ALT + Tab", function()
    hl.dispatch(hl.dsp.window.cycle_next({}))
    hl.dispatch(hl.dsp.window.bring_to_top())
end)

cyclenext never cycled across monitors IIRC.

As for directions, they look correct. Make sure binds:window_direction_monitor_fallback is enabled.