Strumenti Utente

Strumenti Sito


Barra laterale

programmazione:mate:caja_script

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

VariabileDescrizione
CAJA_SCRIPT_SELECTED_FILE_PATHS percorsi delimitati da «newline» per i file selezionati (solo se in locale)
CAJA_SCRIPT_SELECTED_URISURI delimitati da «newline» per i file selezionati
CAJA_SCRIPT_CURRENT_URIURI 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_URIURI 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)

programmazione/mate/caja_script.txt · Ultima modifica: 28/04/2020 - 15:07 da Fabio Di Matteo