
Durch Zufall bin ich über die Scripting | trinec.de Scripting Seite von Florian Hoberg gefallen.
Bis dato war mir nicht ein- und auch nicht aufgefallen, das man den Nautilus so einfach erweitern kann.
Das zur Verfügung gestellte Script von Florian habe ich etwas verändert, denn es hat bei mir nur Fehler produziert.
Ich habe die von Nautilus zhur Verfügung gestellten Varieablen genutzt und zwei einfache Beispielscripte zum verkleinern von Fotos geschrieben.
Die Scripte sind in Nautilus integriert und es macht spaß sie zu benutzen.
Um das Thema Scripting für Nautilus gibt es eine rege Community:
#!/bin/sh
# Titel: Resize_640x480
# Autor: Florian Hoberg
# Web: www.trinec.de // www.hoberg.in
# Email: florian[at]trinec.de
# GPG: gpg.trinec.de (0xE024BE60)
# System: Ubuntu Hardy Heron 8.04
# Date: 2008-03-04
# Abhängigkeit: ImageMagick http://www.imagemagick.org
#
# leichte Anpassung by bed 5.6.08 Web: zockertown.de
# Email: bed[_a_t]zockertown.de
# Umstellung auf Nautilus Variablen, keine Ahnung, wie das vorher funktionieren sollte.
#
for file in `ls $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS`
do
name=`basename $file`
convert -strip -geometry 640x480 -quality 80 $name ${name}_resized_640×480.jpg
done
Wie man sieht, ist es nur der Aufruf von convert mit den entsprechenden Parametern, gewrappt mit einer For Schleife, die durch die beim Aufruf übergebenen Parameter läuft. Simpel aber Elegant in der Wirkung!
Damit das Ganze funktioniert, muß das Script in das Verzeichnis ~/.gnome2/nautilus-scripts gelegt werden. Weiter Informationen gibt die Option "Scriptordner öffnen".
Alle ausführbaren Dateien in diesem Ordner erscheinen im Skriptmenü. Das aus diesem Menü gewählte Skript wird ausgeführt.
Beim Ausführen aus einem lokalen Ordner, werden dem Skript die Namen der gewählten Dateien übergeben. Wird es in einem entfernten Ordner (z.B. einem mit Web- oder FTP-Ordner) ausgeführt, werden keinerlei Parameter übergeben.
In jedem Fall setzt Nautilus folgende Umgebungsvariablen, die in jedem Skript verwendet werden können:
- NAUTILUS_SCRIPT_SELECTED_FILE_PATHS: Pfade der gewählten Dateien, durch Newline getrennt (nur im lokalen Fall)
- NAUTILUS_SCRIPT_SELECTED_URIS: URIs der ausgewählten Dateien, durch Newline getrennt
- NAUTILUS_SCRIPT_CURRENT_URI: URI des aktuellen Ortes
- NAUTILUS_SCRIPT_WINDOW_GEOMETRY: Position und Größe des aktuellen Fensters
Der erfahrene Bash Script Entwickler weiß ja, wie man in solchen Fällen debuggt, nicht wahr?
Also ich mache das immer mit echo Irgendwas Umleitung in eine Datei in /tmp.
Das erpart viel probieren und hellt im Fehlerfalle auf Achja, damit das Script von nautilus erkannt wird, reicht ein einfaches killall nautilus.
Ich habe mein damaliges Script ein klein wenig aufgehübscht. Es kann zwar immer noch nicht mit Leerzeichen in den Dateinamen umgehen, was ich aber als zweitrangig betrachte, weil meine Canon Bilder beine Sonder und Leerzeichen im Namen beeinhalten.
Tracked: Aug 02, 16:37