Como defino os emblemas no Thunar sem a GUI?

9

Eu gostaria de adicionar emblemas a um arquivo no Thunar usando um script, mas não consigo encontrar nenhuma documentação sobre isso.

É possível fazer isso? E se sim, como?

A mesma pergunta foi feita aqui , mas eles mencionam um ~/.cache/Thunar/metafile.tdb arquivo que não existe no meu sistema. Eu acho que essa pergunta e a resposta estão desatualizadas.

    
por Remco Haszing 21.01.2014 / 15:08

1 resposta

12

O Thunar, desde a versão 1.6, começou a usar o daemon gvfs-metadata para armazenar metadados. Os metadados são armazenados em ~/.local/share/gvfs-metadata , mas você não pode lê-los nos arquivos (é armazenado em algum formato binário eu acho). Para ler os metadados, use o comando gvfs-info da seguinte forma:

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

Que imprimirá os metadados de /some/location .

Se você quiser alterar os metadados, use o comando gvfs-set-attribute da seguinte forma:

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

/some/location é o local do arquivo / pasta cujos metadados você deseja editar, -t stringv indica ao comando que espera a entrada da string, mdtype define o tipo de metadados que você deseja alterar (por exemplo, emblems ) e new value define value como os metadados de mdtype . Por exemplo:

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

Concede à pasta Downloads o emblema default .

Defina o valor para none para remover emblemas. Você terá que reiniciar o gerenciador de arquivos para ver as alterações.

Eu escrevi um pequeno script que permite alterar o emblema de mais de uma pasta / arquivo por vez:

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

Fontes:

por Seth 22.01.2014 / 02:20

Tags