Вкладка "Примечания к файлам" в Nautilus 3.2.1

Кажется, что вкладка «Примечания» в диалоговом окне «Свойства файла» исчезла в Nautilus 3.2.1 / Ubuntu 11.10. Как вы можете использовать функцию заметок сейчас? Что вы делаете с заметками, которые вы уже сделали? Есть ли для этого патч или расширение или оно будет исправлено в будущем? (Почему он был удален?) ( Смежный вопрос о переносимости заметок. )

5
задан 13 April 2017 в 15:24

4 ответа

Подобный вопрос был задан из « Эмблемы и фоны », и я боюсь, что это аналогичный ответ.

Разработчики Gnome думали, что эти возможности используются редко, и чтобы упростить кодовую базу, они удалили это как основную функциональность GUI.

К счастью, те же самые терминальные команды могут использоваться, так как возможности метаданных были сохранены: например,

, вот снимок экрана nautilus v11.10 с примечаниями, добавленными через командная строка.

enter image description here

Что касается «планирует ли он исправить» - опять же аналогичный ответ - как «эмблемы» - это рассматривается как сторонние поддерживаемые - то есть не основные возможности nautilus .

Я не знаю, чтобы кто-нибудь решил принять этот вызов - вот мой плохой заменитель:

enter image description here

Выбор пункта меню, вызываемого правой кнопкой мыши [ 115] Заметки отображает заметки для файла, который вы можете изменить.

enter image description here

Для этого я использовал свой ответ на этот вопрос & A , чтобы выполнить следующий файл:

#!/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 hasn не поддерживает многострочный ввод - потребуется более надежная реализация типа pythondialog ... хотя мои навыки работы с Python не подходят для этой работы!

0
ответ дан 13 April 2017 в 15:24

Вот мой скрипт для использования с nautilus-scripts (довольно грубый - ограничен 1000000 строками, я не программист).

Вы должны создать в файле ~ / .gnome2 / nautilus-scripts (например, nautilus-annotations) и сделать его исполняемым (в свойствах) со следующим содержимым:

#!/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
0
ответ дан 13 April 2017 в 15:24

Вот сценарий, который я бросил вместе для использования с ответом @fossfreedom. Это использует GIO для взаимодействия через интерфейс к GVFS и Tkinter для GUI, и записано в Python 2.7. Это поддерживает многострочные аннотации. GUI похож на это:

GUI for script

предпосылки необходимо установить tkinter:

sudo apt-get install python-tk

использовать

Сохраните код как файл с помощью любимого редактора в известном месте папки - например, /home/[home-folder-name]/scripts/notesscript

Затем - если Вы используете naultilus-действия, используйте команду:

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

Код:

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])
5
ответ дан 13 April 2017 в 15:24

Я немного изменил ваше решение. Это было объединено в "дополнительные действия nautilus". В следующем выпуске пакет будет называться: nautilus-notes.

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: