Dotfiles/desktopenvs/hyprlua/hypr
Amir Alexander Abdelbaki 9d4cdc35bd fix(hyprlua): spatial (transform-aware) monitor-jump fallback
Root cause of "can jump one way across monitors but not back" on a
desk with a rotated monitor: both columns.lua's own edge-crossing and
the fallback this adds go through Hyprland's focusmonitor/movewindow
mon: -1/+1, which cycle through Hyprland's internal monitor *list
order* — not actual spatial position. A monitor's transform swaps its
logical width/height (same math as monitor-manager's logical_width/
logical_height) but doesn't reorder that list, so list order and
physical left-to-right order can silently diverge once one monitor is
rotated — confirmed with the reported layout (main 3840x2160 normal +
rotated 1920x1080 to its right): jumping right resolved correctly,
jumping back left did not.

scripts/monitor-adjacent replaces the index cycling with real spatial
adjacency: it sorts monitors by logical bounding-box center each time
and dispatches focusmonitor/movewindow to the actual next/prev monitor
in the requested screen direction. Verified against the exact reported
monitor layout (simulated, transform=1 on the right monitor) — both
directions now resolve to the correct monitor.

Wired in two places (Super+,/. is untouched, still index-cycling, by
request):
  - columns.lua's edge-crossing (off the left/right edge of the column
    strip already flowed onto the next monitor; now via spatial lookup)
  - hypr-nav's scrolling-layout perpendicular "no neighbour" case, as a
    new fallback: regular directional movement (Super+hjkl) that
    previously just stopped at the edge of a monitor now spills onto
    whichever monitor is spatially in that direction, same as columns.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TLz6HWsXCwzQ97LrLt2em6
2026-07-09 16:49:18 +02:00
..
deprecated feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
layouts fix(hyprlua): spatial (transform-aware) monitor-jump fallback 2026-07-09 16:49:18 +02:00
usr feat(hyprlua): open opendeck on special:magic workspace 2026-07-09 15:59:32 +02:00
application-style.conf chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
hypridle.conf chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
hyprland.lua feat(hyprlua): default to columns, special:magic to scrolling 2026-07-09 16:48:12 +02:00
hyprlock-backgrounds.conf feat(wallpaper): sync selected wallpaper to hyprlock per monitor 2026-05-31 21:54:19 +02:00
hyprlock.conf chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
hyprpaper.conf refactor(hyprlua): move hypr-usr/ into hypr/usr/ and wire sysupdate sync 2026-06-11 15:46:01 +02:00
hyprtoolkit.conf feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
monitorhandler.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00