Some scripts still use pre-0.55 hyprctl dispatch syntax (logout silently fails)

Aperta
#1,762 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
linux, shell
Ambito
desktop, devtools

Direzione di ricerca

Read the four listed scripts and verify which dispatch calls still use the pre-0.55 syntax. The issue reports observed-effect checks in a nested Hyprland instance and explains that window move and float operations need focus first. Confirm each replacement by its listed effect, including logout exiting the session; also check whether the unreferenced toggleallfloat.sh should be removed.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Under the Lua config manager, hyprctl dispatch evaluates its argument as
hl.dispatch(...), so the pre-0.55 form errors out:

$ hyprctl dispatch workspace 4
error: [string "return hl.dispatch(workspace 4)"]:1: ')' expected near '4'

Most of the dotfiles are already migrated. Four scripts still use the old form.
The one users will notice is logout: power.sh exit fails silently, because the
script does not check the return value.

Why this is easy to miss: hyprctl prints ok for dispatches that do
nothing. These have to be checked by observed effect, not exit code. Worth
knowing for anyone auditing the rest.

Affected

File Effect
hypr/scripts/power.sh Logout does nothing
hypr/scripts/moveTo.sh Move all windows to workspace
hypr/scripts/toggle-animations.sh Animation toggle
ml4w/scripts/ml4w-toggle-allfloat Float all windows

Two that need more than a syntax swap

hl.window.move and hl.window.float have no window-targeting argument. Their
argument sets are direction, x+y(+relative), workspace, into_group, out_of_group and action respectively, and they act on the focused window.
Passing window= is accepted without error but does not target. So the patch
focuses the target first, then acts.

Also noticed

hypr/scripts/toggleallfloat.sh is no longer referenced by anything. The
SUPER+SHIFT+T bind calls ml4w-toggle-allfloat. It still contains
hyprctl dispatch workspaceopt allfloat, which cannot work
(hl.dsp.workspaceopt does not exist). Looks like a leftover from the #1495
fix. Might be worth deleting rather than patching.

Tested on

Hyprland 0.56.1, ML4W 2.14.1. Each replacement verified by observed effect in a
nested Hyprland instance: session actually exited, active workspace actually
changed, only the intended window floated or moved.

Patch
diff --git a/dotfiles/.config/hypr/scripts/moveTo.sh b/dotfiles/.config/hypr/scripts/moveTo.sh
--- a/dotfiles/.config/hypr/scripts/moveTo.sh
+++ b/dotfiles/.config/hypr/scripts/moveTo.sh
@@ -36,12 +36,13 @@
 for address in $window_addresses; do
     log_message "Moving window $address to workspace $target_workspace"
-    hyprctl dispatch movetoworkspacesilent "$target_workspace,address:$address"
+    hyprctl dispatch "hl.dsp.focus({window = 'address:$address'})"
+    hyprctl dispatch "hl.dsp.window.move({workspace = '$target_workspace'})"
 done
 
 # Switch to the target workspace
-hyprctl dispatch workspace "$target_workspace"
+hyprctl dispatch "hl.dsp.focus({workspace = '$target_workspace'})"

diff --git a/dotfiles/.config/hypr/scripts/power.sh b/dotfiles/.config/hypr/scripts/power.sh
--- a/dotfiles/.config/hypr/scripts/power.sh
+++ b/dotfiles/.config/hypr/scripts/power.sh
@@ -41,7 +41,7 @@
 	terminate_clients
 	sleep 0.5
-	hyprctl dispatch exit
+	hyprctl dispatch "hl.dsp.exit()"
 	sleep 2

diff --git a/dotfiles/.config/hypr/scripts/toggle-animations.sh b/dotfiles/.config/hypr/scripts/toggle-animations.sh
--- a/dotfiles/.config/hypr/scripts/toggle-animations.sh
+++ b/dotfiles/.config/hypr/scripts/toggle-animations.sh
@@ -4,10 +4,10 @@
     if [ -f $cache_file ]; then
-        hyprctl keyword animations:enabled true
+        hyprctl eval "hl.config({animations={enabled=true}})"
         rm $cache_file
     else
-        hyprctl keyword animations:enabled false
+        hyprctl eval "hl.config({animations={enabled=false}})"
         touch $cache_file

diff --git a/dotfiles/.config/ml4w/scripts/ml4w-toggle-allfloat b/dotfiles/.config/ml4w/scripts/ml4w-toggle-allfloat
--- a/dotfiles/.config/ml4w/scripts/ml4w-toggle-allfloat
+++ b/dotfiles/.config/ml4w/scripts/ml4w-toggle-allfloat
@@ -4,5 +4,6 @@
 for addr in "${addresses[@]}"; do
-    hyprctl dispatch togglefloating "address:$addr"
+    hyprctl dispatch "hl.dsp.focus({window = 'address:$addr'})"
+    hyprctl dispatch "hl.dsp.window.float({action = 'toggle'})"
 done
Lingua principale
QML
Stelle
5.1k
Fork
386
Merge medio
16h 45m
PR unite (30g)
14

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di mylinuxforwork/dotfiles

Tutte le issue di mylinuxforwork/dotfiles

Issue simili

Altre issue su Desktop Dev

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.