A guia de notas do arquivo desapareceu no Nautilus 3.2.1

A guia de notas do arquivo desapareceu no Nautilus 3.2.1

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:

GUI para script

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.

insira a descrição da imagem aqui

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:

insira a descrição da imagem aqui

Escolhendo a opção de menu do botão direitoNotasexibe as notas de um arquivo que você pode alterar.

insira a descrição da imagem aqui

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

informação relacionada