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

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

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

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

Обратите внимание:

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

enter image description here

22
задан 16 November 2012 в 01:03

3 ответа


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

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"  

Надеюсь, это будет полезно для вас.

27
ответ дан 16 November 2012 в 01:03

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

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

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

Джо

3
ответ дан 16 November 2012 в 01:03

gio (gnome> 3.xx)

Поскольку инструменты gvfs устарели, вам следует использовать вместо них gio !

Команды очень похожи на описанные выше.

Например, если вы хотите получить информацию о наборе значков, используйте

gio info ~/path/to/your/dir/or/folder | awk '{/custom-icon/ print $2}' | cut -c8-

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

gio set -t string /path/to/your/dir/or/folder metadata::custom-icon file:///path/to/your/icon.svg
3
ответ дан 5 January 2021 в 23:32

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

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