web-dev-qa-db-ja.com

GUIなしでThunarにエンブレムを設定するにはどうすればよいですか?

スクリプトを使用してThunarのファイルにエンブレムを追加したいのですが、これに関するドキュメントが見つかりません。

これを行うことは可能ですか?もしそうなら、どのように?

同じ質問が尋ねられました here ですが、彼らは私のシステムには存在しない~/.cache/Thunar/metafile.tdbファイルに言及しています。その質問と答えは時代遅れだと思います。

9
Remco Haszing

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 $@  

ソース:

13
Seth