Wie passe ich das Kontextmenü in Nautilus an?


29

Von Zeit zu Zeit überlege ich mir, welche Aktionen ich im Kontextmenü von Nautilus verfügbar haben möchte. Wie füge ich sie dort hinzu? Gibt es so etwas wie ein Thunar UCA-Plugin für Nautilus?


Antworten:


25

Die folgende Antwort ist veraltet: Eine kürzlich aktualisierte Antwort ist diese .


Früher waren Kontextmenüs von Nautilus durch Nautilus-Erweiterungen anpassbar . Seien Sie gewarnt, dass dieser Link zu einem archivierten Dokument führt. Gnome-Entwickler haben diese Dokumentation entfernt und unterstützen diese Art der Anpassung nicht mehr. Es kann aber immer noch funktionieren.

Sie können auch einfache Shell-Skripte im Verzeichnis ~/.local/share/nautilus/scripts( ~/.gnome2/nautilus-scriptsin früheren Versionen) ablegen. Diese werden im Dateikontextmenü im Untermenü Skripte angezeigt.


3
Bitte beachten Sie, dass, wie in askubuntu.com/questions/281062/… erwähnt, wenn Sie unter Ubuntu 13.04 arbeiten, das eine neuere Version von Nautilus verwendet, Sie ~/.local/share/nautilus/scriptsOrdner zum Einfügen Ihrer Skripte verwenden sollten. Und selbst dann werden nur Skripte angezeigt Wenn Sie mit der rechten Maustaste auf eine Datei oder einen Ordner klicken und keinen leeren Bereich.
Logan

2
ist das nicht veraltet?

@cipricus ist es. Beantwortet am 2011, was uh vor 6 Jahren ist . 12 Ubuntu-Releases früher.
Ulidtko

die

@dessert - Ich sehe keinen Grund, die Frage an eine veraltete Antwort anzupassen, nur weil diese Antwort in der Vergangenheit als endgültig markiert wurde. Dadurch würde die aktualisierte (& meistgestimmte) Antwort hier fehl am Platz erscheinen, wenn der Weg dahin darin bestünde, die letztere Antwort einfach als endgültig zu markieren. - Ein anderer Weg wäre, der endgültigen, jetzt veralteten Antwort, die mit der aktualisierten Antwort verknüpft ist, eine kurze Bearbeitung hinzuzufügen: das habe ich gerade getan.

30

Update für Ubuntu 18.04

Zum Zeitpunkt der Veröffentlichung von Ubuntu 18.04 war / ist Nautilus-Actions nicht mehr verfügbar. Es scheint auch von einem neuen Programm namens Filemanager-Actions abgelöst worden zu sein, das ansonsten identisch aussieht.


Informationen zum Installieren dieses Programms finden Sie in dieser Lösung.


Nautilus-Aktionen

Wir können unsere eigenen Kontextmenüpunkte mit Nautilus-Aktionen definieren Installieren Sie Nautilus-Aktionen .

  • Führen Sie das Nautilus-Actions-Konfigurationstool entweder vom Dash oder von einem Terminal mit aus

    nautilus-actions-config-tool
    

Bildbeschreibung hier eingeben

  • In der Aktion Registerkarte geben Sie Ihre Aktion eine sinnvolle Bezeichnung, zB „Open in Terminator“ , und wählen Sie diese in der Auswahl angezeigt werden oder im Kontextmenü.

  • Öffnen Sie als Nächstes die Registerkarte Befehl , um die auszuführenden Befehle einzugeben

Bildbeschreibung hier eingeben

  • Geben Sie den vollständigen Pfad zu Ihrem Befehl ( /usr/bin/command_to_run) und den Programmoptionen an.

  • Nach dem Abmelden und erneuten Anmelden wird das Kontextmenü mit der rechten Maustaste angezeigt:

Bildbeschreibung hier eingeben



1
Ist das noch aktuell?
RolandiXor

2
Nautilus-Aktionen werden wie erwartet in 12.04.
Takkat


11

Man kann die Python-Nautilus- Erweiterung als Alternative zu verwenden nautilus-actions.

Installieren:

sudo apt-get install python-nautilus

Ein einfaches Beispiel:

import os

from gi.repository import Nautilus, GObject

class ColumnExtension(GObject.GObject, Nautilus.MenuProvider):
    def __init__(self):
        pass
    def menu_activate_cb(self, menu, file):
         os.system("write here your simple bash command & pid=$!")

    def get_background_items(self, window, file):
        item = Nautilus.MenuItem(name='ExampleMenuProvider::Foo2', 
                                         label='Name of your item', 
                                         tip='',
                                         icon='')
        item.connect('activate', self.menu_activate_cb, file)
        return item,

Kopieren Sie dieses Python-Skript unter ~/.local/share/nautilus-python/extensionsund starten Sie nautilus neu. Wenn Sie mit der rechten Maustaste auf den Desktop klicken und Ihr Objekt auswählen, wird Ihr einfacher Bash-Befehl ausgeführt :)


Sie erstellen können müssen nautilus-pythonund extensionsOrdner , wenn sie nicht da sind.
Souravc

Ich habe die meisten Lösungen in diesem Thema ausprobiert und festgestellt, dass die Python-Lösung die beste ist. Obwohl nicht perfekt, vor allem wegen mangelnder Dokumentation, ermöglicht es flexibleres Scripting und Portabilität.
Ricardo Rodrigues

3

Wenn Sie jederzeit in der Lage sein möchten, etwas zu tun, tun Sie das, wie es ulidtko sagt, und verwenden Sie es ~/.gnome2/nautilus-scripts.

Wenn Sie in der Lage sein möchten, Anpassungen vorzunehmen, wenn Sie es sehen, installieren Sie das Nautilus-Actions-Paket und gehen Sie dann zu System-> Preferences-> Nautilus Actions Configuration.


3

29. November 2016 Ära Ubuntu 14.04, 16.04 und 16.10 sowie frühere Versionen.

Eine Anleitung zu Nautilus zum Erstellen eines eigenen Skripts finden Sie hier ( Hilfe zu Ubuntu - Nautilus-Skripten ). Grundsätzlich Sie:

  • Navigieren Sie zu dem Verzeichnis ~/.local/share/nautilus/scripts/
  • Platzieren Sie Ihr Skript (geschrieben in Bash, Perl oder Python) dort.
  • Markieren Sie das Skript mit Nautilus oder vom Terminal mit als ausführbar chmod +x script_name
  • Nautilus stellt Ihrem Skript Umgebungsvariablen zur Verfügung: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI und NAUTILUS_SCRIPT_WINDOW_GEOMETRY

Unter ( Hilfe zu Ubuntu - Nautilus-Beispielskripten ) finden Sie Beispielskripten für das Versenden von Dateien per E-Mail, das Mounten einer ISO-Datei, das Festlegen von schreibgeschützten Dateien, das Bearbeiten von Dateien mit gedit ROOT-Berechtigungen, das Öffnen des Terminals am aktuellen Standort usw.

Durchsuchen Sie die Skripts und nehmen Sie eines als Vorlage zum Verschlüsseln von Dateien, Hochladen in die Cloud, Komprimieren zum Sichern oder was auch immer Sie tun müssen.


2

TL; DR

Die beste Lösung für App-Entwickler ist die Verwendung von Python-Nautilus .

Erstellen Sie Ihr Python-Skript ( folgende Beispiele und fehlerhafte Dokumentation ) und kopieren Sie es in den richtigen Ordner:

mkdir -p ~/.local/share/nautilus-python/extensions && cp script.py ~/.local/share/nautilus-python/extensions

Ausführliche Erklärung

Angenommen, Sie möchten eine Anwendung erstellen, die der Benutzer mit einem Skript oder einer .debDatei installiert. In diesem Zusammenhang erkläre ich, warum ich python-nautiluseine bessere Lösung im Vergleich zu Nautilus-Aktionen und den Nautilus-Skripten finde .

Nautilus-Aktionen

Dies ist die einzige Lösung, die eine grafische Benutzeroberfläche bietet und es daher einfach macht, ein komplexes Verhalten zu erstellen. Entscheiden Sie beispielsweise, welche Menüeinträge angezeigt werden sollen, wenn der MIME-Typ der ausgewählten Datei vorliegt text/plain.

Das Hauptproblem bei dieser Lösung ist, dass es nicht einfach (wenn überhaupt möglich) ist, die Einträge auf einen anderen Computer zu importieren, ohne dass das Konfigurationstool und der Benutzer sie importieren. Sagen wir einfach, es wäre nicht möglich, mit einem Skript zu arbeiten.

Nautilus-Skripte

Dies ist die einfachere Lösung. Nehmen Sie ein Skript auf, legen Sie es in einen Ordner und fertig. Dies würde es definitiv einem Installationsskript oder einer .debDatei ermöglichen, einen neuen Eintrag im Kontextmenü zu erstellen. Was sind die Probleme? Wo soll ich anfangen...

  • Es wird immer unter einem Untermenü "Skripte" angezeigt.
  • Es wird nicht angezeigt, wenn Sie nichts ausgewählt haben.
  • Sie können nicht entscheiden, ob Sie den Eintrag anzeigen möchten oder nicht.
  • Erlaubt keine Tooltips oder andere Titel. (Vielleicht bin ich wählerisch)

Eine gute App verwendet solche Verknüpfungen nicht, da dies die Benutzerfreundlichkeit beeinträchtigt.

Python-Nautilus

Nicht so einfach zu erstellen wie die vorherigen Lösungen, bietet aber das Beste aus beiden Welten. Skripterstellung und Anpassung.

Mit dieser Lösung können Sie ein Python-Skript erstellen, das die in nautilus ausgewählten Dateien empfängt, und Sie können entscheiden, ob Sie einen Eintrag anzeigen möchten oder nicht und was Sie mit diesem Eintrag tun möchten. Außerdem können Sie Untermenüs und / oder coole Sachen erstellen.

Der Nachteil ist der große Mangel an Dokumentation und Entwickler, die nur einen Eintrag hinzufügen möchten, verlieren möglicherweise ein paar Stunden, um einen funktionierenden Prototyp zu erstellen.

Normalerweise verwende ich Visual Studio Code, während es unter Windows einen Kontextmenüeintrag bietet. Unter Open with Visual Studio CodeLinux fehlt ihm die gleiche Funktionalität. Mit der Python-Lösung wäre es einfach, das Problem zu lösen. Ich denke, dass Apps unter Linux von einer Nautilus-Integration profitieren könnten.

Ich hoffe, diese Erklärung hat Ihnen bei der Entscheidung geholfen.


Genau aus diesem Grund wollte ich auch ein Kontextmenü hinzufügen. Könnten Sie vielleicht Ihre "Open with VS Code" -Python-Nautilus-Lösung veröffentlichen? Vielen Dank.
Sharpiro

Cra0zy verbesserte meine Version in eine passende Lösung: gist.github.com/cra0zy/f8ec780e16201f81ccd5234856546414
Ricardo Rodrigues
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.