如果我在 Nautilus 中选择一个图标并选择“属性”,我可以单击那里显示的图标。这将给我一个文件选择器对话框来选择一个新的图标图像。
我想通过某种脚本来实现这一点,这样我就可以同时将同一个图标分配给多个文件。或者获取图标列表和文件列表并将它们相互分配。
有什么方法可以实现这个吗?用 bash 或 Python 实现会很好,但我会尽力而为。
请注意:
- 我并不是问如何更改文件类型的图标。
- 我并不是问如何更改启动器上的图标。
答案1
要从命令行更改这些图标,您可以使用以下命令:
gvfs-set-attribute -t string /path/to/your/file metadata::custom-icon file:///path/to/your/icon.png
您可以根据需要在 bash 脚本中使用此命令。
如果运行该命令但图标没有立即改变,则可以安装自动化包装内容:
sudo apt-get install xautomation
最后,使用命令“xte”在 bash 中“sendkey”类似“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"
我希望这对你有用。
答案2
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
Roman 的答案看起来很理想。还有另一种不太优雅的方法。我不确定图标在系统其余部分的位置,但桌面上的图标只是 $HOME/Desktop 中的小型纯文本文件。它们通常(但不必)具有 .desktop 扩展名。这些文件中的字段之一是 Icon=...。您可以使用程序将该字段的设置更改为您选择的值。(您可能必须按照 Roman 的建议在执行此操作后进行刷新。)
当我想将图标用于其他内容或其他系统时,我有时会查看这些 .desktop 文件来查找正在使用的图标的名称。
这些文件的规格位于: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec
乔