A guia de anotações do arquivo foi removida do Nautilus 3.2.1

5

Parece que a aba "Notes" na caixa de diálogo "File Properties" desapareceu no Nautilus 3.2.1 / Ubuntu 11.10. Como você pode usar o recurso de notas agora? O que você faz sobre anotações que você já fez? Existe um patch ou uma extensão para isso, ou está planejando ser corrigido no futuro? (Por que foi removido?) ( Pergunta relacionada sobre a portabilidade de notas. )

    
por Kazark 27.12.2011 / 20:14

4 respostas

4

Uma pergunta semelhante foi feita a partir de " Emblemas e Fundos "e receio que seja uma resposta semelhante.

O Gnome Devs achava que esses recursos eram raramente usados e em ordem para agilizar a base de código que eles removeram como funcionalidade principal da GUI.

Felizmente, os mesmos comandos baseados em terminal pode ser usado desde que os recursos de metadados foram mantidos:

por exemplo, aqui está uma captura de tela nautilus v11.10 com notas adicionadas por meio da linha de comando.

Emrelaçãoa"ele está planejando ser corrigido" - novamente uma resposta semelhante - como "emblemas" - isso é considerado como suportado por terceiros - ou seja, não os recursos do nautilus principal.

Não tenho conhecimento de ninguém que tenha decidido aceitar este desafio - então aqui está o meu pobre substituto:

EscolheraopçãodemenudobotãodireitoNotasexibeasnotasdeumarquivoquevocêpodealterar.

Para fazer isso, usei minha resposta a este Q & A para 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"

O Zenity não suporta entrada de linha múltipla - uma implementação mais robusta do tipo pythondialog será necessária ... minhas habilidades em python ainda não estão à altura desse trabalho!

    
por fossfreedom 27.12.2011 / 21:45
5

Aqui está o script que eu usei para usar com a resposta do @ fossfreedom. Ele usa o GIO para fazer interface com o GVFS e o Tkinter para a GUI, e é escrito no Python 2.7. Suporta anotações de várias linhas. A interface gráfica é assim:

pré-requisitosVocêprecisainstalarotkinter:

sudoapt-getinstallpython-tk

parausar

Salveocódigocomoumarquivousandoseueditorfavoritoemumlocaldepastaconhecido-porexemplo,/home/[home-folder-name]/scripts/notesscript

Então-sevocêestiverusandonaultilus-actions,useumcomando:

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

Ocódigo:

importgioclassGVFSNotes:ATTRIBUTE_KEY='metadata::annotation'def__init__(self,f):self.__f=fdef_get_attribute(self,key):returnself.__f.query_info(key).get_attribute_string(key)def_make_setter(self,key,val):info=gio.FileInfo()info.set_attribute_string(key,val)returninfodef_set_attribute(self,key,val):self.__f.set_attributes_from_info(self._make_setter(key,val))defget(self):returnself._get_attribute(self.ATTRIBUTE_KEY)defset(self,val):self._set_attribute(self.ATTRIBUTE_KEY,val)importTkinterastkclassDialog:def__init__(self,title,initial):self.root=tk.Tk()self.text=Noneself._mkGUI(title,initial)defsettext(self):self.text=self.entry.get(1.0,tk.END).rstrip()defonCancel(self):self.root.destroy()defonOkay(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])
    
por Kazark 01.01.2012 / 01:47
1

Aqui está o meu script para uso com scripts nautilus (um pouco áspero - limitado para linhas de 1000000, não sou programador).

Você tem que criar no arquivo ~ / .gnome2 / nautilus-scripts

#!/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
    
por knezmej 17.04.2012 / 20:45
1

Eu modifiquei ligeiramente sua solução. Foi fundido em "nautilus actions extra". Na próxima versão, o pacote será nomeado: nautilus-notes.

    
por Roti 08.04.2013 / 09:01