La pestaña de notas de archivo desapareció en Nautilus 3.2.1

La pestaña de notas de archivo desapareció en Nautilus 3.2.1

Parece que la pestaña "Notas" en el cuadro de diálogo "Propiedades de archivo" desapareció en Nautilus 3.2.1/Ubuntu 11.10. ¿Cómo puedes utilizar la función de notas ahora? ¿Qué haces con las notas que ya has hecho? ¿Existe un parche o una extensión para esto, o se planea solucionarlo en el futuro? (¿Por qué fue eliminado?) (Pregunta relacionada sobre la portabilidad de notas.)

Respuesta1

Aquí está el script que preparé para usarlo con la respuesta de @fossfreedom. Utiliza GIO para interactuar con GVFS y Tkinter para la GUI y está escrito en Python 2.7. Admite anotaciones de varias líneas. La GUI se ve así:

GUI para script

requisitos previos Necesitas instalar tkinter:

sudo apt-get install python-tk

usar

Guarde el código como un archivo usando su editor favorito en una ubicación de carpeta conocida, por ejemplo/home/[home-folder-name]/scripts/notesscript

Entonces, si estás usandoacciones-naultilus, usa un comando:

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

El código:

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])

Respuesta2

Se hizo una pregunta similar a esta desde "Emblemas y fondos" y me temo que es una respuesta similar.

Los desarrolladores de Gnome pensaron que estas capacidades rara vez se usaban y, para optimizar el código base, las eliminaron como funcionalidad principal de la GUI.

Afortunadamente, lo mismocomandos basados ​​en terminalse puede utilizar ya que se han conservado las capacidades de metadatos:

por ejemplo, aquí hay una captura de pantalla de Nautilus v11.10 con notas agregadas a través de la línea de comando.

ingrese la descripción de la imagen aquí

En cuanto a "¿está planeado arreglarlo?", nuevamente una respuesta similar, como "emblemas", esto se considera compatible con terceros, es decir, no es capacidades básicas de Nautilus.

No conozco a nadie que haya decidido aceptar este desafío, así que aquí está mi pobre sustituto:

ingrese la descripción de la imagen aquí

Elegir la opción del menú contextualNotasmuestra las notas de un archivo que puede modificar.

ingrese la descripción de la imagen aquí

Para hacer esto utilicé mirespuesta a esta pregunta y respuestapara ejecutar el siguiente archivo:

#!/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 no es compatibleentrada de varias líneas- un más robustodiálogo de pythonSe requerirá implementación de tipo... ¡aunque mis habilidades con Python no están a la altura de este trabajo!

Respuesta3

Modifiqué ligeramente su solución. Se ha fusionado con "acciones extra de Nautilus". En la próxima versión, el paquete se llamará: nautilus-notes.

Respuesta4

Aquí está mi script para usar con nautilus-scripts (bastante un poco tosco, limitado a 1000000 líneas, no soy programador).

Tienes que crear en~/.gnome2/nautilus-scriptsarchivo (llamado, por ejemplo, nautilus-annotations) y hacerlo ejecutable (en propiedades) con este contenido:

#!/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

información relacionada