staging.inyokaproject.org

Nautilus-Erweiterung: Ordner-Vorlagen

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

dAnjou

Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Ich habe eine kleine Erweiterung für Nautilus mithilfe von Nautilus-Python geschrieben. Diese löst das Problem, dass man keine Ordner oder gar ganze Ordnerstrukturen als Vorlage benutzen kann.

Voraussetzungen: GNOME und das Paket python-nautilus

Installation: Man lädt sich die Erweiterung auf der Projektseite (unter Downloads) herunter und kopiert sie bis Natty nach ~/.nautilus/python-extensions/ (oder systemweit nach /usr/lib/nautilus/extensions-2.0/python/), ab Oneiric nach ~/.local/share/nautilus-python/extensions/ (oder systemweit nach /usr/share/nautilus-python/extensions/, wobei ich das nicht geprüft habe). Anschließend muss man Nautilus noch mit killall nautilus neustarten.

Benutzung: Nun kann man im Vorlagen-Ordner (standardmäßig ~/Vorlagen, aber solltet ihr ihn geändert haben, bekommt das die Erweiterung heraus) einen Ordner mit beliebigem Inhalt und der Datei .is_template (beachtet den Punkt am Anfang) erstellen. Rechtsklickt man jetzt irgendwo im Nautilus auf eine leere Stelle, erscheint ein Kontextmenüeintrag, der die Ordner-Vorlagen auflistet (siehe Screenshot im Anhang). Klickt man auf einen Eintrag, wird der Vorlagen-Ordner an diese Stelle kopiert, allerdings ohne die Datei .is_template.

Ich hoffe, dass das vielleicht jemand nützlich findet.

PS: Die Beispielvorlage stellt übrigens eine mögliche Ordnerstruktur des wirklich schicken Web-Frameworks Flask dar 😉.

Bearbeitet von Antiqua:

Downloadlinks auf Wunsch des Autors angepasst. (20.08.11)

Bilder

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

dAnjou schrieb:

Ich habe eine kleine Erweiterung für Nautilus mithilfe von Nautilus-Python geschrieben. Diese löst das Problem, dass man keine Ordner oder gar ganze Ordnerstrukturen als Vorlage benutzen kann.

Nette Idee ☺ - hast Du Interesse an einem Eintrag ins hiesige Wiki?

dAnjou

(Themenstarter)
Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

aasche schrieb:

[...] hast Du Interesse an einem Eintrag ins hiesige Wiki?

Inwiefern? Und wohin? Es ist ja weder ein Skript noch eine Action.

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

dAnjou schrieb:

Inwiefern?

Eigener Artikel. Inhalt: obige Anleitung.

Und wohin? Es ist ja weder ein Skript noch eine Action.

Ich persoenlich wuerde es als Skript einordnen, man koennte es aber auch direkt im Nautilus-Artikel unter Funktionalitaet erweitern verlinken (falls das ein Problem sein sollte).

Cassadi

Avatar von Cassadi

Anmeldungsdatum:
23. Juli 2007

Beiträge: 417

Hallo dAnjou,

funktioniert hier leider irgendwie nicht. Habe das Script wie beschrieben nach ~/.nautilus/python-extensions/ kopiert. Nach Neustart von Nautilus wird im selben Ordner eine neue Datei mit dem Namen FolderTemplate.pyc abgelegt, sodass sich dort nun das Script + diese Datei befindet, aber es gibt keinen Eintrag im Kontexmenü um den Testordner inkl Inhalt irgendwo einfügen zu können.

System Ubuntu 10.10 64bit

Freundliche Grüße Cassadi

dAnjou

(Themenstarter)
Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Hey Cassadi,

Die Datei FolderTemplate.pyc ist nur eine kompilierte Version des Python-Skriptes. Vorlagen kommen standardmäßig in den Ordner ~/Vorlagen. EDIT: Eine Testvorlage liefere ich nicht mit, die musst du selbst erstellen 😉

NOCH EIN EDIT: Aber du hast mich indirekt auf einen kleinen Bug hingewiesen. Wenn keine Vorlage existiert, sollte das Kontextmenü eigentlich existieren und anzeigen, dass keine Vorlage da ist. Wird umgehend repariert.

LETZTER EDIT FÜR DIESEN POST: Repariert! Download-Link ist derselbe.

Cassadi

Avatar von Cassadi

Anmeldungsdatum:
23. Juli 2007

Beiträge: 417

Hallo dAnjou,

ich habe schon gestern im Ordner ~/Vorlagen einen Ordner Test mit besagter Datei .is_template + weiteren Dokumenten angelegt. Dies hatte ich nur nicht in meiner Rückmeldung erwähnt. Also eigentlich sind alle Voraussetzungen, so wie von Dir im Eingangspost beschrieben erfüllt. Trotzdem taucht im Kontexmenü kein neuer Eintrag auf.

Habe soeben dein "neues" Script geladen, aber auch da ändert sich nichts wie man auf dem Bild sehen kann.

Freundliche Grüße Cassadi

Bilder

dAnjou

(Themenstarter)
Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Öhm, hast du das Paket python-nautilus installiert?

Cassadi

Avatar von Cassadi

Anmeldungsdatum:
23. Juli 2007

Beiträge: 417

dAnjou schrieb:

Öhm, hast du das Paket python-nautilus installiert?

aber sicher das 🙄

1
2
3
4
dpkg -l | grep python-n
ii  python-nautilus                       0.6.1-1                                           Python binding for Nautilus components
ii  python-newt                           0.52.11-1                                         A NEWT module for Python
ii  python-notify                         0.1.1-2build3                                     Python bindings for libnotify

Freundliche Grüße Cassadi

dAnjou

(Themenstarter)
Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Cassadi schrieb:

dAnjou schrieb:

Öhm, hast du das Paket python-nautilus installiert?

aber sicher das 🙄

Joar, puuhhh. Ich hab keine Ahnung, was da falsch gelaufen sein könnte. Ich habe es grad nochmal mit einer Natty-LiveCD probiert und es ging.

Wäre schön, wenn es noch ein dritter probieren könnte.

Cassadi

Avatar von Cassadi

Anmeldungsdatum:
23. Juli 2007

Beiträge: 417

Sitze im Moment hier in der Firma an einem Rechner ( ebenfalls Ubuntu 10.10 64bit) und auch hier genau das gleiche Problem. Alles installiert und vorhanden wie es verlangt wird, aber kein Menüeintrag. Hoffe mal das sich ein anderer Tester findet und du vieleicht das Problem lösen kannst, denn die Idee vorgefertigte Ordner nebst Inhalt per Kontexmenü zu kopieren ist schon klasse. Ein Feature wäre es, wenn man dem Ordner dann während des Kopierens noch einen eigenen Namen verpassen könnte. Könnte ich hier super brauchen.

Freundliche Grüße Cassadi

dAnjou

(Themenstarter)
Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Cassadi schrieb:

Ein Feature wäre es, wenn man dem Ordner dann während des Kopierens noch einen eigenen Namen verpassen könnte.

Jo, daran habe ich auch schon gedacht. Ich wollte es zuerst so machen, dass es wie beim ganz normalen Datei/Ordner umbenennen ist, aber ich glaube, dass das auf der Ebene nicht geht. Dazu müsste ich mich wohl viel tiefer in den Nautilus-Code "einklinken", was mir zu viel Aufwand wäre. Da muss ein extra Dialog reichen. Den werde ich aber so gestalten, dass man nur ENTER drücken muss, falls man den Ordner nicht anders benennen will, um nicht zu viel Klick-Aufwand zu haben.

PS: Ich sitze hier gerade und probiere es nochmal haarklein nach meiner Anleitung auf einem frischen Natty in der VM.

EDIT: Habe es jetzt nochmal genau nach meiner Anleitung auf einer frischen Installation durchgeführt und auch die Pfade aus meinem Post oben kopiert und nicht selbst geschrieben und es hat alles geklappt. Vielleicht sollte ich ein Installationsskript bereitstellen 😉

busfahrer

Avatar von busfahrer

Anmeldungsdatum:
9. April 2007

Beiträge: 3052

Hallo

hab hier Ubuntu 10.04 und bekomme es auch nicht gebacken, kein Eintag im Kontextmenü. Habe python-nautilus installiert. Wenn ich deinem Skript spaßeshalber mal eine Shebang gebe #!/usr/bin/env python und es im Terminal starte, bekomme ich die Fehlermeldung

./FolderTemplate.py 
Traceback (most recent call last):
  File "./FolderTemplate.py", line 54, in <module>
    import nautilus
ImportError: No module named nautilus

Hilft das vielleicht weiter?

Gruß...busfahrer

dAnjou

(Themenstarter)
Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

busfahrer schrieb:

Wenn ich deinem Skript spaßeshalber mal eine Shebang gebe #!/usr/bin/env python und es im Terminal starte, bekomme ich die Fehlermeldung [...] Hilft das vielleicht weiter?

Nein. Das nautilus-Modul ist nur von Nautilus selbst benutztbar, es kann nicht in einem Skript verwendet werden wie folgender Befehl zeigt:

1
PYTHONPATH=/usr/lib/nautilus-python/ python -c "import nautilus"

Ausgabe:

Fatal Python error: This module can only be used from nautilus
Abgebrochen

dAnjou

(Themenstarter)
Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Die Ursache für's Nichtfunktionieren in 10.04 und 10.10 habe ich gefunden. Ich benutze das Pythonmodul subprocess mit der Funktion check_output, welche die Module in Lucid und Maverick noch nicht kennen. Laut Dokumentation ist die erst in Python 2.7 vorhanden.

Das zu umgehen, ist aber wohl für mich und für euch kein Problem. Entweder ich benutze eine andere Funktion, um mir die Ausgabe zu holen, oder ihr nutzt Python 2.7 😛 ... ersteres ist selbstverständlich zu bevorzugen. Ich gehe das demnächst an.

Antworten |