Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmbienteGrafico/Gnome/ScriptNautilus"
Differenze tra le versioni 18 e 19
Versione 18 del 13/09/2007 09.42.46
Dimensione: 10020
Commento: un paio di script come allegati
Versione 19 del 15/10/2007 16.11.24
Dimensione: 10020
Commento: toc 35%, da revisionare
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 4: Linea 4:
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]|| ||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]||

BR

Nautilus scripting

attachment:Icone/Piccole/nautilus.png

Nautilus permette l'esecuzione di script personalizzati, richiamabili direttamente dalla finestra di navigazione.

Questi script vanno posizionati nella directory ~/.gnome2/nautilus-scripts (identificata anche da /home/<utente>/.gnome2/nautilus-scripts dove «utente» è l'utente desiderato), e resi eseguibili digitando in un terminale il seguente comando:

chmod +x <nome-dello-script>

Una volta fatto questo, ogni script aggiunto sarà disponibile in Nautilus sotto la voce File -> Script, e sarà richiamabile attraverso il clic con il tasto destro.

Molti di questi script coinvolgono i privilegi d'amministrazione, che possono danneggiare seriamente il sistema in uso.

Raccolta di Script per Nautilus

Esiste una raccolta di script per Nautilus (sono più di 100), presente nel sito http://g-scripts.sourceforge.net. Per estendere Nautilus con tutti gli script della raccolta, eseguire i seguenti comandi:

cd ~/.gnome2/nautilus-scripts
wget http://g-scripts.sourceforge.net/nautilus-scripts.tar.gz
tar zxvf nautilus-scripts.tar.gz

Se il comando wget non riesce a recuperare il .tar.gz con la raccolta degli script potete fare il download direttamente dal sito del progetto.

Manda via mail il file selezionato

Questo è veramente utile per cercare un file e inviarlo per email dalla posizione in cui ci si trova:

    #!/usr/bin/perl -w

    # By John Russell

    # This script sends the selected file(s) with your email client.

    use strict;

    my $MAILTO_URL="mailto:?";

    my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS});

    my $count = 0;

    foreach my $file (@files)

    {

        if ( ! -f $file && ! -l $file )

        {

            my @dialog = ("gdialog","--title","Error","--msgbox", "\nError: Can not send $file.    \n\n    Only regular files can be mailed.    ","200", "300");

            system (@dialog);

        }

        else

        {

           $MAILTO_URL = $MAILTO_URL . "attach=" . $file . "&";

               shift;

            $count += 1;

        }

    }

    if ($count > 0)

    {

        my @command = ("gnome-open", $MAILTO_URL);

        system(@command);

    }

La sintassi mailto: non funziona con mozilla-thunderbird. La seguente versione sembra invece funzionare con Thunderbird: NOTA: Funziona con Mozilla-Thunderbird ma non con Thunderbird2 (non presente nei repositories)

    #!/usr/bin/perl -w

    # By John Russell

    # and hacked to work with thunderbird by Darrell

    # This script sends the selected file(s) with mozilla-thunderbird.

    use strict;

    my $attach_string="\"attachment='";

    my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS});

    my $count = 0;

    foreach my $file (@files)

    {

        if ( ! -f $file && ! -l $file )

        {

            my @dialog = ("gdialog","--title","Error","--msgbox", "\nError: Can not send $file. \n\n    Only regular files can be mailed.    ","200", "300");

            system (@dialog);

        }

        else

        {

           $attach_string = $attach_string . "file://" . $file . ",";

               shift;

            $count += 1;

        }

    }

    if ($count > 0)

    {

        $attach_string = $attach_string . "'\"";

    # replace spaces with '%20' as demanded by mozilla/thunderbird    

        $attach_string =~ s/\s/%20/g;

    # invoke shell script to call thunderbird differently depending on whether it's running already or not

        my $command = ("~/scripts/thunderbird-email-attachments " . $attach_string);

        system($command);

    }

Nell'ultime righe dello script precedente viene richiesto il seguente script di shell, (indicato con ~/scripts/thunderbird-email-attachments. Attenzione a non posizionarlo nella directory nautilus-scripts, altrimenti sarebbe visibile nel menù contestuale):

    #!/bin/sh

    # if thunderbird is already running open a compose window in the running instance

            if `ps xc | grep -q mozilla-thunder`; then 

                    exec mozilla-thunderbird -a Mozilla-Thunderbird -remote         "xfeDoCommand(ComposeMessage,$1)"

    # else start a new instance with the compose window only

            else

                    exec mozilla-thunderbird -compose $1 

            fi

Montare un'immagine ISO

Montare un'immagine ISO, da Nautilus:

    #!/bin/bash

    #

    #By modprobing loop it makes sure that the module is loaded and ready for 

    #use.  If it is already loaded then nothing will happen.

    modprobe loop

    for I in `echo $*`

    do

       foo=`gksudo -u root -k -m "enter your password for root terminal access" /bin/echo "got r00t?"`

    sudo mount -o loop -t iso9660 $I /media/iso

       done

    done

    exit0

Smontare un'immagine ISO

Smontare immagine ISO, da nautilus:

    #!/bin/bash

    #

    for I in `echo $*`

    do

       foo=`gksudo -u root -k -m "inserire la tua password di root" /bin/echo "got r00t?"`

    sudo umount $I

      done

    done

    exit0

Impostare la sola lettura sui file

Cambiare i permessi dei file in sola lettura:

    #!/bin/bash

    chmod ugo=r $*

Editare file con gedit usando i privilegi di root

    #!/bin/bash

    #

    for I in `echo $*`

    do

       foo=`gksudo -u root -k -m "inserei la tua password di root" /bin/echo "got r00t?"`

    sudo gedit $I

       done

    done

    exit0

Aprire Nautilus con i privilegi di root

    #!/bin/bash

    # root-nautilus-here

    # opens a root-enabled instance of a nautilus window in selected location

    # requires sudo privileges and gksudo, which may involve security risks.

    #Install in your ~/Nautilus/scripts directory.

    #

    # Placed in the public domain by Shane T. Mueller 2001

    # Fixes provided by Doug Nordwall

    #

    # 2004.04.18 -- keith@penguingurus.com - Added gksudo usage to provide popup

    #               password window if sudo has expired.  Line only echos got

    #               root to std output.  But gksudo updates your sudo access

    #               privs, so running nautilus with sudo will succeed

    #               without asking for a password.

    foo=`gksudo -u root -k -m "enter your password for nautilus root access" /bin/echo "got r00t?"`

    sudo nautilus --no-desktop $NAUTILUS_SCRIPT_CURRENT_URI

Avviare file con i privilegi di root

    #!/bin/bash

    #

    for I in `echo $*`

    do

       /usr/bin/gksudo $I

       done

    done

    exit0

Aprire la finestra di ricerca

    #!/bin/sh

    # From Johnathan Bailes

    # This script opens a gnome-search-tool in the directory you select.

    #

    # Distributed under the terms of GNU GPL version 2 or later

    #

    # Install in your ~/Nautilus/scripts directory.

    # You need to be running Nautilus 1.0.3+ to use scripts.

    cd $NAUTILUS_SCRIPT_CURRENT_URI

    exec gnome-search-tool

Aprire il terminale

[http://wiki.ubuntu-it.org/NautilusScriptsHowto?action=AttachFile&do=view&target=aprire-terminale.txt Mostra script]

Nascondere o mostrare i file nascosti

    #!/bin/sh

    # When hidden files (.emacs, etc) are hidden, shows "Show Hidden Files" option.

    # When hidden files are shown, shows "Hide Hidden Files" option.

    # Uses gconf to toggle between the two Nautilus options.

    # Should be placed in ~/.gnome2/nautilus-scripts/ with executable permission.

    OLDSTATE=$(gconftool-2 --get "/desktop/gnome/file_views/show_hidden_files")

    if [ "$OLDSTATE" == "false" ] ; then

      NEWSTATE="True"

      mv ~/.gnome2/nautilus-scripts/Show\ Dot\ Files ~/.gnome2/nautilus-scripts/Hide\ Dot\ Files

    else

      NEWSTATE="False"

      mv ~/.gnome2/nautilus-scripts/Hide\ Dot\ Files ~/.gnome2/nautilus-scripts/Show\ Dot\ Files

    fi

    gconftool-2 --set "/desktop/gnome/file_views/show_hidden_files" --type boolean $NEWSTATE

È possibile fare lo stesso con la combinazione di tasti CTRL+H su Nautilus.

Ridimensionamento delle immagini

    #!/bin/sh

    #acquisisce i nomi dei file
    files=`echo "$1" | sed 's/ /\\ /g'`

    # nome dei file ridotti, in questo caso aggiunge -copia.jpg in fondo
    copia=ImmaginiRidotte/${files}-copia.jpg

    # crea la sottocartella dove salvare i file ridotti
    mkdir ImmaginiRidotte

    # chiamata a convert (pacchetto imagemagick)
    # 800 è la larghezza dei file finali (vanno modificati tutti e due)
    # 75 è la percentuale di compressione. editatele come preferite. 
    # per mettere nessuna compressione o nessun ridimensionamento semplicemente eliminate il parametro.
    convert $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS -resize 800x -resize 'x800>' -quality 75 $copia

Inviare file tramite bluetooth

    #!/bin/sh
    # Tramite obex invia un file ad un dispositivo bluetooth.
    # Ovviamente dovete avere un'adattatore bluetooth collegato al computer.
    gnome-obex-send $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

Convertire file audio

[http://wiki.ubuntu-it.org/NautilusScriptsHowto?action=AttachFile&do=view&target=conversione-file-audio.txt Mostra script]

Ulteriori risorse

  • [wiki:Ubuntu/NautilusScriptsHowto Documento originale]


CategoryProgrammazione