Як встановити емблеми в Thunar без GUI?


9

Я хотів би додати емблеми до файлу в Thunar за допомогою сценарію, але я не можу знайти жодної документації на це.

Чи можна це зробити? А якщо так, то як?

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


Ви впевнені, що його не існує? ~/.cacheце прихований файл , який ви знаєте ..
Сет

~/.cache/Thunar/навіть не існує. Навіть після додавання емблеми до файлу в Thunar. У мене встановлена ​​версія Thunar 1.6.3.
Ремко Хашинг

Відповіді:


13

Thunar, починаючи з версії 1.6, почав використовувати демон-метадані gvfs для зберігання метаданих. Метадані зберігаються в ~/.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 $@  

Джерела:


@ RemcoHaszing Будь ласка, перевірте мою відредаговану відповідь, я зробив помилку і тепер її виправили.
Сет

Мені хотілося знати, тому що я хотів написати сценарій, який встановлює емблеми, щоб вказати статус моїх папок Dropbox. Я дізнався, що мені потрібно перезапустити Thunar, щоб побачити щойно додані емблеми та прочитати це згодом у вашій оновленій відповіді. Чи знаєте ви, чи може Thunar підібрати ці зміни під час запуску?
Ремко Хашинг

@RemcoHaszing Ні, це дійсно неможливо AFAIK. Тунару доведеться постійно проводити опитування щодо змін, що потребує значних ресурсів. Я міг би відредагувати сценарій, щоб закрити всі запущені екземпляри Thunar і відкрити новий екземпляр у ваших папках Dropbox, залежно від того, що саме ви намагаєтеся зробити.
Сет

Дуже приємний сценарій та команда. Це прекрасно працює з файлами та каталогами. Однак моя папка Dropbox - це її власний розділ / dev / sda2, але вона монтується у ~ / Dropbox. Я спробував встановити емблему для ~ / Dropbox, але це не спрацювало. Будь-які ідеї? Дякую
jbrock

@jbrock Ви перезапустили файловий менеджер? Зміни не зачіпають її, доки її не перезапустять. Якщо це не вирішить це, я боюся, що я не знаю. Ви можете спробувати задати нове запитання. Я хотів би допомогти, але в даний час мені бракує ресурсів для перевірки цього конкретного питання. Вибачте!
Сет
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.