[Mini-HOWTO] Potenziare Nautilus con gli Script

Installazione, configurazione e uso di programmi e strumenti.
Avatar utente
Adaron
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 982
Iscrizione: giovedì 12 ottobre 2006, 23:53
Località: Savona

[Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da Adaron »

PREMESSA
Forse non tutti sanno che Nautilus, il gestore del filesystem predefinito di Gnome in Ubuntu, può essere espanso con degli script di vario tipo che permettono all'utente di avere sotto mano utilità che spesso velocizzano il lavoro con i files e che possono essere davvero utili in certe situazioni.
Il codice degli script può essere scritto in diversi linguaggi come bash, perl, php e una volta creati, gli script appaiono in un apposita sezione del menu contestuale.
Questa guida davvero basilare tratterà brevemente l'argomento con lo scopo più che altro di creare un archivio per gli script di tutti gli utenti del forum, miei compresi, per dar modo a tutt la comunità di fruire di questa quanto meno interessante funzionalità.

LO SCRIPT
In questo caso verrà trattata la breve creazione di uno script bash soffermandoci più sui passi da compiere che sul codice stesso per meglio far comprendere in che modo gli script vengono creati e resi operativi.
  • 1) Lo script può essere creato con un qualsiasi editor di testi come vim o gedit
  • 2) Inseriamo quindi l'indispensabile instestazione per gli script bash "#!/bin/sh" e qualche linea di codice:
    Immagine
  • 3) Salviamo quindi il nostro script in questa posizione: ~/.gnome2/nautilus-scripts/
    Immagine

    noterete che una volta salvato, il testo cambierà colore, questo è dovuto al fatto che l'editor ha riconosciuto il tipo di file e vi applica l'evidenziazione del testo adeguata
  • 4) A questo punto apriamo una shell e diamo il comando
    cd ~/.gnome/nautilus-scripts/
    e in seguito usiamo questo comando:
    chmod +x nome_dello_script dove "nome_dello_script" è il nome con cui avete salvato il vostro script (il comando è fondamentale perchè permette di rendere lo script eseguibile)
    Immagine


A questo punto dalla shell possiamo dare il comando ./nome_dello_script che dovrebbe produrre un output simile:
Immagine
Immagine



Ne consegue che per poter installare uno script scaricato nel vostro nautilus dovrete copiarlo nella cartella "~/.gnome2/nautilus-scripts/" e renderlo  eseguibile con "chmod +x"

FATTO

A questo punto, al successivo riavvio della sessione utente, cliccando col tasto destro sul desktop o su un file verrà mostrato un menu denominato SCRIPT nel quale compariranno i nostro script.

ESEMPI
INSTALLARE UNO O PIU' FONT:

Codice: Seleziona tutto

#!/bin/sh
#Created by Adaron
for font in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
	cp $font ~/.fonts/
done
fc-cache -fv|zenity --progress --text="I font sono stati installati\n Verrà ora riletta la cache dei font..."
INVIARE FILES AD UN MEDIA MONTATO (tipo UsbSticks)

Codice: Seleziona tutto

#!/bin/bash
#Created by Adaron
devices=`ls -m /media/`
vv=${devices//cdrom?, /}
vd=${vv//cdrom, /}
options=${vd//, / FALSE /media/}
destinazione=`zenity --list --radiolist --column " " --column "Periferica" FALSE /media/$options`
for files in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
	cp $files $destinazione
done
zenity --info --text="Copia dei files eseguita con successo."
RIDIMENIONARE LE IMMAGINI QUADRATE(tipo le icone)
ancora non funzionante su più files

Codice: Seleziona tutto

#!/bin/sh
#Created by Adaron
echo "\n"
nomefile=`basename $1`
base="${nomefile%%.*}"
ext="${nomefile#*.}"
directory=`dirname $1`
originale=$1
resample=$(echo "$directory / $base _resampled . $ext" | tr -d " ")
dimensione=`zenity --entry --text="Inserisci la dimensione in pixel"`
geometry=$(echo "$dimensione x $dimensione" | tr -d " ")
convert -resize $geometry $1 $resample
APRIRE UN TERMINALE NELLA POSIZIONE NAVIGATA (by Javier Donaire)

Codice: Seleziona tutto

#!/usr/bin/perl -w
#
# Open terminal here
#
# Nautilus script that opens a gnome-terminal at the current location, if it's
# a valid one. This could be done in shell script, but I love Perl!.
#
# 20020930 -- Javier Donaire <jyuyu@fraguel.org>
# http://www.fraguel.org/~jyuyu/
# Licensed under the GPL v2+
#
# Modified by: Dexter Ang [thepoch@mydestiny.net]
# 2003-12-08: Modified for Gnome 2.4
#		- Added checking if executed on Desktop "x-nautilus-desktop:///"
#		  so that it opens in /home/{user}/Desktop

use strict;

$_ = $ENV{'NAUTILUS_SCRIPT_CURRENT_URI'};
if ($_ and m#^file:///#) {
  s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
  s#^file://##;
  exec "gnome-terminal --working-directory='$_'";
}

# Added 2003-12-08 Dexter Ang
if ($_ == "x-nautilus-desktop:///") {
  $_ = $ENV{'HOME'};
  $_ = $_.'/Desktop';
  exec "gnome-terminal --working-directory='$_'";
}
STAMPARE DIRETTAMENTE UN FILE PDF (by bimole)

Codice: Seleziona tutto

#!/bin/bash

# Questo script può essere utilizzato da nautilus per stmpare i file 'pdf'
# direttamente senza prima visualizzarli con evince.
# Può stampare solo una copia per volta.
# bimole@gmail.com

if [ ! -e /usr/bin/lpr -o ! -x /usr/bin/lpr ]
 then echo 'Manca /usr/bin/lpr!'
      exit 1
fi

if [ ! -e /usr/bin/file -o ! -x /usr/bin/file ]
 then echo 'Manca /usr/bin/file'
      exit 1
fi

if [ ! -e /bin/grep -o ! -x /bin/grep ]
 then echo 'Manca /bin/grep!'
      exit 1
fi

/usr/bin/file $* | /bin/grep PDF >/dev/null 2>/dev/null

if [ $? = 0 ]
 then /usr/bin/lpr $*
 else echo 'Il file non è un pdf!'
      exit 1
fi
CONVERTIRE UN FILE PDF IN PNG (by Adaron)
richiede ghostscript

Codice: Seleziona tutto

#!/bin/bash -x
# ----------------------------------------
# PDF to PNG Converter trough GS Script
# ----------------------------------------
#
# Created by Mattia Galati (Adaron)
# 
##########################################################################
# Language Settings ---------------------------------------------------- #
format='Formato'
title_format='Scegli il formato file in cui convertire:'

col_format='Formato'
col_value='Valore'

success='Conversione completata'
title_success='Successo'

errors='Si sono verificati degli errori'
title_errors='Errore'

progress='Conversione in corso'
title_progress='Conversione'

png_mono='PNG Monocromatico'
png_16='PNG a 16 colori'
png_gray='PNG in Scala di Grigi'
png_256='PNG a 256 colori'
png_16m='PNG a 16 milioni di colori'
xcf='File XCF - The Gimp'
# End of language settings ----------------------------------------------#
##########################################################################

device=`zenity --list --title="$title_format" --text="$format" --radiolist --column " " --column "$col_format" --column "$col_value" \
FALSE "$png_mono" "pngmono" \
FALSE "$png_16" "png16" \
FALSE "$png_gray" "pnggray" \
FALSE "$png_256" "png256" \
FALSE "$png_16m" "png16m" \
FALSE "$xcf" "xcf" \
--print-column=3 --hide-column=3`

path=`dirname $1`
file=`basename $1`

gs -sDEVICE=$device -dBATCH -r600x600 -sOutputFile=$path/converted_$file.png $1 | zenity --progress --pulsate --auto-close --title="$title_progress" --text="$progress"

if (( $? == 0 )); then
	zenity --info --text "$success" --title "$title_success";
else	zenity --info --text "$errors" --title "$title_errors";
fi
CREARE UN PDF DA UN ALTRO CON 2 o PIU' PAGINE IN UNA (by Adaron)
richiede il pacchetto "pdfjam"

Codice: Seleziona tutto

#!/bin/bash -x
# ----------------------------------------
# PDF nup
# ----------------------------------------
#
# Created by Mattia Galati (Adaron)
# 
##########################################################################
# Language Settings ---------------------------------------------------- #
format='es. "2x1" oppure "2x2"'
title_format='Scegli il formato in cui convertire il documento:'

success='Conversione completata'
title_success='Successo'

errors='Si sono verificati degli errori'
title_errors='Errore'

progress='Conversione in corso'
title_progress='Conversione'
# End of language settings ----------------------------------------------#
##########################################################################

arg=`zenity --entry --title="$title_format" --text="$format"`

path=`dirname $1`
file=`basename $1`

pdfnup $1 --nup $arg| zenity --progress --pulsate --auto-close --title="$title_progress" --text="$progress"

if (( $? == 0 )); then
	zenity --info --text "$success" --title "$title_success";
else	zenity --info --text "$errors" --title "$title_errors";
fi
LINK
Sito ufficiale del progetto: http://g-scripts.sourceforge.net/

Spero di esservi stato utile e inserirò volentieri in questo post gli script che vorrete apporvi, siano essi codice o link.
;D
Ultima modifica di Adaron il sabato 31 maggio 2008, 9:58, modificato 1 volta in totale.
[center]Io sono in te, tu sei in Me. Noi siamo Uno
io sono in te, tu sei in me. Noi siamo Uno.
Tu sei in me, io sono in Te. Noi siamo Uno.
Avatar utente
Bobby
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1978
Iscrizione: lunedì 15 gennaio 2007, 17:29

Re: [Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da Bobby »

(good) ottimo!!  (good)
era da un po' che pensavo di approfondire la  materia, mi hai risparmiato la ricerca!
The time is out of joint; - O cursed spite,
That even I was born to set it right! -
                                            Hamlet
Avatar utente
el pampa
Prode Principiante
Messaggi: 246
Iscrizione: lunedì 11 dicembre 2006, 12:29
Località: Pavia

Re: [Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da el pampa »

Come mai lo script per l'invio dei file su disco esterno funziona solo a volte??
ho provato e mi invia un file word ma non un pdf  ???
La mente è come un paracadute.. serve solo se è aperta!
Avatar utente
Adaron
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 982
Iscrizione: giovedì 12 ottobre 2006, 23:53
Località: Savona

Re: [Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da Adaron »

el_pampa ha scritto: ho provato e mi invia un file word ma non un pdf  ???
io ho provato sia con file dello stesso tipo (più foto jpg) e di tipo diverso (jpg + pdf) e sia con singoli e multipli e lo script fallisce la copia solo se nel nome del file sorgente ci sono caratteri tipo gli spazi.
[center]Io sono in te, tu sei in Me. Noi siamo Uno
io sono in te, tu sei in me. Noi siamo Uno.
Tu sei in me, io sono in Te. Noi siamo Uno.
Avatar utente
el pampa
Prode Principiante
Messaggi: 246
Iscrizione: lunedì 11 dicembre 2006, 12:29
Località: Pavia

Re: [Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da el pampa »

quindi o si modifica lo script o non è molto utile..  :-[
La mente è come un paracadute.. serve solo se è aperta!
Avatar utente
Adaron
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 982
Iscrizione: giovedì 12 ottobre 2006, 23:53
Località: Savona

Re: [Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da Adaron »

el_pampa ha scritto: quindi o si modifica lo script o non è molto utile..  :-[
quindi o si modifica lo script o gli utenti imparano che i caratteri come gli spazi o i + e - e ?%£ "forse" non sono adatti per i nomi dei file e delle cartelle... ;D
[center]Io sono in te, tu sei in Me. Noi siamo Uno
io sono in te, tu sei in me. Noi siamo Uno.
Tu sei in me, io sono in Te. Noi siamo Uno.
Avatar utente
el pampa
Prode Principiante
Messaggi: 246
Iscrizione: lunedì 11 dicembre 2006, 12:29
Località: Pavia

Re: [Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da el pampa »

hai ragione anche tu ma se devo spostare canzoni o film è un pò brutto avere sempre _ e quant'altro nel nome..
questione di abitudine..
Ultima modifica di el pampa il giovedì 13 settembre 2007, 14:48, modificato 1 volta in totale.
La mente è come un paracadute.. serve solo se è aperta!
Avatar utente
luca.alpha
Prode Principiante
Messaggi: 35
Iscrizione: martedì 5 settembre 2006, 14:12
Contatti:

Re: [Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da luca.alpha »

ciao ragazzi
mi complimento per l'HOWTO....molto interessante
avrei una domanda da proporvi - qualcuno ha già creato uno script per nautilus per aggiungere un file *.mp3 alla playlist di EXAILE???
(io non sono in grado) è tutto il giorno che cerco ma ancora non ho trovato niente del genere....
aspetto paziente  8)
Saluti luca.alpha
Dio è morto!.Marx è morto!.e anche io non mi sento tanto bene!!!

SONO SEMPRE DI PIÙ LE PERSONE CHE COMUNICANO CON IL RUMORE DEI TASTI DEL TELEFONO

http://www.comunicazionesperimentale.it
Mauro67
Prode Principiante
Messaggi: 115
Iscrizione: mercoledì 28 gennaio 2009, 14:16

Re: [Mini-HOWTO] Potenziare Nautilus con gli Script

Messaggio da Mauro67 »

Ciao,
in merito al CREARE UN PDF DA UN ALTRO CON 2 o PIU' PAGINE IN UNA,
come si può aggiungere anche una finestra dove mettere l'ordinamento pagina (verticale o orizzontale?)
Grazie, Mauro
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti