Registerkarte „Dateinotizen“ in Nautilus 3.2.1 verschwunden

Registerkarte „Dateinotizen“ in Nautilus 3.2.1 verschwunden

Es scheint, dass die Registerkarte „Notizen“ im Dialogfeld „Dateieigenschaften“ in Nautilus 3.2.1/Ubuntu 11.10 verschwunden ist. Wie können Sie die Notizenfunktion jetzt verwenden? Was tun Sie mit Notizen, die Sie bereits gemacht haben? Gibt es dafür einen Patch oder eine Erweiterung oder ist geplant, dies in Zukunft zu beheben? (Warum wurde es entfernt?) (Verwandte Frage zur Portabilität von Notizen.)

Antwort1

Hier ist das Skript, das ich für die Verwendung mit @fossfreedoms Antwort zusammengestellt habe. Es verwendet GIO als Schnittstelle zu GVFS und Tkinter für die GUI und ist in Python 2.7 geschrieben. Es unterstützt mehrzeilige Anmerkungen. Die GUI sieht folgendermaßen aus:

GUI für Skript

Voraussetzungen Sie müssen tkinter installieren:

sudo apt-get install python-tk

benutzen

Speichern Sie den Code als Datei mit Ihrem bevorzugten Editor an einem bekannten Speicherort - zum Beispiel/home/[home-folder-name]/scripts/notesscript

Wenn Sie dannNaultilus-Aktionen, verwenden Sie einen Befehl:

python /home/[home-folder-name]/scripts/notesscript

Der Code:

import gio
class GVFSNotes:
    ATTRIBUTE_KEY = 'metadata::annotation'
    def __init__(self, f):
        self.__f = f
    def _get_attribute(self, key):
        return self.__f.query_info(key).get_attribute_string(key)
    def _make_setter(self, key, val):
        info = gio.FileInfo()
        info.set_attribute_string(key, val)
        return info
    def _set_attribute(self, key, val):
        self.__f.set_attributes_from_info(self._make_setter(key, val))
    def get(self):
        return self._get_attribute(self.ATTRIBUTE_KEY)
    def set(self, val):
        self._set_attribute(self.ATTRIBUTE_KEY, val)
import Tkinter as tk
class Dialog:
    def __init__(self, title, initial):
        self.root = tk.Tk()
        self.text = None
        self._mkGUI(title, initial)
    def settext(self):
        self.text = self.entry.get(1.0, tk.END).rstrip()
    def onCancel(self):
        self.root.destroy()
    def onOkay(self):
        self.settext()
        self.root.destroy()
    def _mkButtons(self):
        (tk.Button(self.root, text="Cancel", width=10, command=self.onCancel)
            .pack(side=tk.LEFT)
        )
        (tk.Button(self.root, text="Okay", width=10, command=self.onOkay)
            .pack(side=tk.RIGHT)
        )
    def _mkEntry(self, initial):
        self.entry = tk.Text(self.root, width=60)
        if initial != '' and initial != None:
            self.entry.insert(tk.END, initial)
        self.entry.pack(fill=tk.X, expand=True)
        self.entry.focus_set()
    def _setTitle(self, title):
        self.root.wm_title(title)
    def _mkGUI(self, title, initial):
        self._mkEntry(initial)
        self._mkButtons()
        self._setTitle(title)
    def show(self):
        self.root.mainloop()
        return self.text
def main(path):
    notes = GVFSNotes(gio.File(path))
    oldtext = notes.get()
    newtext = Dialog('Notes for ' + path, oldtext).show()
    if newtext != None and newtext != oldtext:
        notes.set(newtext)
if __name__ == '__main__':
    import sys
    main(sys.argv[1])

Antwort2

Eine ähnliche Frage wurde gestellt von „Embleme und Hintergründe" und ich fürchte, es ist eine ähnliche Antwort.

Die Gnome-Entwickler waren der Meinung, dass diese Funktionen selten verwendet werden und haben diese aus der zentralen GUI-Funktionalität entfernt, um die Codebasis zu rationalisieren.

Glücklicherweise das gleicheTerminalbasierte Befehlekann verwendet werden, da die Metadatenfunktionen beibehalten wurden:

hier ist beispielsweise ein Screenshot von Nautilus v11.10 mit über die Befehlszeile hinzugefügten Notizen.

Bildbeschreibung hier eingeben

Zu „ist eine Behebung geplant?“ – auch hier eine ähnliche Antwort – wie bei „Emblemen“ – dies wird als von Drittanbietern unterstützt angesehen – also nicht als Kernfunktionen von Nautilus.

Mir ist niemand bekannt, der sich dieser Herausforderung stellen würde. Hier ist also mein armseliger Ersatz:

Bildbeschreibung hier eingeben

Auswählen der RechtsklickmenüoptionAnmerkungenzeigt die Notizen zu einer Datei an, die Sie ergänzen können.

Bildbeschreibung hier eingeben

Dazu benutzte ich meineAntwort auf diese Frage und Antwortum die folgende Datei auszuführen:

#!/bin/bash

# basic - and I mean basic bash script to display & set notes
# 
# feel free to enhance!
#
# fossfreedom (askubuntu)  27/12/11

notestext=`gvfs-info $1 | grep annotation | sed s/' metadata::annotation: '/''/g`

newnotes=`zenity --entry --width=500 --title=$1 --text="current notes:" --entry-text="$notestext"`

# handle the case where the user has pressed cancel

if [ $? = 1 ]; then 
  exit
fi

# ok - got this far - lets change the notes for the file selected

gvfs-set-attribute -t string $1 metadata::annotation "$newnotes"

Zenity unterstützt nichtMehrzeilige Eingabe- eine robusterePythonDialogEs wird eine Typimplementierung erforderlich sein ... meine Python-Kenntnisse reichen für diesen Job allerdings nicht aus!

Antwort3

Ich habe Ihre Lösung leicht modifiziert. Sie wurde in „nautilus actions extra“ integriert. In der nächsten Version wird das Paket den Namen nautilus-notes tragen.

Antwort4

Hier ist mein Skript zur Verwendung mit Nautilus-Skripten (ziemlich grob – begrenzt auf 1.000.000 Zeilen, ich bin kein Programmierer).

Sie müssen erstellen in~/.gnome2/nautilus-scriptsDatei (z. B. mit dem Namen „nautilus-annotations“) und machen Sie sie (in den Eigenschaften) mit diesem Inhalt ausführbar:

#!/bin/bash
for arg do
if i=`gvfs-info "$arg" | grep -A 1000000 metadata::annotation: | sed s/\metadata::annotation:\// | grep -v metadata:: | zenity  --text-info --editable  --ok-label="ok" --cancel-label="cancel" --checkbox="change"`; then `gvfs-set-attribute -t string "$arg" metadata::annotation "$i"`; else exit
fi
done

verwandte Informationen