Website-Suche

So erweitern Sie PCManFM mit benutzerdefinierten Aktionen


PCManFM ist ein kostenloser Open-Source-Dateimanager, der eine leichtgewichtige Alternative zu Anwendungen wie Thunar (dem Standard-Xfce4-Dateimanager) oder Nautilus/Files (dem GNOME-Gegenstück) sein soll. Obwohl PCManFM ressourcenschonend konzipiert wurde, mangelt es PCManFM nicht an Funktionalitäten und es kann mit benutzerdefinierten Aktionen erweitert werden.

In diesem Tutorial lernen wir die Syntax kennen, die wir verwenden können, um benutzerdefinierte Aktionen zu definieren, und wie wir sie verwenden können, um die PCManFM-Funktionalitäten zu erweitern.

In diesem Tutorial lernen Sie:

  • So installieren Sie pcmanfm auf einigen der am häufigsten verwendeten Linux-Distributionen
  • So definieren Sie eine benutzerdefinierte Aktion
  • So überprüfen Sie den Mime-Typ einer Datei

Installation

PCManFM ist in den offiziellen Repositories einiger der am häufigsten verwendeten Linux-Distributionen verfügbar und kann daher einfach mit den entsprechenden Paketmanagern installiert werden. Um die Anwendung beispielsweise auf Fedora zu installieren, führen wir den folgenden Befehl aus:

sudo dnf install pcmanfm

Um das Paket "pcmanfm" unter Debian, Ubuntu oder generell jeder anderen Debian-basierten Distribution zu installieren, können wir apt verwenden:

sudo apt install pcmanfm  

Auf Archlinux, der bekanntesten Linux-Rolling-Release-Distribution, können wir PCManFM mit dem pacman-Dateimanager installieren:

sudo pacman -Sy pcmanfm

Einführung von benutzerdefinierten Aktionen

PCManFM kann über "benutzerdefinierte Aktionen" erweitert werden, die in den entsprechenden Fällen im Kontextmenü der Anwendung aufgerufen werden können. Sie sind recht einfach zu schreiben, da sie der Desktop Entry Specification folgen. Benutzerdefinierte Aktionen und die Bedingungen für ihre Anwendungen (z.B. auf welche Dateien sie angewendet werden sollen) werden in Dateien mit der Erweiterung .desktop definiert, die im Verzeichnis ~/.local/share/file-manager/actions abgelegt werden.

Unsere erste individuelle Aktion

Es gibt nichts Besseres, als etwas zu tun, um zu lernen, wie es funktioniert und welche grundlegenden Konzepte dahinter stecken, also schreiben wir unsere erste benutzerdefinierte Aktion. Für dieses Tutorial werden wir eine Aktion schreiben, die es uns ermöglicht, .epub-Dateien in das .kepub-Format zu konvertieren. Für diejenigen unter Ihnen, die mit E-Books nicht vertraut sind, ist Epub das standardmäßige und am häufigsten verwendete E-Book-Format, das von fast allen Lesern außer Kindles gelesen werden kann, während "kepub" eine von Kobo entworfene Erweiterung ist, die auf ihren Geräten für zusätzliche Funktionen verwendet werden kann.

Um die Konvertierung durchzuführen, verwenden wir ein kleines Dienstprogramm, das in Go geschrieben wurde, namens kepubify, also müssen wir es als erstes installieren. Wir können dies tun, indem wir den folgenden Befehl ausführen:

go install github.com/pgaskin/kepubify@latest

Definieren der Aktion

Wir definieren unsere benutzerdefinierte Aktion, indem wir die Zeilen, die Sie unten in der Datei ~/.local/share/file-manager/actions/kepubify.desktop sehen können, schreiben (der Name ist völlig willkürlich). Werfen wir einen Blick auf die Definition und besprechen wir dann ihre Komponenten:

[Desktop Entry]
Type=Action
Name=Kepubify
Profiles=epub_to_kepub

[X-Action-Profile epub_to_kepub]
MimeTypes=application/epub+zip;inode/directory
Exec=/home/egdoc/go/bin/kepubify %f

Zunächst einmal können Sie sehen, dass wir generische Informationen über die Aktion in der Zeilengruppe [Desktop Entry] definiert haben. Innerhalb der Zeilengruppe haben wir den Type-Schlüssel verwendet und ihm den Wert "Action" zugewiesen: Genau so geben wir an, dass wir eine benutzerdefinierte Aktion definieren.

Wir haben dann den Schlüssel Name verwendet, um eine Beschriftung für die Aktion anzugeben: Dies ist sehr wichtig und sollte den Zweck der Aktion am klarsten widerspiegeln, da es das ist, was der Benutzer im Kontextmenü des Dateimanagers sehen wird.

Der Schlüssel Profile wird verwendet, um die Liste der Profile anzugeben, die der Aktion zugeordnet sind. Wir können für jede Aktion mehrere Profile verwenden, so dass die Aktion beispielsweise ihr Verhalten ändert, je nachdem, auf welche Art von Dateien sie aufgerufen wird. Wenn mehrere Profile Id verwendet werden, müssen diese durch ein ; (Semikolon) getrennt werden. Unsere Aktion hat nur ein Profil, das wir als "epub_to_kepub" identifizieren. Jedes Profil wird in einem eigenen Abschnitt definiert.

Definieren eines Profils

Jedes Profil, das sich auf eine Aktion bezieht, wird in der Zeilengruppe [X-Action-Profile <profile-id>] definiert. Im obigen Beispiel haben wir zwei Schlüssel verwendet, um das Profil zu definieren, das unserer Aktion zugeordnet ist.

Der erste Schlüssel, Mimetypes, wird, wie Sie sich vorstellen können, verwendet, um die (durch Semikolons getrennte) Liste der Mime-Typen bereitzustellen, auf die die Aktion angewendet werden soll. Ein Mime-Typ ist nichts anderes als ein Label, das verwendet wird, um eine bestimmte Art von Daten/Datei zu identifizieren. Unser Aktions-Kontextmenüeintrag wird nur angezeigt, wenn wir mit der rechten Maustaste auf eine Datei mit einem der angegebenen MIME-Typen klicken.

Wie können wir den genauen MIME-Typ für eine Datei finden? Wenn wir von der Befehlszeile aus arbeiten, können wir das Datei-Dienstprogramm zusammen mit der Option --mime-type verwenden. Hier ist, was der Befehl zurückgibt, wenn eine epub-Datei als Argument übergeben wird:

file --mime-type "The Robots Of Dawn - Isaac Asimov.epub"
The Robots Of Dawn - Isaac Asimov.epub: application/epub+zip

Der Mime-Typ application/epub+zip ist in der Tat das, was wir in unserem Profil verwendet haben, zusammen mit inode/directory, dem Mime-Typ, der den Verzeichnissen zugeordnet ist. Wir haben beide Mime-Typen verwendet, da das kepubify-Dienstprogramm entweder eine Datei oder ein Verzeichnis als Argument akzeptiert. Wenn eine epub-Datei als Argument übergeben wird, konvertiert die Anwendung sie und erzeugt eine Datei mit demselben Namen, aber mit der Erweiterung epub.kepub. Wenn ein Verzeichnis als Argument übergeben wird, werden stattdessen alle darin enthaltenen epubs konvertiert; Die konvertierten Dateien werden in einem Verzeichnis abgelegt, in dem der _converted String an den ursprünglichen Verzeichnisnamen angehängt wird.

Bei der Definition eines Profils ist der exec-Schlüssel entscheidend: Mit diesem Schlüssel legen wir den Befehl fest, der ausgeführt werden soll, wenn der Benutzer auf den Aktionseintrag im Kontextmenü des Dateimanagers klickt. Parameter können im Wert des Schlüssels übergeben werden: Sie werden zur Laufzeit ersetzt. Genau so verweisen wir auf die Datei, auf die der Benutzer den Rechtsklick ausgeführt hat, der als Argument an kepubify übergeben werden muss. In diesem Fall haben wir den Parameter %f verwendet, der immer durch den Namen der ersten ausgewählten Datei ersetzt wird.

In der folgenden Tabelle sehen Sie einige weitere Parameter und deren Beschreibung. Die vollständige Liste finden Sie in der Desktop Entry Specification:

ParameterBeschreibung
%fDer Name der ersten ausgewählten Datei
%FDie durch Leerzeichen getrennte Liste der ausgewählten Elementnamen: Dies ist im Grunde die Pluralform von "%f"
%uDie URI (Uniform Resource Identifier) des ersten ausgewählten Elements
%UDie durch Leerzeichen getrennte Liste der URIs der ausgewählten Elemente
%cDie Anzahl der ausgewählten Elemente

Testen unserer benutzerdefinierten Aktion

Sobald unsere Aktion fertig ist, können wir sie testen. Zu diesem Zweck können wir PCManFM von einem Terminal-Emulator aus starten, um alle möglichen Fehler zu visualisieren, die beim Ausführen der Aktion generiert werden. Damit PCManFM eine neue Aktion "sieht", muss diese immer neu gestartet werden. So erscheint der Eintrag für unsere benutzerdefinierte Aktion im Kontextmenü, wenn wir mit der rechten Maustaste auf eine epub-Datei klicken:

Abschließende Gedanken

In diesem Tutorial haben wir die Grundlagen gelernt, wie Sie eine benutzerdefinierte Aktion definieren und verwenden können, um die Funktionalitäten des PCManFM-Dateimanagers zu erweitern. Wir haben gelernt, was einige der Schlüssel und Parameter sind, die wir in der Aktionsdefinition verwenden können; Dabei haben wir auch gelernt, was MIME/Types sind und wie wir den MIME-Type einer Datei unter Linux überprüfen können.

Verwandte Artikel: