Bagaimana cara mengatur emblem di Thunar tanpa GUI?

9

Saya ingin menambahkan emblem ke file di Thunar menggunakan skrip, tetapi saya tidak dapat menemukan dokumentasi tentang ini.

Apakah mungkin melakukan ini? Dan jika demikian, bagaimana?

Pertanyaan yang sama ditanyakan di sini , tetapi mereka menyebutkan ~/.cache/Thunar/metafile.tdbfile yang tidak ada di sistem saya. Saya pikir pertanyaan itu dan jawabannya sudah ketinggalan zaman.

Remco Haszing
sumber
Apakah Anda yakin itu tidak ada? ~/.cacheadalah file tersembunyi lho ..
Seth
~/.cache/Thunar/bahkan tidak ada. Bahkan setelah menambahkan emblem ke file di Thunar. Saya memiliki Thunar versi 1.6.3 diinstal.
Remco Haszing

Jawaban:

13

Thunar, sejak versi 1.6, telah mulai menggunakan daemon gvfs-metadata untuk menyimpan metadata. Metadata disimpan ~/.local/share/gvfs-metadata, namun Anda tidak dapat membacanya dari file ( saya pikir ini disimpan dalam format biner ). Untuk membaca metadata, Anda menggunakan gvfs-infoperintah seperti ini:

gvfs-info -a metadata:: /some/location  

Yang akan mencetak metadata dari /some/location.

Jika Anda ingin mengubah metadata, Anda dapat menggunakan gvfs-set-attributeperintah seperti ini:

gvfs-set-attribute /some/location -t stringv metadata::mdtype value  

/some/locationadalah lokasi file / folder yang metadata-nya ingin Anda edit, -t stringvmemberi tahu perintah untuk mengharapkan input string, mdtypemenetapkan tipe metadata yang ingin Anda ubah (mis. emblems) dan new valuemenetapkan valuesebagai metadata untuk mdtype. Sebagai contoh:

gvfs-set-attribute Downloads -t stringv metadata::emblems emblem-default  

Memberikan Downloadsfolder defaultemblem.

Tetapkan nilai noneuntuk menghapus emblem. Anda harus memulai kembali manajer file untuk melihat perubahannya.


Saya menulis sebuah skrip kecil yang memungkinkan Anda untuk mengubah lambang lebih dari satu folder / file sekaligus:

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

Sumber:

Seth
sumber
@RemcoHaszing Silakan periksa jawaban yang diedit, saya membuat kesalahan dan sekarang telah memperbaikinya.
Seth
Saya ingin tahu, karena saya ingin menulis skrip yang mengatur emblem untuk menunjukkan status folder Dropbox saya. Saya menemukan bahwa saya harus memulai ulang Thunar untuk melihat lambang yang baru ditambahkan dan membacanya setelah itu dalam jawaban Anda yang diperbarui. Apakah Anda tahu apakah Thunar dapat mengambil perubahan ini saat berjalan entah bagaimana?
Remco Haszing
@RemcoMemiliki Tidak, itu benar-benar tidak mungkin AFAIK. Thunar harus terus-menerus melakukan jajak pendapat untuk perubahan dan itu akan membutuhkan banyak sumber daya. Saya bisa mengedit skrip untuk menutup semua instance Thunar yang sedang berjalan dan membuka instance baru di folder Dropbox Anda, tergantung pada apa yang sebenarnya Anda coba lakukan.
Seth
Script dan perintah yang sangat bagus. Ini berfungsi sempurna pada file dan direktori. Namun, folder Dropbox saya adalah partisi / dev / sda2 sendiri tetapi mount di ~ / Dropbox. Saya mencoba mengatur lambang untuk ~ / Dropbox tetapi tidak berhasil. Ada ide? Terima kasih
jbrock
@ jbrock Apakah Anda memulai ulang manajer file? Perubahan tidak berpengaruh hingga dimulai ulang. Jika itu tidak menyelesaikannya maka saya khawatir saya tidak tahu. Anda dapat mencoba mengajukan pertanyaan baru. Saya ingin sekali membantu, tetapi saat ini saya kekurangan sumber daya untuk menguji masalah khusus ini. Maaf!
Seth