{"id":1864,"date":"2025-04-01T14:53:38","date_gmt":"2025-04-01T12:53:38","guid":{"rendered":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=1864"},"modified":"2025-04-03T12:00:05","modified_gmt":"2025-04-03T10:00:05","slug":"mein-erstes-programmierprojekt-unter-linux-eine-eigene-dateimanager-erweiterung","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2025\/04\/01\/mein-erstes-programmierprojekt-unter-linux-eine-eigene-dateimanager-erweiterung\/","title":{"rendered":"Mein erstes Programmierprojekt unter Linux: eine eigene Dateimanager-Erweiterung"},"content":{"rendered":"<p>Das einzig senkrechte Mittel um ein neues System kennenzulernen ist ein Projekt, das etwas bestimmtes tun soll. N\u00fctzlich f\u00fcr die Motivation ist es, wenn das ein sinnvolles Arbeitsziel ist, weil man dann zielgerichteter\u00a0 Arbeiten kann. Ich hatte da einen kleinen Wunsch, der sich eigentlich ganz einfach anh\u00f6rte: ich fotografiere mehrmals t\u00e4glich was mit dem Smartphone und \u00fcbertrage die Foto-Dateien\u00a0 einzeln per Bluetooth auf den PC. Dort werden sie oft in WordPresss hochgeladen. Daf\u00fcr w\u00e4re es schick, wenn man die Dateien erst mal auf ein vern\u00fcnftiges Format verkleinern w\u00fcrde, die kommen vom Smartphone n\u00e4mlich mehrere MB gro\u00df. Mir w\u00fcrden aber 640&#215;480 px reichen. Auf dem WindowsPC hatte ich daf\u00fcr ein h\u00fcbsches kleines Tool namens TinyPic, aber das gibts nicht f\u00fcr Linux. Und es gibt zwar Legionen von Grafikprogrammen, die nat\u00fcrlich ein JPG entsprechend verkleinern k\u00f6nnen, aber das ist in den meisten F\u00e4llen Overkill und ausserdem viel zu umst\u00e4ndlich. Ich brauch da was einfacheres<\/p>\n<p>Die kurze und schmerzlose L\u00f6sung: Dateimanager Nemo \u00f6ffnen, rechter Mausklick\/Bildgr\u00f6ssen \u00e4ndern, Parameter und Bezeichnungen eingeben und anwenden. Pf\u00fch- ist mir viel zu umst\u00e4ndlich! Und ausserdem merkt er sich meine Eingaben nicht. Ich m\u00f6chte rechter Mausklick\/verkleinern anw\u00e4hlen k\u00f6nnen, und dann mit einem Klick eine neue Datei im Format 640&#215;480 px erzeugen mit dem alten Namen und einem Kennzeichen, z.B, &#8222;k_&#8220;\u00a0 (f\u00fcr <strong>k<\/strong>lein) vorangestellt. Kein Nachfragen, kein ja\/nein\/abbrechen, nix nur verkleinern und umbenennen.<\/p>\n<p>Ich hab mir folgendes Tutorial zu Herzen genommen:<br \/>\n<a class=\"bbc_link\" href=\"https:\/\/cigolla.ch\/einfuehrung-in-nemo-actions-anpassung-des-kontextmenues-in-linux-mint\/\" target=\"_blank\" rel=\"noopener\">https:\/\/cigolla.ch\/einfuehrung-in-nemo-actions-anpassung-des-kontextmenues-in-linux-mint\/<\/a><br \/>\nDamit hatrs auch ganz prinzipiell geklappt. Mit den erweiterten %-Variablen hatte ich aber massive Schwierigkeiten, die in diesem Artikel gelisteten K\u00fcrzel funktionieren nicht oder nicht wie dokumentiert,%d oder %D f\u00fcr Pfadnamen zum Beispiel gehen gar nicht. Das ist verdammt \u00e4rgerlich, vor allen Dingen weil es unendlich Zeit kostet herauszufinden dass der Fehler nicht an meinem Programm liegt sondern dass die Doku nicht stimmt.<\/p>\n<p>So, ich habe inzwischen eine Antwort erhalten, die folgende Liste aus der Datei sample.nemo_action ist angeblich aktuell:<\/p>\n<blockquote><p># Standard tokens that can be used in the Name, Comment (tooltip) and Exec fields:<br \/>\n#<br \/>\n# %U &#8211; insert URI list of selection<br \/>\n# %F &#8211; insert path list of selection<br \/>\n# %P &#8211; insert path of parent (current) directory<br \/>\n# %f or %N (deprecated) &#8211; insert display name of first selected file<br \/>\n# %p &#8211; insert display name of parent directory<br \/>\n# %D &#8211; insert device path of file (i.e. \/dev\/sdb1)<br \/>\n# %e &#8211; insert display name of first selected file with the extension stripped<br \/>\n# %% &#8211; insert a literal percent sign, don&#8217;t treat the next character as a token<br \/>\n# %X &#8211; insert the XID for the NemoWindow this action is being activated in.<\/p><\/blockquote>\n<p>Mit ein bisschen rumbasteln hab ichs jetzt hingekriegt, mein Eintrag taucht im Kontextmen\u00fc auf, wenn ich darauf klicke wird die Datei verkleinert und dem Namen der neuen Datei ein &#8222;k_&#8220; vorangestellt.<\/p>\n<p>Soweit so gut, es sind aber gleich zwei buggy Features aufgetaucht, die mir nicht gefallen.<\/p>\n<p>1. Nach einem System Neustart tut die Nemo-Erweiterung erst wieder was, wenn ich das actions-Verzeichins manuell als Administrator \u00f6ffne. Wenn ich versuche, die Berechtigung des Verzeichnisses permanent einzustellen, kriege ich eine nichtssagende Fehlermeldung.<\/p>\n<p><strong>L\u00f6sung: die Datei meine_datei.nemo_action im Kontextmen\u00fc als ausf\u00fchrbar einstellen<\/strong><\/p>\n<p>2. Screenshots unter Cinnamon? Ein Krampf! Mal gehts, mal gehts nicht, mal gehts mit Verz\u00f6gerung, aktuelles Fenster fotografieren geht gar nicht. Da muss ich noch ne Runde recherchieren, aber daf\u00fcr gibts einen neuen Beitrag.<\/p>\n<p>Ach ja halt, hier kommt noch meine Action-Datei:<\/p>\n<pre>[Nemo Action]\r\nName=jpg verkleinern mit K\u00fcrzel\r\nComment=Verkleinere das ausgew\u00e4hlte jpg auf 640x480 px\r\nExec=convert -resize 640x480 %F k_%f\r\nIcon-Name=image-x-generic\r\nSelection=any\r\nExtensions=jpg;\r\nMimetypes=application\/jpeg;\r\nQuote=double\r\nEscapeSpaces=true<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das einzig senkrechte Mittel um ein neues System kennenzulernen ist ein Projekt, das etwas bestimmtes tun soll. N\u00fctzlich f\u00fcr die Motivation ist es, wenn das ein sinnvolles Arbeitsziel ist, weil man dann zielgerichteter\u00a0 Arbeiten kann. Ich hatte da einen kleinen Wunsch, der sich eigentlich ganz einfach anh\u00f6rte: ich fotografiere mehrmals t\u00e4glich was mit dem Smartphone [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,9,69,67,8,63],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1864"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=1864"}],"version-history":[{"count":11,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1864\/revisions"}],"predecessor-version":[{"id":1876,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1864\/revisions\/1876"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=1864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=1864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=1864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}