====== Caja script ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **// 23/04/2020 - 16:17 //** // // Gli script vanno copiati in **~/.config/caja/scripts** con i permessi di esecuzione. E' fino al momento necessario riavviare il desktop mate. \\ ===== Le variabili con le quali interagire ===== ^Variabile^Descrizione^ |CAJA_SCRIPT_SELECTED_FILE_PATHS| percorsi delimitati da «newline» per i file selezionati (solo se in locale) | |CAJA_SCRIPT_SELECTED_URIS|URI delimitati da «newline» per i file selezionati | |CAJA_SCRIPT_CURRENT_URI|URI per la posizione corrente | |CAJA_SCRIPT_WINDOW_GEOMETRY| posizione e dimensione della finestra corrente | |CAJA_SCRIPT_NEXT_PANE_SELECTED_FILE_PATHS| percorsi delimitati da «newline» per i file selezionati nel riquadro inattivo di una finestra con vista divisa (solo se locale)| |CAJA_SCRIPT_NEXT_PANE_SELECTED_URIS| URI delimitati da «newline» per i file selezionati nel riquadro inattivo di una finestra con vista divisa | |CAJA_SCRIPT_NEXT_PANE_CURRENT_URI|URI per la posizione corrente nel riquadro inattivo di una finestra con vista divisa | ===== Script per comprimere file video con FFMPEG ===== #!/usr/bin/env bash mkdir $HOME/Desktop/video FILENAME=$(basename "$CAJA_SCRIPT_SELECTED_FILE_PATHS" ) mate-terminal -e "ffmpeg -i $CAJA_SCRIPT_SELECTED_FILE_PATHS $HOME/Desktop/video/$FILENAME" ===== Un consiglio ===== Durante lo sviluppo dello script conviene creari uno script facilitatore per il debug. Uno script che lancia lo script che andremo a sviluppare con xterm con l'opzione **-hold** che non chiude la finestra del terminale una volta terminato. In modo tale da avere il tempo di vedere i messaggi di errore. #!/bin/sh xterm -hold -e '/home/fabio/.config/caja/scripts/mioscript.py' ===== Una versione piu' evoluta dello script per convertire file vide ===== #!/usr/bin/env python import os,subprocess,sys def dumpVar(s): os.system("zenity --width=400 --info --text '%s'" % s ) files=os.environ['CAJA_SCRIPT_SELECTED_FILE_PATHS'] files=files.splitlines() try: outDir=subprocess.check_output(['zenity', '--file-selection', '--directory', '--title','Cartella di salvataggio']) except subprocess.CalledProcessError: os.system("zenity --width=400 --warning --text='Operazione annullata' " ) sys.exit('Operazione annullata') tmpFile="/tmp/shellscript.sh" if (os.path.isfile(tmpFile)): os.remove(tmpFile) shellscript = open(tmpFile, "a") shellscript.write("#/bin/bash") shellscript.write("\n") shellscript.write("\n") for f in files: shellscript.write("ffmpeg -i ") shellscript.write("'%s' " % f) shellscript.write(" '%s/%s'" % (outDir.decode("utf-8").rstrip() , os.path.basename(f))) shellscript.write("\n") shellscript.write("notify-send 'Codifica video terminata.'") shellscript.write("\n") shellscript.close() os.chmod(tmpFile, 0o700) os.system('mate-terminal -e %s' % tmpFile) os.remove(tmpFile)