Как я могу программно изменить значок файла?

16

Если я выберу значок в Nautilus и выберу Свойства, я могу нажать на значок, представленный там. Это дает мне диалог выбора файла, чтобы выбрать новое изображение значка.

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

Есть ли способ, которым я могу сделать это? Что-то в bash или Python было бы здорово, но я возьму то, что смогу получить.

Пожалуйста, обратите внимание:

  • Я не спрашиваю, как изменить значок для типа файла.
  • Я не спрашиваю, как изменить значок на панели запуска.

введите описание изображения здесь

Крис Харпер
источник

Ответы:

25


Чтобы изменить эти значки из командной строки, вы можете использовать следующую команду:

gvfs-set-attribute -t string /path/to/your/file metadata::custom-icon file:///path/to/your/icon.png

Вы можете использовать эту команду в скрипте bash в соответствии с вашими потребностями.

Если вы запустите команду и значок не изменится сразу, вы можете установить пакет xautomation с помощью:

sudo apt-get install xautomation

И, наконец, используйте команду "xte" для "sendkey" в bash, например "F5", чтобы обновить ..
Небольшой пример:

#!/bin/bash
gvfs-set-attribute -t string /home/hermes/testicon metadata::custom-icon file:///home/hermes/Desktop/applet_blank.png
sleep 3
xte "key F5"  

Я надеюсь, что это полезно для вас.

Роман Рагет
источник
3

Ответ Романа выглядит идеально. Есть еще один менее изящный способ. Я не уверен, где находятся значки в остальной части системы, но значки на вашем рабочем столе - это просто небольшие текстовые файлы в $ HOME / Desktop. Они обычно (но не обязаны) имеют расширение .desktop. Одно из полей в этих файлах - Icon = .... Вы можете использовать программу, чтобы изменить любое значение этого поля на выбранное вами значение. (Возможно, вам придется обновить после того, как это делает Роман.)

Когда я хочу использовать значок для чего-то другого или в другой системе, я иногда заглядываю в эти файлы .desktop, чтобы узнать, как называется используемый значок.

Спецификации для этих файлов находятся по адресу: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

Джо

Джо
источник