Nautilus 3.2.1/Ubuntu 11.10では、「ファイルのプロパティ」ダイアログの「メモ」タブがなくなったようです。現在、メモ機能をどのように使用できますか?すでに作成したメモについてはどうしますか?このためのパッチまたは拡張機能はありますか、または将来修正される予定ですか? (なぜ削除されたのですか?)( メモの移植性に関する関連質問 )
これに似た質問が「 Emblems and Backgrounds 」から尋ねられましたが、私はその同じような答えを恐れています。
Gnome開発者は、これらの機能はほとんど使用されておらず、コアGUI機能としてこれを削除したコードベースを合理化するために順番に使用すると考えていました。
幸いなことに、メタデータ機能が保持されているため、同じ 端末ベースのコマンド を使用できます。
たとえば、コマンドラインからメモを追加したv11.10 nautilusのスクリーンショットです。
「修正される予定ですか」について-再び同様の答え-「エンブレム」のように-これはサードパーティがサポートしていると見なされます-つまり、コアnautilus機能ではありません。
私は誰もこの挑戦に取り組むことを知らない-だからここに私の貧しい代用品があります:
右クリックメニューオプションNotesを選択すると、修正可能なファイルのメモが表示されます。
これを行うには、 この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"
Zenityはサポートしていません 複数行エントリ -より堅牢なpythondialogタイプの実装が必要になります... my pythonスキルはこの仕事に対応していません!
@fossfreedomの回答で使用するために一緒に投げたスクリプトを次に示します。 GIOを使用してGUIのGVFSおよびTkinterにインターフェイスし、Python 2.7で記述されています。複数行の注釈をサポートしています。GUIは次のようになります。
前提条件 tkinterをインストールする必要があります:
Sudo apt-get install python-tk
使用する
お気に入りのエディターを使用して、既知のフォルダーの場所にコードをファイルとして保存します-/home/[home-folder-name]/scripts/notesscript
次に-naultilus-actionsを使用している場合、コマンドを使用します。
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 __== '__main__':
import sys
main(sys.argv[1])
ソリューションを少し変更しました。 「nautilus actions extra」に統合されました。次のリリースでは、パッケージの名前はnautilus-notesになります。
これは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