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.
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 |
#!/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"
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'
#!/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)