Tôi muốn sử dụng tính năng kéo và thả trong một tập lệnh, để hoạt động mà không cần sự can thiệp của chuột hoặc bàn phím. Tập lệnh này sẽ lấy (kéo) một số tệp và thư mục, đồng thời đặt (thả) vào môi trường chroot bên trong phần mềm Cubic. Và sau đó để tự động nhấn nút "Sao chép" từ Cubic. Vì vậy, tất cả phải tự chủ và tự động.Tôi đã tìm kiếm khắp nơi ở đây và trên các trang web/diễn đàn khác và tìm thấy các cuộc thảo luận sau: https://unix.stackexchange.com/questions/216507/drag-and-drop-without-the-drag/557100#557100
https://unix.stackexchange.com/questions/137905/can-i-drag-a-file-into-a-window-without-a-file-manager
Từ liên kết đầu tiên, tôi muốn sử dụng tập lệnh này, nhưng tôi không biết cách sửa đổi nó để hoạt động cho những gì tôi muốn:
#!/usr/bin/env bash
doc="$0 <filename|'shot'>
Với tên tệp: Kéo tệp đã cho đến nơi con chuột đang sử dụng rồng.
Nhấp để thả nó (bất cứ điều gì).
Với 'shot': Tệp sẽ là ảnh chụp của một khu vực được chọn.
=> 'drag_into shot' trên tổ hợp phím nóng có ý nghĩa.
"
cmd_shot="bắn"
tập tin =
exit_help () { echo -e "$doc"; thoát 1; }
select_shot_area () {
# tạo ảnh chụp màn hình
thông báo-gửi "Chọn khu vực - chúng tôi sẽ bắn nó và kéo đến vị trí của con chuột."
cd "$HOME/Ảnh/ảnh/" || thoát 1
rm -f "mới nhất.png"
scrot -s '%Y-%m-%d_$wx$h_scrot.png' -e 'ln -s $f latest.png'
file="`readlink mới nhất.png`"
}
chủ yếu () {
tập tin="$1"
kiểm tra -z "$file" -o "$file" == "-h" && exit_help
eval "$(xdotool getmouselocation --shell)" # thành $X và $Y
kiểm tra "$file" == "$cmd_shot" && { select_shot_area || trả lại 1; }
killall dragon 2>/dev/null # Không vô tình rơi nhầm vật phẩm ...
rồng --and-exit "$file" &
trong khi đúng; làm
xid="$(xdotool search --onlyvisible --class dragon | head -n 2)"
kiểm tra -z "$xid" || nghỉ
ngủ 0,05
xong
xdotool mousemove --sync -w "$xid" 1 1 mousedown 1 mousemove $X $Y
thông báo-gửi "Nhấp để thả tập tin $..."
}
chính "$@"`
Vì vậy, có thể sửa đổi tập lệnh này, hoặc tạo/tạo một tập lệnh mới và khác không? Và bằng cách nào?