Nautilus 3.2.1/Ubuntu 11.10에서는 "파일 속성" 대화 상자의 "메모" 탭이 사라진 것 같습니다. 이제 메모 기능을 어떻게 사용할 수 있나요? 이미 작성한 메모는 어떻게 하시나요? 이에 대한 패치나 확장이 있습니까? 아니면 향후에 수정될 예정입니까? (왜 삭제됐나요?) (노트 이동성에 관한 질문입니다.)
답변1
@fossfreedom의 답변과 함께 사용하기 위해 함께 던진 스크립트는 다음과 같습니다. GIO를 사용하여 GUI용 GVFS 및 Tkinter에 인터페이스하고 Python 2.7로 작성되었습니다. 여러 줄 주석을 지원합니다. 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