スクリプトを使用してThunarのファイルにエンブレムを追加したいのですが、これに関するドキュメントが見つかりません。
これを行うことは可能ですか?もしそうなら、どのように?
同じ質問が尋ねられました here ですが、彼らは私のシステムには存在しない~/.cache/Thunar/metafile.tdb
ファイルに言及しています。その質問と答えは時代遅れだと思います。
Thunarはバージョン1.6以降、gvfs-metadataデーモンを使用してメタデータを保存し始めました。メタデータは~/.local/share/gvfs-metadata
に保存されますが、ファイルから読み取ることはできません(それは バイナリ形式で保存されている と思います)。メタデータを読み取るには、次のようなgvfs-info
コマンドを使用します。
gvfs-info -a metadata:: /some/location
/some/location
のメタデータが出力されます。
メタデータを変更する場合は、次のようにgvfs-set-attribute
コマンドを使用できます。
gvfs-set-attribute /some/location -t stringv metadata::mdtype value
/some/location
はメタデータを編集するファイル/フォルダーの場所です。-t stringv
はコマンドに文字列入力を期待するように指示します。mdtype
は変更するメタデータのタイプを設定します(例:emblems
)およびnew value
は、value
のメタデータとしてmdtype
を設定します。例えば:
gvfs-set-attribute Downloads -t stringv metadata::emblems emblem-default
Downloads
フォルダーにdefault
エンブレムを与えます。
エンブレムを削除するには、値をnone
に設定します。変更を確認するには、ファイルマネージャーを再起動する必要があります。
一度に複数のフォルダー/ファイルのエンブレムを変更できる小さなスクリプトを作成しました。
run() {
cd # make sure we're in the home directory
echo 'What emblem do you want to apply?'
read emblem
if ! [ -z $emblem ]; then
for i in $@
do
echo 'Changing stuff...'
$(gvfs-set-attribute $i -t stringv metadata::emblems $emblem)
done
echo 'Done!'
else
echo 'Emblem must be specified! Exiting...'
exit
fi
}
init() {
if [[ -z $@ ]]; then
echo "No arguments provided"
else
run $@
fi
}
init $@