如何更改特定文件类型的图标?


41

我正在尝试更改application/x-hwp文件图标。我已经将图标添加到适当的位置,并使用assoGiate进行了检查(阅读此线程之后)。它表明我所需的图标与文件类型相关联。尽管如此,鹦鹉螺仍在显示旧图标。如何使Nautilus显示正确的图标?



@Rinzwind:谢谢。不幸的是,该链接解决了另一个问题。它基于更改单个文件的图标。我想更改给定类型的所有文件的默认图标。
Scott Severance

您是否正在使用自定义图标主题?这可能会干扰应该显示的图标。
RBurgundy 2011年

我正在使用股票氛围主题。无论如何,都没关系,因为据我所知,没有图标主题涵盖此文件类型。我只是得到Nautilus不知道要显示什么其他图标时默认显示的图标。此外,图标主题是分层的,因此,如果在当前主题中找不到合适的图标,则会搜索层次结构,最终以hicolor主题达到高潮。我的图标同时安装在ubuntu0mono-dark和hicolor主题中。
Scott Severance

Answers:


22

这是一组说明,应该为您提供hwp文件的自定义图标。

打开一个终端:

  • 检查MIME类型是否存在: grep 'hwp' /etc/mime.types

    如果输出类似,请application/x-hwp hwp跳过下一步。

  • 创建MIME类型sudo -H gedit /etc/mime.types并添加行application/x-hwp hwp

  • 添加图标(必须称为application-x-hwp.svg

    sudo cp PathToIcon/application-x-hwp.svg /usr/share/icons/gnome/scalable/mimetypes
    

    (不要忘记替换PathToIcon)

这里获得信息


谢谢你的建议。我还没有机会进行彻底的尝试(到目前为止,没有成功),但是我之所以能获得赏金,是因为其他建议没有奏效,而且我之前也没有机会再进行尝试赏金到期。
Scott Severance

您也许应该检查您的图标主题是否继承自gnome(大多数图标主题都继承了)。您可以在图标集目录中的index.theme中找到该信息
danjjl 2011年

您还需要检查~/.local。例如~/.local/share,模仿文件夹/usr/local/share。您本地安装的应用程序(即仅适用于您的应用程序,而不是其他登录名)可能在此处具有其属性。编辑类似的文件,例如~/.local/share/icons/XXXX/XXXX
Robin Hsu

@danjjl:您是什么意思(别忘了替换PathToIcon)?
JoKalliauer

1
@JoKalliauer在命令中将图标复制到/usr/share/... 。我指的是PathToIcon。这需要替换为PC上图标的路径。(如果您认为可以更明确地表述这一点,请不要犹豫提出修改)
danjjl

14

主要技巧是正确找出实际图标的位置。
为了确定这一点,让我们分析一下HTML图标。图标的命名约定与MIME类型的命名约定相同,仅/被替换为-,不允许使用大写字母。也就是说,例如MIME类型text/x-changelog将具有名为text-x-changelog.svg(或png)的图标。HTML的MIME类型为text/html。所以它的图标是text-html.*如果我们运行命令

find /usr/share/icons/ -type f | grep 'text-html\.'

我们将在几个位置放置这些图标:

/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/

如果我们使用Nautilus对其进行访问,我们将看到,该Humanity/文件夹包含我们当前的图标gnome/-一些较旧的图标。HighContrast/对我们不感兴趣。因此,为了更改某些图标,我们应该替换Humanity/文件夹中的图标。
还要注意,text-html.svg可缩放的图标和应该放置在scalable子文件夹中的图标(应该是逻辑的)以与光栅PNG文件相同的方式放置在不同大小的文件夹中。

用所需的图标替换图标(在所有子文件夹中,根据其大小)后,应更新图标缓存:

sudo gtk-update-icon-cache /usr/share/icons/Humanity

而已。

确定图标方案优先级的另一种方法是检查其index.theme文件。如果我们向里看/usr/share/icons/Humanity/index.theme,我们会看到:

Inherits=gnome,hicolor

这意味着和中的图标优先于gnome和中的hicolor文件夹Humanity。这在这里解释。
奇怪的是,鹦鹉螺没有遵守这些继承规则。当我添加新的MIME类型,我试图把它的图标为/usr/share/icons/gnome//usr/share/icons/hicolor~/.local/share/icons/hicolor,更新图标数据库上的每一个步骤-一切都是徒劳。这些图标正确显示在assogiate第一个选项卡上,但从未显示在Nautilus中。但是,当我将它们放入Humanity文件夹并更新了图标数据库时,它们立即出现了。

注意:所有这些都适用于默认图标主题。如果使用某些自定义图标主题,则应检查实际图标的位置,然后在其中添加/更改图标。同样,在较新的发行版中,这些继承规则可能会更改。然后,您应该Humanity按照前面的说明找到存储实际图标(如果不再存在)的新文件夹。


您还需要检查~/.local。例如~/.local/share,模仿文件夹/usr/local/share。您本地安装的应用程序(即仅适用于您的应用程序,而不是其他登录名)可能在此处具有其属性。编辑类似的文件,例如~/.local/share/icons/XXXX/XXXX
Robin Hsu

0

我希望您尝试注销并登录以刷新图标缓存。

另请参阅您的图标是否具有适当的大小(用于在Nautilus中显示文件类型的图标)。

您可能还会错过跑步gtk-update-icon-cache

试试本教程:http : //swik.net/Ubuntu/Only+Ubuntu/How+To+Change+文件类型+(mimetype)+ Icons + in + Ubuntu / chcrf

尝试手动创建icon.theme,这是我来自awn的一个示例:

[Icon Theme]
Name=awn-theme

Directories=scalable

[scalable]
Size=48
MaxSize=256
Context=Apps
Type=Scalable

手册在这里:http : //live.gnome.org/GnomeArt/Tutorials/IconThemes


我已经安装了一个48x48的图标,并将Nautilus设置为100%,它使用的是48x48。没有骰子。重新登录没有区别。跑步gtk-update-icon-cache无效。
Scott Severance

我更新了答案,对您有帮助吗?
克里斯·哈森斯基(ChrisHasiński)2011年

我没有手动创建图标主题,因为我不想使用新主题。我只希望图标进入hicolor主题,因为这是所有图标主题的基础。创建一个新主题将失败我的目的。
Scott Severance

-2

1)

 sudo apt-get install assogiate

遵循本教程,并附带精美图片

http://lordamit.blogspot.com/2010/07/change-file-type-icons-mime-type-icons.html


2)

如果未正确检测到文件类型,或显示的文件类型不正确,请找到您的文件类型以识别字符

例如:rar转到http://filext.com/file-extension/rar

标识符“十六进制:52 61 72 21 1A 07 00,ASCII:Rar!”

在bless或任何十六进制编辑器中打开文件,然后找到标识符和偏移量(您的关键字开始处)

在我们的例子中,它的第一个位因此偏移量为“ 0”。

然后转到“文件类型编辑器”进行编辑或创建一个新项目,然后选择“编辑”并在文件内容下

从下拉列表中选择“字符串”,输入“ Rar!” 并将偏移量设置为“ 0”。

完成了


3
正如我在原始问题中指出的那样,关联不起作用。
Scott Severance
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.