gio(gnome > 3.xx)

gio(gnome > 3.xx)

如果我在 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

相关内容