Repository navigation
Conversation
added 2 commits
July 24, 2026 08:19
Hyprland 0.55 deprecated hyprlang in favor of Lua config, and as of
0.56 the old bare dispatcher-name syntax (e.g. `hyprctl dispatch
movewindowpixel "..."`) no longer works at all — it now errors with
"dispatch in lua is a shorthand for hl.dispatch(...), your syntax
might need to be updated." All dispatch calls now go through
`hyprctl dispatch 'hl.dsp....(...)'`.
Migrated dispatchers used by this script:
- movewindowpixel -> hl.dsp.window.move({ x, y, window })
- resizewindowpixel -> hl.dsp.window.resize({ x, y, window })
- pin -> hl.dsp.window.pin({ window })
- movetoworkspacesilent-> hl.dsp.window.move({ workspace, follow = false, window })
- focuswindow -> hl.dsp.focus({ window })
- exec "[rules] cmd" -> hl.dsp.exec_cmd(cmd, { ...rules })
(note: the "stayfocused" rule became "stay_focused")
Verified against a live Hyprland 0.56.0 instance: the old syntax
errors, and each of the above mappings was tested individually
before being applied here. This is a breaking-change requirement
for anyone on Hyprland >= 0.55 with a Lua config; it will not work
on older hyprlang-based configs.
Found while testing the Lua dispatch migration against a live Hyprland 0.56 session: - Hyprland's own window-move animation was fighting this script's manual step-by-step slide animation, causing visible jitter/jump during hide and show. Set the `no_anim` window prop once at spawn time (hl.dsp.window.set_prop) so Hyprland leaves positioning entirely to the script for that window's lifetime. - SLIDE_DELAY was defined (5ms) but never actually used — both animate_slide_up/down had the per-step sleep hardcoded to 0.03s regardless. It's now wired up (default raised to 30ms, matching the previous de facto behavior) so it's an actually-working knob. - ANIMATION_DURATION was defined but referenced nowhere; removed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hyprland 0.55 deprecated hyprlang config in favor of Lua, and as of 0.56 the old bare dispatcher-name syntax for
hyprctl dispatchno longer works at all — confirmed live against a 0.56.0 instance, the old syntax now errors with:This updates every
hyprctl dispatchcall in the script to the newhyprctl dispatch 'hl.dsp....(...)'form, plus two small fixes found while testing the migration live:movewindowpixel→hl.dsp.window.move({ x, y, window })resizewindowpixel→hl.dsp.window.resize({ x, y, window })pin→hl.dsp.window.pin({ window })movetoworkspacesilent→hl.dsp.window.move({ workspace, follow = false, window })focuswindow→hl.dsp.focus({ window })exec "[rules] cmd"→hl.dsp.exec_cmd(cmd, { ...rules })(note:stayfocusedrule becamestay_focused)no_animon the window once at spawn, since Hyprland's own move-animation was fighting the script's manual step animation and causing visible jitter during hide/showSLIDE_DELAY(previously defined but silently ignored — sleeps were hardcoded) and removed the unusedANIMATION_DURATIONNote: this is a breaking-change requirement — it only works on Hyprland >= 0.55 with a Lua config, and will not work on older hyprlang-based configs. Maintainer may want to gate this by version or document it as a separate branch/README note rather than replacing the old syntax outright, since not everyone has migrated to Lua config yet.
Test plan
hl.dsp.*call individually against a live compositor before applying🤖 Generated with Claude Code