了解 Gnome 各种图标

了解 Gnome 各种图标

问题是关于自定义图标显示的方式

  1. 桌面外壳
  2. 通知区
  3. 文件关联

    [Desktop Entry]
    Version=1.0
    Type=Application
    Name=Mathematica 9
    Comment=Technical Computing System
    Exec=/usr/local/Wolfram/Mathematica/9.0/Executables/Mathematica %F
    Icon=wolfram-mathematica
    MimeType=application/mathematica;application/vnd.wolfram.cdf
    Categories=Education
    

现在,如果我可以制作一个自定义桌面文件,我可以将 png 文件位置放置在图标上...但是上面的桌面文件为什么引用一个图标以及该图标在哪里(wolfram-mathematica)?

其次,如何在系统范围内更改特殊文件类型的图标,例如将 docx 更改为其他文件 在此输入图像描述

第三个也是最后一个 gnome 如何加载托盘图标以及这些图标存储在哪里,例如我想将自动键托盘图标自定义为其他东西我该怎么做?也查看过 /usr/share/pixmaps 但无济于事

在此输入图像描述

答案1

首先,桌面文件又名“启动器”(应该)遵守免费桌面规格。关于图标,上面的规范解释了:

在文件管理器、菜单等中显示的图标。如果名称是绝对路径,则将使用给定的文件。如果名称不是绝对路径,则使用中描述的算法图标主题规范 将用于定位图标。

算法是:

在一组目录中查找图标和主题。默认情况下,应用程序应在 $HOME/.icons (为了向后兼容)、$XDG_DATA_DIRS/icons 和 /usr/share/pixmaps (按此顺序)中查找。

...................................................... ......................

图标查找机制有两个全局设置,基本目录列表和当前主题的内部名称。鉴于这些,我们需要指定如何从图标名称和标称大小查找图标文件。

查找首先在当前主题中完成,然后在当前主题的每个父主题中递归进行,最后在名为“hicolor”的默认主题中完成(实现可能会在“hicolor”之前添加更多默认主题,但“hicolor”必须在最后) )。一旦出现与主题匹配的任意大小的图标,搜索就会停止。即使继承主题中可能存在尺寸更接近正确图标的图标,我们也不想使用它。当您更改图标大小(例如放大)时,这样做可能会导致图标发生不一致的变化。主题内的查找分三个阶段完成。首先,扫描所有目录以查找完全匹配的目录,例如,图标文件允许的大小与查找的内容相匹配的目录。然后扫描所有目录以查找与该名称匹配的任何图标。如果失败了,我们最终会求助于无主题的图标。如果我们根本找不到任何图标,则由应用程序选择一个好的后备方案,因为正确的选择取决于上下文。

如上所述,在大多数现代桌面上,图标主题位置是$XDG_DATA_DIRS/icons,即/usr/share/icons(全局)和~./local/share/icons(用户)。


其次,在系统范围内更改文件类型的图标涉及更改与该文件 mime 类型相对应的 mimetype 图标,即对于.docx文件,mime 类型为

application/vnd.openxmlformats-officedocument.wordprocessingml.document

Gnome 默认图标集没有该特定 mime 类型的图标,因此它会回退到x-office-document(完整路径为/usr/share/icons/gnome/$SIZE/mimetypes/x-office-document)。更改图标.docx意味着您必须想出一个名为的新图标(各种尺寸)

application-vnd.openxmlformats-officedocument.wordprocessingml.document.png

或替换x-office-document.png默认使用的。请注意,后者将更改与 mime 类型关联的所有文件的图标x-office-document,而不仅仅是.docx.

不建议更改图标主题,/usr/share/icons因为您的更改很可能会被未来的更新覆盖,因此最好的选择是将您最喜欢的图标主题放入其中~./local/share/icons并添加/修改您想要的任何内容。


最后,识别 Gnome 使用的托盘图标并不是一项简单的任务,请参阅询问Ubuntu。不确定它是否适用于 Gnome 3.6,因为某些 shell 部分仍在重大重新架构中,并且每个版本的代码都会更改。

相关内容