Nautilus 3.2.1/Ubuntu 11.10 では、「ファイル プロパティ」ダイアログの「メモ」タブがなくなったようです。メモ機能はどのように使用すればいいのでしょうか? すでに作成したメモはどうすればよいのでしょうか? これに対するパッチや拡張機能はありますか? または、将来的に修正される予定ですか? (なぜ削除されたのですか?) (ノートの移植性に関する関連質問。)
答え1
以下は、@fossfreedom の回答で使用するために私がまとめたスクリプトです。GIO を使用して GVFS とインターフェイスし、GUI には 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 のスクリーンショットです。
「修正される予定はありますか」という質問に対しても、やはり「エンブレム」と同様に、サードパーティのサポート対象であると見なされます。つまり、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"
Zenityはサポートしていません複数行入力- より堅牢なpythonダイアログ型の実装が必要になります...ただし、私の Python スキルはこの仕事には不十分です。
答え3
あなたのソリューションを少し変更しました。それは「nautilus actions extra」に統合されました。次のリリースでは、パッケージの名前は nautilus-notes になります。
答え4
以下は、nautilus-scripts で使用するための私のスクリプトです (かなり大雑把です - 1000000 行に制限されています。私はプログラマーではありません)。
作成する必要があります~/.gnome2/nautilus-スクリプトファイル(例: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