Nautilus Scripts

Introduzione
E' molto semplice estendere le funzionalita' di Nautilus, il file manager di Gnome, mediante degli script.

Basta creare uno script e salvarlo nella directory personale $HOME/.local/share/nautilus/scripts/, perche' questo compaia nel menu contestuale Scripts.

Questa pagina del manuale di Nautilus spiega i dettagli necessari.

Le variabili d'ambiente passate allo script sono le seguenti:

Terminal
Creiamo un semplice script che ci permetta di aprire un terminale nella directory corrente impostandone grandezza e posizione: echo'#!/bin/bash gnome-terminal --geometry=100x24-0-0 ' > $HOME/.local/share/nautilus/scripts/Terminal chmod a+x $HOME/.local/share/nautilus/scripts/Terminal

Search
Creiamo un semplice script che ci permetta di aprire la finestra di ricerca file nella directory corrente: echo'#!/bin/bash CURRENT_URI=$(echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed -e 's+^file://++g' -e 's+%20+ +g') gnome-search-tool --hidden --path="$CURRENT_URI" ' > $HOME/.local/share/nautilus/scripts/Search chmod a+x $HOME/.local/share/nautilus/scripts/URL_Decode
 * 1) cwd

GPRename
Creiamo un semplice script che ci permetta di aprire il programma GPRename nella directory corrente: echo'#!/bin/bash CURRENT_URI=$(echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed -e 's+^file://++g' -e 's+%20+ +g') gprename "$CURRENT_URI" ' > $HOME/.local/share/nautilus/scripts/GPRename chmod a+x $HOME/.local/share/nautilus/scripts/GPRename
 * 1) cwd

Decompress
Creiamo uno script che ci permetta di decomprimere nella directory corrente i file selezionati con estensione .ace, .rar e .zip: echo'#!/bin/bash IFS=$'\012' CURRENT_URI=$(echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed -e 's+^file://++g' -e 's+%20+ +g') for FILE in $(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sort -u | grep "..") do    CURRENT_EXT=$(echo "$FILE" | tr '[:upper:]' '[:lower:]' | sed 's+^.*\.++g') if [ "$CURRENT_EXT" = "ace" ]; then unace e -c- -o -y "$FILE" "$CURRENT_URI" elif [ "$CURRENT_EXT" = "rar" ]; then unrar e -kb -o+ -y "$FILE" "$CURRENT_URI" elif [ "$CURRENT_EXT" = "zip" ]; then unzip -d "$CURRENT_URI" -o -j "$FILE" fi done ' > $HOME/.local/share/nautilus/scripts/Decompress chmod a+x $HOME/.local/share/nautilus/scripts/Decompress
 * 1) redirect stdout and stderr for debugging
 * 2) exec 1>/tmp/Decompress.out
 * 3) exec 2>/tmp/Decompress.err
 * 1) split only using newline
 * 1) cwd

URL_Decode
Creiamo uno script che ci permetta di decodificare il nome di un file URL codificato (es. da "%20" a " "):

echo'#!/bin/bash IFS=$'\012' for FILE in $(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sort -u | grep "..") do    IS_ENCODED=$(echo "$FILE" | grep '%..') if [ -n "$IS_ENCODED" ]; then NEWFILE=$(echo "$FILE" | php -R 'echo urldecode($argn);') mv -f "$FILE" "$NEWFILE" fi done ' > $HOME/.local/share/nautilus/scripts/URL_Decode chmod a+x $HOME/.local/share/nautilus/scripts/URL_Decode
 * 1) split only using newline

Questo script necessita del seguente pacchetto per poter funzionare correttamente:

sudo apt install php-cli

PDF_2_Images
Creiamo uno script che ci permetta di estrarre nella directory corrente tutte le immagini presenti in un file PDF: echo'#!/bin/bash IFS=$'\012' CURRENT_URI=$(echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed -e 's+^file://++g' -e 's+%20+ +g') for FILE in $(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sort -u | grep "..") do    cd "$CURRENT_URI" NO_EXT=$(echo "$FILE" | tr '[:space:]' '_' | sed -e 's+^.*/++g' -e 's+\..*++g') pdfimages -all "$FILE" "$NO_EXT" done ' > $HOME/.local/share/nautilus/scripts/PDF_2_Images chmod a+x $HOME/.local/share/nautilus/scripts/PDF_2_Images
 * 1) split only using newline
 * 1) cwd

pyRenamer
Creiamo un semplice script che ci permetta di aprire il programma pyRenamer nella directory corrente: echo'#!/bin/bash CURRENT_URI=$(echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed -e 's+^file://++g' -e 's+%20+ +g') pyrenamer --root / "$CURRENT_URI" ' > $HOME/.local/share/nautilus/scripts/pyRenamer chmod a+x $HOME/.local/share/nautilus/scripts/pyRenamer
 * 1) cwd