노틸러스 3.2.1에서 파일 노트 탭이 사라졌습니다.

노틸러스 3.2.1에서 파일 노트 탭이 사라졌습니다.

Nautilus 3.2.1/Ubuntu 11.10에서는 "파일 속성" 대화 상자의 "메모" 탭이 사라진 것 같습니다. 이제 메모 기능을 어떻게 사용할 수 있나요? 이미 작성한 메모는 어떻게 하시나요? 이에 대한 패치나 확장이 있습니까? 아니면 향후에 수정될 예정입니까? (왜 삭제됐나요?) (노트 이동성에 관한 질문입니다.)

답변1

@fossfreedom의 답변과 함께 사용하기 위해 함께 던진 스크립트는 다음과 같습니다. GIO를 사용하여 GUI용 GVFS 및 Tkinter에 인터페이스하고 Python 2.7로 작성되었습니다. 여러 줄 주석을 지원합니다. GUI는 다음과 같습니다:

스크립트용 GUI

전제조건 tkinter를 설치해야 합니다:

sudo apt-get install python-tk

사용

즐겨 사용하는 편집기를 사용하여 알려진 폴더 위치에 코드를 파일로 저장합니다. 예를 들어/home/[home-folder-name]/scripts/notesscript

그런 다음 - 사용하는 경우노틸러스-작업, 다음 명령을 사용하십시오.

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

답변2

이와 비슷한 질문이 "에서 요청되었습니다.엠블럼과 배경"라고 물어보니 비슷한 대답인 것 같아요.

Gnome 개발자는 이러한 기능이 거의 사용되지 않는다고 생각했으며 코드베이스를 간소화하기 위해 핵심 GUI 기능에서 이를 제거했습니다.

다행히도 같은터미널 기반 명령메타데이터 기능이 유지되었으므로 사용할 수 있습니다.

예를 들어, 다음은 명령줄을 통해 메모가 추가된 v11.10 nautilus 스크린샷입니다.

여기에 이미지 설명을 입력하세요

"고칠 계획이 있습니까?"("엠블럼"과 같은 유사한 대답)에 대해서는 이는 타사에서 지원하는 것으로 간주됩니다. 즉, 핵심 노틸러스 기능이 아닙니다.

나는 이 도전을 받아들이기로 결정한 사람을 알지 못합니다. 그래서 여기에 나의 불쌍한 대안이 있습니다:

여기에 이미지 설명을 입력하세요

마우스 오른쪽 버튼 클릭 메뉴 옵션 선택노트수정할 수 있는 파일에 대한 메모를 표시합니다.

여기에 이미지 설명을 입력하세요

이를 위해 나는 내이 Q&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"

제니티는 지원하지 않습니다여러 줄 입력- 더 견고한파이썬 대화유형 구현이 필요합니다... 하지만 내 Python 기술은 이 작업을 수행할 수 없습니다!

답변3

귀하의 솔루션을 약간 수정했습니다. "nautilus actions extra"로 병합되었습니다. 다음 릴리스에서는 패키지 이름이 nautilus-notes로 지정됩니다.

답변4

다음은 노틸러스 스크립트와 함께 사용하기 위한 스크립트입니다(다소 다소 거칠지만 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

관련 정보