Vreau să folosesc drag'n'drop într-un script, pentru a funcționa fără intervenția mouse-ului sau a tastaturii. Acest script ar trebui să ia (trage) unele fișiere și foldere și să le pună (drop) în mediul chroot din interiorul software-ului Cubic. Și după aceea pentru a apăsa automat butonul „Copiere” din Cubic. Deci toate trebuie să fie autonome și automatizate.Am căutat peste tot aici și pe alte site-uri/forumuri și am găsit aceste discuții: 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
De la primul link, aș dori să folosesc acest script, dar nu știu cum să-l modific pentru a funcționa pentru ceea ce vreau:
#!/usr/bin/env bash
doc="$0 <filename|'shot'>
Cu nume de fișier: Trage fișierul dat în locul în care mouse-ul folosește dragon.
Faceți clic pentru a-l arunca (oriunde).
Cu „shot”: Fișierul va fi o fotografie a unei zone care trebuie selectată.
=> „drag_into shot” pe o combinație de taste rapide are sens.
"
cmd_shot="împușcătură"
fisier=
exit_help () { echo -e „$doc”; ieșirea 1; }
select_shot_area () {
# creați captură de ecran
notify-send „Selectați zona – o vom trage și o vom trage până unde este mouse-ul”.
cd „$HOME/Poze/fotografii/” || iesirea 1
rm -f „latest.png”
scrot -s '%Y-%m-%d_$wx$h_scrot.png' -e 'ln -s $f latest.png'
file="`readlink latest.png`"
}
principal () {
file="$1"
test -z „$file” -o „$file” == „-h” && exit_help
eval „$(xdotool getmouselocation --shell)” # în $X și $Y
test „$file” == „$cmd_shot” && { select_shot_area || întoarcere 1; }
killall dragon 2>/dev/null # Fără picături accidentale de articole greșite...
dragon --și-ieșiți din „$fișier” &
în timp ce adevărat; do
xid="$(xdotool search --onlyvisible --class dragon | head -n 2)"
test -z „$xid” || pauză
somn 0,05
Terminat
xdotool mousemove --sync -w "$xid" 1 1 mousedown 1 mousemove $X $Y
notify-send „Clic pentru a arunca $fișier...”
}
principal „$@”`
Deci s-ar putea modifica acest script, sau a crea/crea unul nou și diferit? Și cum?