Archiv/PCMan File Manager/Benutzerdefinierte Aktionen

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Einen Programmstarter erstellen

  2. Einen Editor öffnen

  3. Installation von Programmen, optional

  4. Ein Terminal öffnen, optional

  5. Rechte für Dateien und Ordner ändern, optional

Inhaltsverzeichnis
  1. Grundlagen
  2. Beispiele
  3. Nautilus-Actions Configuration Tool
  4. Links

./pcmanfm_logo.png Benutzerdefinierte Aktionen erweitern die Funktionalität des Dateimanagers PCMan File Manager und werden im Kontextmenü rechte Maustaste angezeigt. Das erlaubt den schnellen Zugriff auf diverse Kommandos und Programme direkt aus dem Dateimanager heraus. In Kombination mit Skripten hat man mit dieser Funktion quasi unbegrenzte Möglichkeiten.

Allerdings stehen diese benutzerdefinierten Aktionen erst ab der Version 1.2 oder neuer zur Verfügung.

Grundlagen

Das Grundgerüst folgt dem Schema DES-EMA und ähnelt den von Unity/GNOME 3 verwendeten Quicklists (Jumplists) bzw. den Servicemenü-Einträgen bei KDE. Es besteht aus den beiden Abschnitten [Desktop Entry] und [X-Action-Profile PROFILNAME]. Die wichtigsten Einträge sind hier in der Form SCHLÜSSEL=WERT angegeben:

[Desktop Entry]
Type=Action
Name=ENGLISCHE BESCHREIBUNG
Name[de]=DEUTSCHE BESCHREIBUNG
Icon=SYMBOLDATEI
Tooltip=TEXT

Profiles=PROFILNAME;

[X-Action-Profile PROFILNAME]
MimeTypes=MIME-TYP
Exec=BEFEHL
Name=BESCHREIBUNG

Erläuterung
Element Beschreibung
Type=Action Beschreibt den Typ (obligatorisch). Klassische Programmstarter verwenden dagegen Type=Application.
Name=BESCHREIBUNG Text, der angezeigt werden soll. Für Übersetzungen wird in einer weiteren Zeile der Ländercode in eckigen Klammern angegeben.
Icon=PFAD/ZUR/SYMBOLDATEI Legt ein Bild fest, das angezeigt werden soll (optional)
Tooltip=TEXT sorgt für die Anzeige eines Tooltip (funktioniert nicht bei Lubuntu 14.04)
Profiles=PROFILNAME; Verweist auf den nächsten Abschnitt. Name frei wählbar, aber ohne Leerzeichen. Je nach Bedarf können auch mehrere Profile mit unterschiedlichen Aktionen definiert werden.
[X-Action-Profile PROFILNAME] Beschreibt das Profil und die durchzuführende/n Aktion/en. PROFILNAME entspricht der Bezeichnung aus PROFILES=.
MimeTypes=MIME-TYP Bei welchem Dateityp die Aktion angezeigt werden soll. Es können auch mehrere Dateitypen nach dem Muster TYP;TYP;TYP; angegeben werden. Praxisrelevant sind noch die Varianten all/allfiles für alle Dateien und inode/directory für Ordner.
Exec=BEFEHL Befehl, der ausgeführt werden soll, wenn dieses Element ausgewählt wird.
Name=BESCHREIBUNG Weitere Beschreibung. Wird nicht angezeigt, kann aber zur internen Dokumentation genutzt werden.

Beispiele

Hier ein paar Beispiele für benutzerdefinierte Aktionen. Zum Erstellen kann ein beliebiger Editor [2] verwendet werden.

Hinweis:

Nach dem Hinzufügen neuer oder Ändern bestehender Aktionen müssen alle Instanzen von PCManFM beendet und neu gestartet werden. Für Lubuntu ist dazu z.B. im Terminal einzugeben:

killall pcmanfm ; pcmanfm --desktop --profile lubuntu & 

Alternativ kann man sich ab- und wieder neu anmelden.

./pcmanfm_kontextmenu.png
Ausgewählten Ordner mit Root-Rechten öffnen

Ordner mit Root-Rechten öffnen

Diese Aktion ist besonders nützlich, da der Menüpunkt "Werkzeug → Aktuellen Ordner als Root öffnen" in PCManFM nicht mehr vorhanden ist. Da ab Ubuntu 13.10 auch der erforderliche Befehl gksudo fehlt, benötigt man noch folgendes Paket [3]:

Befehl zum Installieren der Pakete:

sudo apt-get install gksu 

Oder mit apturl installieren, Link: apt://gksu

Datei via E-Mail versenden

Das hier beschriebene Beispiel setzt Thunderbird voraus. Es kann auch für andere E-Mail-Programme genutzt werden, wenn die Zeile Exec=... entsprechend angepasst wird.

Für Claws Mail lautet die Exec=...-Zeile entsprechend

Exec=claws-mail --compose --attach %U

Für Sylpheed ist einzutragen

Exec=sylpheed --attach %F

Als Hintergrundbild setzen

Um schnell ausprobieren zu können, wie ein bestimmtes Bild als Desktop-Hintergrund aussehen würde, kann man folgende Aktion verwenden. Zurücksetzen muss man den Hintergrund über die LXDE Einstellungen (Abschnitt „Desktop“).

Dokumente drucken

Um ODT- und DOC- bzw. PDF-Dateien auf dem Standard-Drucker ausdrucken zu können, werden zwei getrennte Aktionen verwendet.

PDF aus LaTeX Dateien erzeugen

Um aus LaTeX-Dateien PDF-Dateien zu erzeugen und anzuzeigen

Für die Verwendung bei Dateinamen mit Leerzeichen, muss der Befehl in ein Skript ausgelagert werden. In der Zeile Exec= wird dann der Pfad zu folgendem Skript eingetragen.

1
2
3
4
5
#!/bin/bash
## Skript tex2pdf - Latex-Dateien in PDF umwandeln und anzeigen

pdflatex -jobname "$(basename "$1" .tex)" -output-directory "$(dirname "$1")" "$1"
xdg-open "$(dirname "$1")"/"$(basename "$1" .tex)".pdf

Zu Audacious hinzufügen

Da Audacious bei Lubuntu als Standard-Audioplayer eingesetzt wird (und daher keine eigene Aktion zum Abspielen benötigt wird), fügt die folgende Aktion MP3- und OGG-Dateien zur Wiedergabeliste hinzu. Weitere Audioformate können in der Zeile MimeTypes= ergänzt werden.

Papierkorb leeren

Mit Lubuntu 14.04 ist es möglich, via "Einstellungen → Desktop-Einstellungen → Desktop-Symbole" ein Symbol für den Papierkorb auf dem Desktop anzuzeigen. Aber leider lässt sich der so sichtbar gewordene Papierkorb nicht wie gewohnt über das Kontextmenü rechte Maustaste löschen. Um diese Funktion nachzurüsten, muss folgendes Paket installiert werden:

Befehl zum Installieren der Pakete:

sudo apt-get install trash-cli 

Oder mit apturl installieren, Link: apt://trash-cli

Dateien sicher löschen

Für diese Aufgabe werden die beiden folgenden Programme und ein Shell-Skript benötigt.

Befehl zum Installieren der Pakete:

sudo apt-get install wipe zenity 

Oder mit apturl installieren, Link: apt://wipe,zenity

Das Shell-Skript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
zenity --question --title="Sicher löschen" --text="Diese Dateien/Ordner entgültig löschen?\n\nHinweis: Keine Wiederherstellung möglich!";
if [ $? != 1 ]; then
	param=$#;
	zaehler=0;
	fcnt=1;
	(
	while [ "$zaehler" != $param ]
		do
		status=`expr $fcnt - 1`;
		echo $(($status*100/$param)) ;
		echo "# Lösche: $1" ;
		wipe -f -q -Q 1 -R /dev/zero -S r -r "$1";
		echo $(($fcnt*100/$param)) ;
		echo "# Gelöscht: $1" ;
		shift
		fcnt=`expr $fcnt + 1`;
		zaehler=`expr $zaehler + 1`;
		done ) |
	zenity --progress \
	    --title="Sicher löschen" \
 	   --text="Initialisiere..." \
 	   --percentage=0 \
 	   --auto-close
fi

Das Skript erzeugt mittels Zenity eine Sicherheitsabfrage und einen Fortschrittsbalken (nur bei mehreren Dateien und/oder Ordnern) und schließt das Warnfenster nach erfolgreichem Löschen automatisch. Man speichert es beispielsweise als ~/bin/pcmanfm_secure_delete.sh und setzt die Ausführrechte [4][5]:

chmod u+x ~/bin/pcmanfm_secure_delete.sh 

Nun fehlt noch der Inhalt der Datei für diese Aktion (BENUTZERNAME bzw. Speicherort/Name des Skripts bitte anpassen):

[Desktop Entry]
Type=Action
Tooltip=
Name=Secure delete
Name[de]=Sicher löschen
Icon=gtk-dialog-warning

Profiles=on_wipe;

[X-Action-Profile on_wipe]
MimeTypes=all/allfiles;inode/directory;
Exec=/home/BENUTZERNAME/bin/pcmanfm_secure_delete.sh %F
Name=external script required

Dabei werden die zu löschenden Dateien und Ordner zunächst mit Nullen überschrieben und dann gelöscht.

Netzwerkfreigaben

Achtung!

Aus Sicherheitsgründen sollte niemals das eigene Homeverzeichnis freigegeben werden, sondern nur ein einzelner Ordner innerhalb des Homeverzeichnisses. Dazu bietet sich beispielsweise der bereits vorhandene Ordner ~/Öffentlich/ an.

Grundlage ist die Kenntnis des Artikels net usershare. Dabei handelt es sich um die "persönliche Freigabe" eines Ordners im eigenen Homeverzeichnis, die nicht mit einer systemweiten Freigabe verwechselt werden sollte (siehe Samba Server GNOME) – auch wenn sie praktisch die gleiche Funktionalität bietet.

Außerdem muss man vorab dafür sorgen, dass

  1. der Zugriff auf das eigene Homeverzeichnis überhaupt möglich ist und

  2. die Rechte des Ordners, der später freigegeben werden soll, anpassen.

Dazu dienen folgende Befehle im Terminal:

chmod 755 $HOME
chmod 777 $HOME/ORDNERNAME 

Netzwerkfreigaben erstellen

  • ~/.local/share/file-manager/actions/create_share.desktop:

    [Desktop Entry]
    Type=Action
    Name=Create Network Share
    Name[de]=Netzwerkfreigabe erstellen
    Icon=gtk-connect
    
    Profiles=create_share;
    
    [X-Action-Profile create_share]
    MimeTypes=inode/directory;
    Exec=net usershare add %w %f "" Everyone:F guest_ok=y

    Möchte man keinen Vollzugriff erlauben, sondern nur Leserechte erteilen, ändert man die letzte Zeile wie folgt ab:

    Exec=net usershare add %w %f "" Everyone:R guest_ok=y

Netzwerkfreigaben entfernen

  • ~/.local/share/file-manager/actions/remove_share.desktop:

    [Desktop Entry]
    Type=Action
    Name=Remove Network Share
    Name[de]=Netzwerkfreigabe entfernen
    Icon=gtk-disconnect
    
    Profiles=remove_share;
    
    [X-Action-Profile remove_share]
    MimeTypes=inode/directory;
    Exec=net usershare delete %w

Nautilus-Actions Configuration Tool

Wem bei der Lektüre manches sehr vertraut vorkommt, ist auf der richtigen Spur: auch der Dateimanager Nautilus verwendet benutzerdefinierte Aktionen, die als "Nautilus-Aktionen" bezeichnet werden. Für LXDE/Lubuntu ist folgendes Paket – trotz des irreführenden Namens – interessant:

Befehl zum Installieren der Pakete:

sudo apt-get install nautilus-actions 

Oder mit apturl installieren, Link: apt://nautilus-actions

Mit dem enthaltenen Programm Nautilus-Actions Configuration Tool lassen sich benutzerdefinierte Aktionen mit einer grafischen Oberfläche verwalten. Bei Bedarf kann man auch neue anlegen und vorhandene bearbeiten. Praktisch ist weiterhin die Möglichkeit, Skripte in Kategorien zusammenzufassen (also als Untermenü im Kontextmenü anzeigen).

Nach der Installation ist es bei Ubuntu-Varianten mit einem Anwendungsmenü unter "System → Einstellungen für Nautilus-Aktionen" zu finden. Manche der vielfältigen Einstellungsmöglichkeiten erschließen sich aber erst, wenn man sich intensiv mit der eingangs erwähnten DES-EMA-Spezifikation auseinander setzt.

Eine Anmerkung am Rande: Neu erstellte Dateien erhalten automatisch Dateinamen wie 44c437e3-6d88-482b-a193-eabcb4c5df5a.desktop, die man mit einem Dateimanager bei Nichtgefallen einfach umbenennen kann.

./nautilus-actions.png
Nautilus-Actions Configuration Tool unter Lubuntu 14.04