¿Cómo configuro emblemas en Thunar sin la GUI?

9

Me gustaría agregar emblemas a un archivo en Thunar usando un script, pero no puedo encontrar ninguna documentación al respecto.

¿Es posible hacer esto? Y si es así, ¿cómo?

Aquí se hizo la misma pregunta , pero mencionan un ~/.cache/Thunar/metafile.tdbarchivo que no existe en mi sistema. Creo que esa pregunta y la respuesta están desactualizadas.

Remco Haszing
fuente
¿Estás seguro de que no existe? ~/.cachees un archivo oculto que sabes ...
Seth
~/.cache/Thunar/Ni siquiera existe. Ni siquiera después de agregar un emblema a un archivo en Thunar. Tengo instalada la versión 1.6.3 de Thunar.
Remco Haszing

Respuestas:

13

Thunar, desde la versión 1.6, ha comenzado a usar el demonio gvfs-metadata para almacenar metadatos. Los metadatos se almacenan en ~/.local/share/gvfs-metadata, sin embargo, no puede leerlos de los archivos ( creo que está almacenado en algún formato binario ). Para leer metadatos, use el gvfs-infocomando de esta manera:

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

Que imprimirá los metadatos de /some/location.

Si desea cambiar los metadatos, puede usar el gvfs-set-attributecomando de esta manera:

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

/some/locationes la ubicación del archivo / carpeta cuyos metadatos desea editar, -t stringvle dice al comando que espere la entrada de cadena, mdtypeestablece el tipo de metadatos que desea cambiar (por ejemplo emblems) y new valueestablece valuecomo metadatos mdtype. Por ejemplo:

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

Da a la Downloadscarpeta el defaultemblema.

Establezca el valor en nonepara eliminar emblemas. Deberá reiniciar el administrador de archivos para ver los cambios.


Escribí un pequeño script que le permite cambiar el emblema de más de una carpeta / archivo a la 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 $@  

Fuentes:

Seth
fuente
@RemcoHaszing Por favor revise mi respuesta editada, cometí un error y ahora lo he corregido.
Seth
Quería saberlo porque quería escribir un script que establezca los emblemas para indicar el estado de mis carpetas de Dropbox. Descubrí que tengo que reiniciar Thunar para ver los emblemas recién agregados y leer esto después en su respuesta actualizada. ¿Sabes si Thunar puede detectar estos cambios mientras se ejecuta de alguna manera?
Remco Haszing
@RemcoHaszing No, eso realmente no es posible AFAIK. Thunar tendría que sondear continuamente los cambios y eso requeriría muchos recursos. Podría editar el script para cerrar todas las instancias en ejecución de Thunar y abrir una nueva instancia en sus carpetas de Dropbox, dependiendo de qué es exactamente lo que está tratando de hacer.
Seth
Muy buen guión y comando. Esto funciona perfectamente en archivos y directorios. Sin embargo, mi carpeta de Dropbox es su propia partición / dev / sda2 pero se monta en ~ / Dropbox. Intenté configurar el emblema para ~ / Dropbox pero no funcionó. ¿Algunas ideas? Gracias
jbrock
@jbrock ¿Reinició el administrador de archivos? Los cambios no surten efecto hasta que se reinicie. Si eso no lo resuelve, me temo que no lo sé. Podrías intentar hacer una nueva pregunta. Me encantaría ayudar, pero actualmente no tengo los recursos para probar este problema específico. ¡Lo siento!
Seth