El teu blog de Linux en català

El mètode que explicaré avui és força més complet que l’anterior i, apart de tenir una millor integració amb Nautilus, ens permetrà escollir sobre quin tipus de fitxers volem poder utilitzar el nostre script o, fins i tot, que l’acció realitzada sobre cada tipus de fitxer a què l’assignem sigui diferent.

Per a poder-lo utilitzar, ens hem d’instal·lar el paquet “nautilus-actions”. Ho podem fer des de Synaptic o des d’un terminal, executant l’ordre següent:

sudo apt-get install nautilus-actions

Abans d’obrir el programa hem de crear el nostre script.  Per a posar un exemple, jo he creat l’script extreu_audio.sh, que extreu, tal i com ens va explicar fa un temps el Guillem, el so de qualsevol vídeo. L’he desat al directori /home/el_meu/usuari/bin del meu ordinador, tot i que el podria haver desat a qualsevol directori, i li he donat permisos d’execució. Un cop creat el nostre script, podem executar el programa que acabem d’instal·lar des del menú “Sistema>Preferències>Configuració de les accions del Nautilus”.

Pantalla principal del Nautilus-actions

Pantalla principal del Nautilus-actions

Si premem “Afegeix” podrem configurar un nou element del menú contextual del Nautilus. En la primera pantalla que ens trobem, podrem configurar com es dirà aquest element de menú, què ha d’aparèixer a la barra d’estat i quina icona es mostrarà.

Descripció de la nova opció de menú

Descripció de la nova opció de menú

A l’apartat de perfils és on es configura les accions que fa aquest element de menú. Podem crear més d’un perfil si, per exemple, cada tipus de fitxer ha d’executar una comanda diferent per a obtenir el resultat desitjat. En el nostre cas, el ffmpeg utilitza la mateixa comanda per a extreure el so de qualsevol tipus de fitxer, o sigui que només utilitzarem el perfil Main que ja hi ha creat. L’editem per tal configurar què ha de fer.

Configuració de l'acció

Configuració de l'acció

A la pestanya “Acció” li direm on està el nostre script, i quins paràmetres li passem (us recomano prémer el botó “Llegenda” per saber tots els paràmetres que tenim disponibles). A la pestanya “Condicions” és on li indiquem per a quins tipus de fitxer volem que estigui disponible la nostra opció de menú i altres aspectes interessants. Quan ho tinguem tot configurat, acceptem els canvis. No veurem la nova opció directament en el Nautilus fins que no tanquem totes les finestres i les tornem a obrir. Quan ho hàgim fet, si fem clic amb el botó dret del ratolí sobre algun dels fitxers dels tipus configurats en la nostra acció hi veurem la nova opció, que podrem executar directament.

Nautilus amb la nova opció de menú

Nautilus amb la nova opció de menú

Com veieu, tot i que el procés per a configurar la nostra acció per tal que estigui integrada amb el Nautilus sigui una mica més llarga amb Nautilus-actions, també podem jugar molt més amb ell, perquè ens permet decidir per a quins tipus de fitxer estarà disponible la nostra acció, configurar diferents accions depenent del tipus de fitxer, o simplement tenir una icona al costat del nom de la nostra acció.

En altres anotacions hem mostrat alguns scripts per al Nautilus que ens poden simplificar o posar més a prop certes tasques. Però algun cop ens pot interessar integrar en el Nautilus algun script que hàgim escrit nosaltres mateixos, o que algú ens hagi passat. Hi ha diversos mètodes per a integrar un script en el Nautilus, i en aquesta anotació explicaré la més senzilla.

Primer, hem de crear el nostre script. No explicaré massa sobre com crear els scripts en sí. Només comentaré que es pot fer amb qualsevol llenguatge (bash, perl, python, etc.) i que, com sempre, a la primera línia se li ha d’indicar quin és l’intèrpret que ha d’utilitzar el sistema per a executar el nostre script. Per exemple, si hem creat el script en python, la primera línia del nostre script ha de ser:

#!/usr/bin/python

Apart d’això, els nostres scripts podran utilitzar una sèrie de variables que li vindran donades. Apart de les variables més típiques com el $PWD (directori actual), $LANG (idioma), $USER (usuari d’execució), en tindrem quatre d’específiques que segur que ens seran de molta utilitat:

$NAUTILUS_SCRIPT_CURRENT_URI=Directori actual en format URI
$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS=Camí i nom dels fitxers que tinguem seleccionats
$NAUTILUS_SCRIPT_SELECTED_URIS=Camí (en format URI) i nom dels fitxers que tinguem seleccionats
$NAUTILUS_SCRIPT_WINDOW_GEOMETRY=Mida de la finestra del Nautilus

A més, haurem rebut com a paràmetre els noms dels fitxers seleccionats (sense el seu camí), de manera que podrem utilitzar les variables $#, $1, $2, etc.

Amb aquestes indicacions (i un coneixement mínim d’algun llenguatge de scripts), ja podem crear algun script que ens pugui ajudar en les nostres tasques diàries. La integració de l’script que hàgim escrit amb el Nautilus és molt senzilla. Només cal crear (si no ho hem fet abans) el següent directori:

/home/el_nostre_usuari/.gnome2/nautilus-scripts

Tots els scripts que desem en aquest directori estaran automàticament integrats en el Nautilus. Quan hi desem un script, hem de recordar-nos de donar-li permisos d’execució. I com veurem aquests scripts en el Nautilus? Doncs estant en el Nautilus, seleccionem els fitxers que ens interessi i fem clic amb el botó de la dreta del ratolí. En el menú contextual hi haurà l’opció “scripts”, i sota ella hi haurà tots els scripts que hàgim desat a la carpeta que he comentat abans.

Per posar un exemple, jo n’he creat un que ens comprimeix amb el 7z els fitxers que hàgim seleccionat. Això, lògicament, requerirà tenir instal·lat el p7zip. Si no seleccionem cap fitxer, ens comprimirà tot el directori. El nom del fitxer 7z resultant serà el nom del fitxer original (amb extensió 7z) si només n’hem seleccionat un, i amb el nom del directori on estem (amb extensió 7z) en cas contrari. He creat l’script 7zipar (en aquest cas, en bash). Només cal desar-lo en el directori indicat abans i donar-li permisos d’execució. En la imatge següent veiem com queda integrat en el menú contextual del Nautilus.

7zipar en el Nautilus

7zipar en el Nautilus

En la propera anotació explicaré una forma alternativa per a integrar els nosrtres scripts amb el Nautilus. Serà una mica més complicat que desar l’script en un directori, però també serà molt més flexible i s’integrarà millor amb el Nautilus.

Una de les darreres “grans” característiques que es van afegir a Nautilus, el navegador de fitxers del GNOME, van ser les pestanyes. Tot i que realment pot semblar una estupidesa, el treball amb pestanyes no només ens facilita a nosaltres mateixos la feina, sinó que a més s’estalvia memòria i per tant consumim menys recursos en general.

Tot i així, a l’hora de treballar amb fitxers, movent-los d’ací cap allà, les pestanyes no són tan còmodes com caldria pensar. El principal problema radica en la tasca d’arrossegar: era molt més fàcil tindre dues finestres obertes i arrossegar un fitxer d’una finestra a una altra que haver d’anar d’una pestanya a una altra.

nautilus-extra-pane

Dolphin, el gestor de fitxers de KDE, va solucionar aquest problema d’una manera molt enginyosa: dividir el quadre de navegació de la finestra del gestor en dos. Així, dins d’una mateixa finestra podem visualitzar dos directoris diferents i arrossegar fitxers entre l’un i l’altre. Personalment aquesta era una de les millors coses que havia vist mai en un navegador de fitxers -una verdadera evolució-.

Doncs ara li toca el torn al Nautilus, i és que un usuari ha implementat la mateixa característica per al gestor de fitxers del GNOME. Encara li manquen alguns detalls, però la funció la fa. Per instal·lar-lo, podeu afegir el següent repositori:

deb http://ppa.launchpad.net/berndth/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/berndth/ppa/ubuntu jaunty main

Baixeu les claus:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 246BF391

I ja instal·leu:

sudo apt-get update && sudo apt-get install nautilus libnautilus-extension1 libnautilus-extension-dev nautilus-dbg nautilus-data

Una vegada instal·lat caldrà eixir i tornar a entrar a la sessió o bé matar el nautilus (amb un ganivet està bé, però millor si feu servir l’ordre “killall nautilus“). Finalment trobareu al nautilus l’opció al menú de Visualització -> Extra pane.

Nautilus mostra normalment previsualitzacions de gairebé tot tipus de fitxers: des d’imatges fins a fitxers de so. Caldria preguntar-se llavors per què Nautilus no mostra previsualització de documents d’OpenOffice.org, potser és massa complicat, qui sap.

Un usuari ha desenvolupat un script que implementa aquesta característica. A més, no només mostra una previsualització del document, sinó que també mostra un xicotet logo de l’aplicació amb la qual s’obri el document en qüestió. Per instal·lar-lo, cal tindre també instal·lat el paquet imagemagick (des del vostre gestor del paquet el trobareu).

Aquells qui tingueu Ubuntu, Debian o Fedora només haureu d’instal·lar el paquet .deb o el paquet .rpm, la resta haureu de fer servir el paquet tar.gz (si trobeu paquet per a la vostra distro, no dubteu en apuntar-ho als comentaris i ho afegirem). Una vegada instal·lat el paquet, només haureu d’eixir del gnome i tornar a entrar (o executar “killall nautilus” al terminal).

prev-ooo

scriptsEls scripts de nautilus són mini-aplicacions que una vegada s’han instal·lat, ens mostren un nou menú quan fem clic sobre el botó dret a l’hora de treballar amb fitxers. Per exemple, imagineu que voleu posar una imatge com a fons d’escriptori. La manera de fer-ho a GNOME no pot ser directa, cal obrir el diàleg de fons d’escriptori i després afegir la imatge.

Amb un script es pot posar una imatge com a fons d’escriptori només fent clic amb el botó dret, anant al menú d’scripts i fent clic sobre l’opció corresponent. Però això és només una de les infinites possibilitats que els scripts de nautilus ens permeten fer. Un usuari ha creat un paquet amb diferents scripts, anomenat Ultimate Edition Nautilus Scripts, que inclou:

  • Navega com a root
  • Converteix imatge a GIF, JPG o PNG
  • Copia a… (Escriptori, Baixades, Home)
  • Mou a…
  • Crea un enllaç…
  • Crea Usplash
  • Fes servir com a fons d’escriptori
  • Terminal aquí
  • MountISO
  • Obre amb gedit (o com a root)

Aquest és un paquet amb aquests scripts. Existeixen, però, a la pàgina web gtk-apps molts més scripts que permeten també convertir vídeo, xifrar un fitxer o crear un paquet .deb o .rpm. “Per desgràcia”, aquest paquet només es troba en format .deb per a Ubuntu/Debian. He estat mirant de trobar un tar.gz per a altres distribucions, però no hi ha hagut manera.

Una vegada instal·lat el paquet, podreu veure les noves opcions al menú del nautilus com podeu veure a la captura.

El Nautilus és el navegador de carpetes que ve de forma predeterminada en l’entorn Gnome. El programa està molt ben dissenyat, i permet ser ampliat de forma senzilla per mitjà de connectors ja programats, o per altres que programem nosaltres mateixos. En una anotació anterior, ja vam parlar d’un de molt interessant, el filename-repairer. A més, des de Synaptic podem instal·lar els següents connectors:

  • nautilus-gksu: Permet obrir qualsevol fitxer amb permisos d’administrador.
  • nautilus-image-converter: Amb aquest connector, si fem clic amb el botó dret sobre una imatge tindrem disponibles noves opcions per a poder-la girar, ampliar o reduïr. Si seleccionem diverses imatges alhora, podem realitzar el canvi en totes elles alhora.
  • nautius-open-terminal: Si fem clic amb el botó dret en una carpeta, ens donarà l’opció d’obrir un terminal que directament ens posicioni en aquest directori.
  • nautilus-wallpaper: Des del menú contextual del Nautilus, podrem fer que una imatge determinada sigui el fons del nostre escriptori.

Com veieu, alguns d’ells són realment interessants. Si busqueu pel Synaptic, en trobareu algun altre que potser també us fa servei. A més, com he comentat abans, Nautilus ens permet crear els nostres propis scripts. Hi ha diverses webs que han creat els seus propis scripts, i ens els deixen a la nostra disposició per a utilitzar-los.

Ja que estem en una sèrie d’apunts dedicada a la música, avui us explicaré un petit truc per aquells que tingueu cds gravats amb antics sistemes privatius, i volgueu copiar-vos els arxius o música que contenen als nous sistemes lliures.

Per començar il·lustrem la problemàtica. Sovint, aquests cds gravats en aquests sitemes vells, ens hi apareixen els caràctres anomenats “llatins” de la següent manera

Bj?rk - Greatest Hits - 01 - All Is Full of Love.mp3 (codificació no vàlida)

Un exemple del que seria el directori sencer

nautilus-1

Per solucionar aquest problema, no cal anar canviant els noms un per un, per fer aquesta tasca ja se n’encarregarà el programa nautilus-filename-repairer. Per instal·lar-lo és tan senzill com des d’una terminal esciure la següen ordre

sudo apt-get install nautilus-filename-repairer

I ara només caldrà fer clic amb el botó secundari al fitxer al que se li ha de reparar el nom, i sel·leccionar de la llista el nom correcte

nautilus-2

Avui us explicaré un petit truc per treure-li rendiment al nautilus, l’explorador per defecte en moltes distribucions que empren el gnome com a escriptori com per exemple debian o ubuntu.

Aquest és un truc molt senzill i consisteix en quan anem a moure un fitxer, fer-ho amb el botó del mig del ratolí, de tal manera que al deixar-lo se’ns obrirà un petit quadre on ens dirà les opcions que tenim, que son:

  1. Moure. Es pot forçar amb la tecla “majúscules”
  2. Copiar. Es pot forçar amb la tecla “control”
  3. Enllaç simbòlic tou. El que seria més o menys com un accès directe pels que veniu d’altres entorns privatius que no anomenarè :D).

Cal dir que el mateix diàleg d’opcions es pot forçár amb la tecla “alt”.

nautilus-boto-mig

Recentment un usuari ha “obert un informe d’error” al bugzilla del GNOME tot demanant que la barra lateral del Nautilus hauria de presentar categories, a l’estil del Finder al MacOSX. Actualment, a la barra lateral podem veure un llistat dels medis del nostre ordinador (tots junts i rebolicats) i una segona part amb accessos directes a carpetes.

La cosa va més enllà, però, ja que un altre usuari ha creat un disseny exemple de com podria quedar, i el resultat seria impressionant:

nautilus-sidebar2Com podeu veure, es presenten dues solucions/propostes. A mi personalment m’agrada més la del mig ja que l’altra sembla ser massa compacta (més semblant a l’aspecte actual de la barra al nautilus). Als comentaris de l’informe obert sembla que tothom està d’acord en què seria un canvi genial, fins i tot els mateixos desenvolupadors ho veuen com una gran idea.

Una de les grans possibilitats que ofereix Nautilus (el navegador de fitxers de GNOME), és l’afegit de fer servir els anomenats scripts. Un script sol ser un mini-programa que permet fer tasques concretes com podrien ser conversions directes entre formats d’imatge o vídeo, descarregar subtítols d’un fitxer de vídeo, crear un paquet precompilat .deb o .rpm, etc.

Podeu veure i descarregar molts scripts a la pàgina Gnome-Look. En aquest cas ens centrarem en un script que permet escanejar per virus fitxers concrets. Per exemple, descarreguem un fitxer del Word i volem comprovar si té virus. Doncs només fent clic dret sobre el fitxer, podrem seleccionar l’opció d’escanejar el fitxer en cerca de virus.

La instal·lació requereix els següents passos:

  1. Instal·leu el paquet clamav i zenity des del vostre gestor de paquets (clamav és un antivirus per a GNU/Linux que també té versió per a Windows.
  2. Obriu una terminal i creeu el fitxer virus-scan:
  3. gedit ~/.gnome2/nautilus-scripts/cerca-virus

  4. Copíeu a dins el següent:
  5. #!/bin/bash
    #
    # Nautilus anti-virus scanner script v1.2 – Uses Clam Anti-virus
    # Written by Robert Pectol, December 2005 – http://rob.pectol.com
    #
    # This program is free software. It is distributed in the hope
    # that it will be useful, but WITHOUT ANY WARRANTY; without even
    # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    # PURPOSE. See the GNU General Public License for more details.
    ######################################################################

    # Set some variables used in the script
    files=$1
    if [ “$NAUTILUS_SCRIPT_CURRENT_URI” == “x-nautilus-desktop:///” ]; then
    files_path=$HOME”/Desktop”
    else
    files_path=`echo $NAUTILUS_SCRIPT_CURRENT_URI | sed -e ‘s/^file:////’`
    fi
    gui=`which zenity`
    vscan=`which clamscan`

    # Function to scan file(s)
    scan_it()
    {
    touch /tmp/scanresult
    if [ “$files_path” = “” ]; then
    # Script can run from launchers, scripts other than from Nautilus, etc. (doesn’t require $NAUTILUS_SCRIPT_CURRENT_URI)
    result=`$vscan -r “$files” –log=/tmp/scanresult | $gui –title “Virus Scanner” –progress
    –text=”Scanning $files…” –pulsate –auto-close; cat /tmp/scanresult` &> /dev/null
    else
    result=`$vscan -r “$files_path/$files” –log=/tmp/scanresult | $gui –title “Virus Scanner” –progress
    –text=”Scanning $files…” –pulsate –auto-close; cat /tmp/scanresult` &> /dev/null
    fi
    rm -f /tmp/scanresult &> /dev/null
    # Feedback – if scan ended with errors or was terminated prematurely…
    if [ “$result” = “” ]; then
    err_text=”S’han produït errors quan s’escanejava $files”
    errors
    fi
    # Feedback – if scan completed successfully…
    clean=`echo $result | grep ‘FOUND’`
    # Alter gui feedback according to presense/absense of virus(s) found during scan
    if [ “$clean” != “” ]; then
    $gui –title “S’han trobat virus!” –error –text=”$result” &> /dev/null
    else
    $gui –title “Resultats de l’escaneig” –info –text=”$result” & &> /dev/null
    fi
    }
    # Function to handle errors
    errors()
    {
    $gui –title “S’ha produït un error” –error –text=”$err_text” &> /dev/null
    exit 1
    }

    # Check for presense of required utilities
    if [[ -x “$vscan” && -x “$gui” ]]; then
    scan_it
    else
    if [ -x “$vscan” ]; then
    echo “No s’ha trobat Zenity al vostre sistema. Instal·leu-lo.”
    exit 1
    else
    err_text=”No s’ha trobat Clam Anti-virus al vostre sistema. Instal·leu-lo.”
    errors
    fi
    fi
    exit 0

  6. Per últim, doneu permisos d’execució al fitxer
  7. chmod 755 ~/.gnome2/nautilus-scripts/cerca-virus

Com podeu comprovar, els scripts de nautilus es desen a la carpeta .gnome2/nautilus-scripts del nostre usuari. Normalment podeu descarregar el fitxer d’script i desar-lo allà directament (sense necessitat de crear el fitxer vosaltres mateixos). Una vegada desat allà, us apareixerà directament la opció al menú del botó dret.

script-virus