Parece que a guia "Notas" na caixa de diálogo "Propriedades do arquivo" desapareceu no Nautilus 3.2.1/Ubuntu 11.10. Como você pode usar o recurso de notas agora? O que você faz com as anotações que já fez? Existe um patch ou extensão para isso, ou está planejando ser corrigido no futuro? (Por que foi removido?) (Pergunta relacionada sobre portabilidade de notas.)
Responder1
Aqui está o script que criei para usar com a resposta de @fossfreedom. Ele usa GIO para fazer interface com GVFS e Tkinter para a GUI e é escrito em Python 2.7. Suporta anotações multilinhas. A GUI fica assim:
pré-requisitos Você precisa instalar o tkinter:
sudo apt-get install python-tk
usar
Salve o código como um arquivo usando seu editor favorito em um local de pasta conhecido - por exemplo/home/[home-folder-name]/scripts/notesscript
Então - se você estiver usandoações naultilus, use um comando:
python /home/[home-folder-name]/scripts/notesscript
O 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])
Responder2
Uma pergunta semelhante a esta foi feita em "Emblemas e Planos de Fundo" e temo que seja uma resposta semelhante.
Os desenvolvedores do Gnome pensaram que esses recursos raramente eram usados e, para simplificar a base de código, eles os removeram como funcionalidade central da GUI.
Felizmente, o mesmocomandos baseados em terminalpode ser usado desde que os recursos de metadados foram mantidos:
por exemplo, aqui está uma captura de tela do nautilus v11.10 com notas adicionadas por meio da linha de comando.
Quanto a "está planejando ser consertado" - novamente uma resposta semelhante - como "emblemas" - isso é considerado como suportado por terceiros - ou seja, não são os principais recursos do nautilus.
Não tenho conhecimento de ninguém que tenha decidido aceitar este desafio - então aqui está o meu pobre substituto:
Escolhendo a opção de menu do botão direitoNotasexibe as notas de um arquivo que você pode alterar.
Para fazer isso usei meuresponda a estas perguntas e respostaspara executar o seguinte arquivo:
#!/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 não suportaentrada de múltiplas linhas- um mais robustodiálogo pythona implementação do tipo será necessária ... minhas habilidades em python não estão à altura deste trabalho!
Responder3
Eu modifiquei ligeiramente sua solução. Foi incorporado ao "nautilus actions extra". Na próxima versão, o pacote será nomeado: nautilus-notes.
Responder4
Aqui está meu script para uso com scripts nautilus (um pouco grosseiro - limitado a 1.000.000 de linhas, não sou programador).
Você tem que criar em~/.gnome2/nautilus-scriptsarquivo (nomeado, por exemplo, nautilus-annotations) e torná-lo executável (em propriedades) com este conteúdo:
#!/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