Как установить эмблемы в Thunar без графического интерфейса?

Я хотел бы добавить эмблемы в файл в Thunar, используя скрипт, но я не могу найти никакой документации по этому вопросу.

Возможно ли это сделать? И если да, то как?

Тот же вопрос был задан здесь , но они упоминают файл ~/.cache/Thunar/metafile.tdb, которого нет в моей системе. Я думаю, что этот вопрос и ответ устарели.

9
задан 13 April 2017 в 15:23

1 ответ

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

Источники:

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: