Nemo und die QMMP-Playlistfunktion

Ihr wollt Euch möglicherweise diese Action unten zu Eurem Nemo-Dateibrowser hinzufügen:

Location: ~/.local/share/nemo/actions/addmp3toqueue.nemo_action

[Nemo Action]
Name=Add to QMMP-Playlist
Comment=QMMP Playlistadder

Exec=<addmp3toqueue.sh %F>

Icon-Name=soundconverter

Selection=Any
Separator=;

Extensions=oga;mp3;acc;m4a

Früher gabs die Funktion direkt, wenn man QMMP hatte, aber seit einigen Versionen ist die reine Hinzufügen von Files zur Playliste in das „mit einem anderen Programm öffnen“ Menü gewechselt, was bei mehr als einem File zum Problem werden dürfte. Mit der Action ist das jetzt allerdings wieder möglich.

Hier noch das Shellscript dazu :

Location: ~/.local/share/nemo/actions/addmp3toqueue.sh

#!/bin/bash

IN=$*

IFS=";" read -ra FILES <<< "$IN"
for i in "${FILES[@]}"; do
      qmmp --enqueue "$i" 
done

Falls WordPress da wieder so komische Striche daraus machen sollte, es ist 2x ein einfacher Bindestrich.

\o/ Liebe Grüße an unsere mexikanischen Linuxfreunde ! Ich weiß, daß Ihr mich als Quelle verlinked \o/
\o/ Saludos a nuestros amigos mexicanos de Linux! Sé que me vinculaste como una fuente. \o/

Linux – einfache Print Option für Nemo

Das habe ich schon lange vermisst: Im Filemanager, egal ob Nemo oder Nautilus, eine Print Option zu haben. Die Jahre zogen ins Land und die Option blieb in weiter ferne. Bis heute … \o/

… und so zogen sie los, und machten es selbst …

Wir brauchen :

  • – einen Texteditor nach Wahl
  • – ein Druckprogramm
    – eine Nemo Action

Hintergrundwissen

Eine Nemo Action ist eine Datei, die einen Eintrag im Context-Menü von Nemo erzeugt. Analog gibt es das auch für Nautilus, da die das beide von Gnome-Files mitgeforkt haben. Entweder kann ein Benutzer eine eigene Action unter ~/.local/share/nemo/actions  ablegen oder systemweit kann man das unter /usr/share/nemo/actions machen, dazu braucht man dann aber auch die nötigen Root-Rechte.

In der Datei kann ich sagen, welches Tool aufgerufen werden soll, wie die Files dem Tool übergeben werden, wie das Icon aussehen soll usw. Alle Änderungen funktionieren zur Laufzeit von Nemo, so daß wir es nicht laufend neustarten müssen, was extrem praktisch ist.

Die Nemo Action

Wir nehmen für unsere Action das lokale Verzeichnis ~/.local/share/nemo/actions und erzeugen eine Datei namens print.nemo_action

[Nemo Action]
Name=Print
Comment=Printing from Nemo

#Exec=gnome-terminal -x sh -c "echo %F | less"
Exec=<print.sh %F>
Icon-Name=document-print
Selection=Any
Separator=;
Extensions=txt;pdf;jpg;gif;png

Wie man sieht, ähnelt die Datei von Aufbau einer Desktopdatei, was kein Zufall sein dürfte 😉

Wir können also beliebige Experimente machen, was man oben im #Exec Kommentar sehen kann.  Die Auskommentierte Anweisung öffnet ein Terminal, gibt per Echo die Files aus, die selektiert wurden und piped das an Less, so daß man das sehen kann. Ohne Less würde das Fenster sofort wieder zu gehen.

Die Anweisung „Exec=<print.sh %F>“ bezieht sich auf einen Befehl, hier ein Bashscript, im Actionsverzeichnis selbst, statt auf absolute Pfade zurück zugreifen.

Mit „Extensions=txt;pdf;jpg;gif;png“ legen wir fest, daß wir nur im Context von diesen Endungen angezeigt und ausgeführt werden wollen. Sinnvoll, denn MP3 Files kann man zwar drucken, aber das Ergebnis dürfte ernüchternd sein.

Der Separator „;“ ist wichtig, weil sich sonst Filelisten mit „Leerzeichen“ im Dateipfad oder -namen  nicht parsen liessen.
Wer das ohne versucht, wird todsicher scheitern, sobald ein “ “ irgendwo auftaucht.

„document-print“ ist ein Theme übergreifender Symbolname, so daß Hoffnung besteht, das neben Adwaita auch andere Themes ein Symbol parat haben werden.

Wer alle Optionen kennenlernen will, die in so einer Action benutzbar sind, kann sich das hier ansehen:

https://github.com/linuxmint/nemo/blob/master/files/usr/share/nemo/actions/sample.nemo_action

Das Print-Bash-Script

Das Bashscript ist für unsere Zwecke ausreichend, die keine besonderen Anforderungen an das Drucken stellen:

#!/bin/bash

IN=$*
date -R > ~/.local/share/nemo/actions/print.log
IFS=";" read -ra FILES <<< "$IN"
for i in "${FILES[@]}"; do
 echo "processing $i" >> ~/.local/share/nemo/actions/print.log
 lp -o fit-to-page "$i"
done

nochmal im Einzelnen :

IN=$*

Liest alle Argument in die Variable IN ein.

date -R > ~/.local/share/nemo/actions/print.log

Initialisiert unser Logfile, damit wir etwaige Fehler erkennen können.

IFS=“;“ read -ra FILES <<< „$IN“

Splittet die Argumentenliste am „;“ auf, so daß wir wissen, was zum Filenamen gehört und was nicht. Das Ergebnis kommt in einen Array, der in der For-Schleife durchgeackert wird:

for i in „${FILES[@]}“; do
      echo „processing $i“ >> ~/.local/share/nemo/actions/print.log
      lp -o fit-to-page „$i“ >> ~/.local/share/nemo/actions/print.log
done

lp ist unser Druckbefehl. Der kann PDF, Txt und alle gängigen Grafiken drucken. die Option „-o fit-to-page“ passt das Printgut an die maximal Größe der Seite an aka. wir drucken immer mit 100%. Sollte es ein ganz kleines Bild sein, wird es später stark vergrößert sein.

Den jeweils letzten Printjob kann man sich dann im Logfile ansehen, wo hoffentlich keine Fehlermeldung stehen wird 🙂

Vorteile

Der große Vorteil dieser ganzen Action ist, daß die Reihenfolge genau so sortiert ist, wie im Nemo auch angezeigt wird. Damit können wir z.b. einen Stapel Rechnungen nach Rechnungsnummern sauber in der richtigen Reihenfolge drucken.

Files zum Drucken selektieren

Wenn man z.b. alle selektierten PDF Rechnungen mit Evince öffnen würde, könnte man das nicht mehr, bzw. nur mit großen Aufwand. So ist das jetzt ein Klacks! Dateien markieren, Print auswählen und Papiere einsammeln.

Gedruckt wir das Ganze dann an den Standarddrucker.

Heldenapplaus bitte in der Kommentarsektion abgeben, Reklamationen auch. Ich optimiere das gerne weiter 🙂