====== 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)