Nautilus-Kontextmenü um eigene Skripte erweitern

Veröffentlicht am

Das Kontextmenü des Dateimanagers Nautilus lässt sich sehr einfach durch eigene Skripte erweitern. Obwohl das Thema sicher vielen nicht neu ist, möchte ich hier kurz beschreiben, wie das funktioniert und welche Möglichkeiten es bietet.
Zum einen ist dieser Artikel als Grundlage für einen kommenden Artikel, in dem ich eine weitere Skriptidee vorstellen möchte, gedacht. Zum anderen hat das hier gezeigte Beispiel auch seinen Charme: es geht darum, das Terminal aus Nautilus heraus „intelligent“ öffnen zu können.

Als Beispiel möchte ich hier ein Skript zeigen, mit dem man das Nautilus-Kontextmenü um einen Menüpunkt Im Terminal öffnen erweitert. Das Terminal soll natürlich direkt im ausgewählten Verzeichnis geöffnet werden. Dazu erstellt man ein Bash-Skript mit folgendem Inhalt:

#!/bin/bash
uris=$NAUTILUS_SCRIPT_SELECTED_URIS
if [ -z "$uris" ]; then
    uris=$NAUTILUS_SCRIPT_CURRENT_URI
fi
eval uris=\$\'${uris//%/\\x}\'
for uri in $uris; do
    path=$(sed -e "s/^file:\/\///g" <<< $uri)
    gnome-terminal --working-directory=$path
done

Das Skript sollte Im Terminal öffnen heißen und muss im Verzeichnis /usr/share/nautilus-scripts liegen. Beachtet dabei, dass ihr vor den Leerzeichen im Namens jeweils ein Backslash (\) angeben müsst – und, dass sudo für die Anlage im genannten Verzeichnis notwendig ist. Um das Skript also mit vi zu erzeugen/editieren gebt ihr folgendes ein:

sudo vi /usr/share/nautilus-scripts/Im\ Terminal\ öffnen

Installiert euch dann das Paket nautilus-script-manager, also:

sudo apt-get install nautilus-script-manager

Danach könnt ihr mit folgendem Befehl das Skript im Kontextmenü aktivieren:

nautilus-script-manager enable Im\ Terminal\ öffnen

Übrigens: den Script-Manager könnte man sich vermutlich auch sparen. Denn offenbar tut er nichts weiter, als einen symbolischen Link unterhalb von ~/.gnome2/nautilus-scripts auf die Skripte im o.g. Verzeichnis zu erstellen.

Schließlich muss Nautilus noch einmal neu gestartet werden, damit der neue Eintrag erscheint:

nautilus -q

Danach findet ihr euren Eintrag im Kontextmenü unterhalb des Untermenüs Skripte.

Welche Features das o.g. Beispiel-Skript im Detail bietet:

  • Wenn der Kontext-Menüeintrag auf ein selektiertes Verzeichnis ausgeführt wird, wird dieses Verzeichnis im Terminal geöffnet.
  • Wenn der Kontext-Menüeintrag auf den Hintergrund des aktuellen Verzeichnisses ausgeführt wird (also ohne etwas zu selektieren), dann wird das gerade aktive Verzeichnis im Terminal geöffnet.
  • Wenn der Kontext-Menüeintrag auf mehrere selektierte Verzeichnisse ausgeführt wird, dann werden alle diese Verzeichnisse jeweils in einem Terminalfenster geöffnet.

Für eine umfangreiche Beschreibung des Themas sei euch natürlich die ubuntuusers.de-Wikiseite zum Thema ans Herz gelegt.

Wer noch weitere Skript-Ideen sucht, könnte sich z.B. NScripts anschauen. Dabei handelt es sich einfach um eine Sammlung von Nautilus-Scripts, die als Tarball heruntergeladen werden können. Auch die Webseite GScripts ist eine gute Quelle und einen Besuch wert.

Zum Schluss sei natürlich noch angemerkt, dass es für Nautilus eine Erweiterung gibt, die die „Im Terminal öffnen„-Funktionalität in Nautilus einbindet. Das Paket dazu heißt nautilus-open-terminal. Aber diese Variante hat doch auch was, oder?

Update:

Um ein Skript wieder zu entfernen, kann man wiederum den nautilus-script-manager, diesmal mit der Option disable verwenden. Für das hier beschriebene Beispiel sieht der Aufruf dann folgendermaßen aus:

nautilus-script-manager disable Im\ Terminal\ öffnen

Natürlich muss auch danach Nautilus noch einmal neu gestartet werden (s.o.).


Dieser Artikel wurde in der/den Kategorie(n) _Anwendungen, Planet-U, Praxis, Programmierung und Skripting veröffentlicht und mit den Tags , , , , , versehen.

9 Kommentare zu Nautilus-Kontextmenü um eigene Skripte erweitern

  1. Kommentar von golomo
    20. August 2011, 16:40 Uhr.

    Wäre es nicht klüger – zumindest für ein normales Desktopsystem mit nur einem Benutzer – das Skript gleich im Home Ordner anzulegen (~/.gnome2/nautilus-scripts) und sich den Umweg über /usr/share/nautilus-scripts/ zu sparen?

    • Kommentar von Gerald
      20. August 2011, 17:57 Uhr.

      Wahrscheinlich schon. Wie ich ja auch geschrieben habe, könnte man sich diesen Umweg vermutlich sparen. Ich wollte aber die offizielle Vorgehensweise beschreiben…

  2. Kommentar von Maxe
    21. August 2011, 18:38 Uhr.

    Ich möchte dich bitten, fehlende Informationen in entsprechenden UU-Wiki-Artikeln nachzutragen und sie der Nutzerschaft dort nicht vorzuenthalten. Ich habe jetzt nicht so genau gelesen, ob das auf diesen Blogeintrag hier zutrifft, aber ich sehe immer wieder Einträge im Planeten, die Informationen, die ohnehin schon im Wiki stehen, wiederholen. Ich halte diese Redundanz für nicht sinnvoll und würde es begrüßen, wenn die Blogger mithelfen, eventuell veraltete Wiki-Artikel auffrischen. Darin sind die Informationen wesentlich haltbarer als in einem verhältnismäßig kurzlebigen Blog.

    • Kommentar von Gerald
      21. August 2011, 19:13 Uhr.

      Hallo Maxe,
      ich gebe dir grundlegend Recht. Aber wieso schreibst du das gerade bei diesem Artikel, wenn du gar nicht weißt, ob es deiner Meinung nach für den Artikel zutrifft oder nicht?
      Was meine Artikel betrifft sehe ich es oft so, dass ich die Dinge doch recht speziell beschreibe – eher auf meine eigenen Bedürfnisse angepasst, und vielleicht auch ein bisschen mehr.
      Aber ich schreibe hier eher weniger die kompletten HowTos – und eben nicht so allgemeingültig wie im Wiki.
      Gruß, Gerald

      P.S.: außerdem denke ich, dass ein Blog (in dem Fall) eher den Zweck hat, auf etwas aufmerksam zu machen. Ohne den richtigen Anstoß weiß ich ja gar nicht, was da alles im Wiki schlummert…

  3. Kommentar von Marcel
    22. August 2011, 18:53 Uhr.

    Dieses im Terminal öffnen gibt es aber auch als fertiges Paket in den Universe-Quellen „nautilus-open-terminal“

    • Kommentar von Gerald
      22. August 2011, 18:58 Uhr.

      Hallo Marcel,
      richtig. Habe ich ja auch ganz am Schluss geschrieben. Allerdings weiß ich nicht genau, ob das 100%-ig identisch funktioniert.
      Es war für mich einfach als „Hello World“-Beispiel gedacht.
      Gruß, Gerald

  4. Kommentar von Marcel
    22. August 2011, 23:03 Uhr.

    oh da ist der letzte absatz wohl beim lesen unter gegangen

  5. Kommentar von okman
    23. August 2011, 10:22 Uhr.

    Könntest Du auch kurz beschreiben, wie man das Script wieder löscht?
    Ich habe Deiner Anleitung entsprechend das Script installiert, es funktioniert nicht so wie beschrieben (z.B. beim Öffnen eines Ordners durch das Script wird nur der Scriptordner geöffnet), habe dann gelesen, dass es diese Erweiterung gibt, hab diese installiert und wollte Dein Script wieder löschen. mit rm und dem Pfad hab ich es zwar gelöscht, allerdings nach nautilusneustart ist das script immer noch in Nautilus sichtbar…
    Außerdem finde ich es gut, wenn in Anleitungen auch das „Aufräumen“ kurz erklärt wird….
    Vielen Dank,
    okman

    • Kommentar von Gerald
      23. August 2011, 10:32 Uhr.

      Hallo okman,
      ich habe den Artikel um das „Aufräumen“-Thema erweitert (siehe Update ganz unten). Schade, dass es bei dir nicht funktioniert. Hast du das Skript per Copy&Paste kopiert?
      Gruß, Gerald

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>