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

Abierto
#1,762 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
55/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
linux, shell
Área
desktop, devtools

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
QML
Estrellas
5.1k
Forks
386
Merge medio
16 h 45 min
PR fusionados (30 d)
14

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de mylinuxforwork/dotfiles

Todos los issues de mylinuxforwork/dotfiles

Issues similares

Más issues de Desktop Dev

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.