如何以编程方式更改文件的图标?


16

如果我在Nautilus中选择一个图标并选择“属性”,则可以单击那里显示的图标。这给了我一个文件选择器对话框来选择一个新的图标图像。

我想通过某种脚本来执行此操作,以便可以一次将同一图标分配给多个文件。或获取图标列表和文件列表,并将它们彼此分配。

有什么办法可以做到这一点?bash或Python中的工具会很棒,但是我会尽力而为。

请注意:

  • 我不是在问如何更改文件类型的图标。
  • 我不是问如何更改启动器上的图标。

在此处输入图片说明

Answers:


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

最后,在bash之类的“ F5”中使用命令 xte 到“ sendkey 进行刷新。.
一个小例子是:

#!/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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.