Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]

2.9 Icon Themes

2.9.1 Introduction

Icon themes as defined in the Freedesktop Icon Theme Specification (https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html) can contain icon-theme metainfo files to be installed by software centers. This metainfo specification describes how metadata for icon themes should be structured.

Icon theme packages can ship one or more files in /usr/share/metainfo/%{id}.metainfo.xml.

Icon theme metadata files can – just like all other metainfo files – be translated. See the section about translation for more information.

2.9.2 Example file

A minimal icon theme metainfo file can look like this:

<?xml version="1.0" encoding="utf-8"?>
<component type="icon-theme">
  <id>io.git.PapirusIconTheme</id>
  <metadata_license>FSFAP</metadata_license>
  <project_license>GPL-3.0</project_license>

  <name>Papirus</name>
  <summary>A free and open source icon theme for Linux, based on the Paper Icon Set</summary>
  <description>
    <p>
      Papirus is a free and open source SVG icon theme for Linux, based on Paper Icon Set
      with a lot of new icons and a few extras, like Hardcode-Tray support, KDE colorscheme
      support, Folder Color support, and others.
      It is available in four variants:
    </p>
    <ul>
      <li>Papirus</li>
      <li>Papirus Dark</li>
      <li>Papirus Light</li>
      <li>ePapirus (for elementary OS and Pantheon Desktop)</li>
    </ul>
  </description>

  <screenshots>
    <screenshot type="default">
      <image type="source">https://raw.githubusercontent.com/PapirusDevelopmentTeam/papirus-icon-theme/master/preview.png</image>
    </screenshot>
  </screenshots>
</component>

2.9.3 File specification

Note that the XML root must have the type property set to icon-theme. This clearly identifies this metainfo document as describing an icon theme following the Freedesktop specification.

A new metainfo file is required for each variant of the icon theme (one for each index.theme) to describe the individual icon themes and allow them to be installed individually. That is, unless all the different theme variants are designed to be installed together (due to symbolic links between themes or Inherits fields in the theme description), in which case only one icon-theme component is required to describe the whole icon theme set.

<id/>

For fonts, the %{id} must follow the reverse-DNS scheme as described for generic components.

<metadata_license/>

The <metadata_license/> tag is required. See <metadata_license/> for a description of this tag.

<name/>

Set a name for the icon theme or set of icon themes intended to be shipped in one bundle.

<summary/>

A short description of the icon theme.

<description/>

Add a long description of your icon theme.

See the generic component <description/> for a detailed description of this tag.

<screenshots/>

A screenshot to show off the icon theme.

A good example on how that may look like is the preview image of the Papirus icon theme (https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/blob/master/preview.png).

See the generic component <screenshots/> for a detailed description of this tag.

<url/>

This is a recommended tag for links of type homepage. Links of type homepage should be a link to the upstream homepage for the icon theme. See the generic component <url/> for a description of this tag.

For a component of type icon-theme, the following tags are required and must be present: <id/>, <name/>, <summary/>, <metadata_license/>.