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

Đang mở
#1,762 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
55/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
linux, shell
Lĩnh vực
desktop, devtools

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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
Ngôn ngữ chính
QML
Star
5.1k
Fork
386
Merge trung bình
16 giờ 45 phút
Pull request đã merge (30 ngày)
14

Chuẩn bị môi trường

  • Không có Dockerfile hay tệp Docker Compose
  • Có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của mylinuxforwork/dotfiles

Tất cả issue của mylinuxforwork/dotfiles

Issue tương tự

Thêm issue về Desktop Dev

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.