Dotfiles/desktopenvs/hyprlua/scripts
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(hyprlua): add astal-menu popup, replacing nwg-dock + nwg-drawer 2026-07-05 00:11:39 +02:00
python feat(hyprlua/niri): webcam presence detection + systemd-inhibit idle/caffeine 2026-06-11 14:50:36 +02:00
workspacefocus fixed workspace navigation 2026-05-19 18:26:28 +02:00
_toggle_Template.tmplsh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
activewindow chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
amssh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
astal-menu-start.sh fix(astal-menu): stop LD_PRELOAD leaking into launched apps (Firefox crash) 2026-07-05 19:14:16 +02:00
batteryperc chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
bluetooth-applet.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
caffeine-status.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
caffeine.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
calender-fix.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
date.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
dysk-phydisks.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
enroll-biometrics.sh fix(hyprlua): only offer real capture nodes; show howdy's enroll error 2026-06-13 22:41:24 +02:00
ewwstart-niri.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
ewwstart.sh fix(eww): stop duplicate stacked bars from ewwstart race 2026-06-28 02:23:45 +02:00
filepicker-clipboard.sh fix(hyprlua): spawn filepicker floating, compact, centred on the cursor 2026-07-04 15:06:37 +02:00
foldersearch.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
frequentcommands.list feat(hyprlua): wire chamel daemon + expand frequentcommands 2026-06-11 15:54:20 +02:00
getispeed.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
getvol chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
helpmenu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
hypr-nav fix(hyprlua): spatial (transform-aware) monitor-jump fallback 2026-07-09 16:49:18 +02:00
hyprland-toggle-touchpad.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
ip chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
journal.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
menu-toggle.sh perf(astal-menu): use gdbus Activate fast path in menu-toggle.sh 2026-07-09 09:18:34 +02:00
menu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
monitor-adjacent fix(hyprlua): spatial (transform-aware) monitor-jump fallback 2026-07-09 16:49:18 +02:00
monitor-manager style(astal-menu): unfullscreen glyphs, animated takeover, CyberQueer TUIs 2026-07-07 13:43:11 +02:00
monitorhandler.sh refactor(hyprlua): move hypr-usr/ into hypr/usr/ and wire sysupdate sync 2026-06-11 15:46:01 +02:00
onscreenkb.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
playerget chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
playpause.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
presence-detect.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
pwr-dmenu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
screenrec.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenrotationacw.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenrotationwcw.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenshot.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
time.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer-notify.sh.old feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer-pick style(astal-menu): unfullscreen glyphs, animated takeover, CyberQueer TUIs 2026-07-07 13:43:11 +02:00
timer-run feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer.sh.old feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
toggle-layout.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
togglebar.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
togglewinbars.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
ulwatchdog.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
unified-rotate.sh fix(rotate): add pen/stylus rotation with explicit output mapping 2026-05-23 10:23:22 +02:00
uptime.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
wallpaper-picker refactor(hyprlua): move hypr-usr/ into hypr/usr/ and wire sysupdate sync 2026-06-11 15:46:01 +02:00
windowswitcher feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
wofi-file-search.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
workspace feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00