Я хотел бы добавить эмблемы в файл в Thunar, используя скрипт, но я не могу найти никакой документации по этому вопросу.
Возможно ли это сделать? И если да, то как?
Тот же вопрос был задан здесь , но они упоминают файл ~/.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 $@