Jump to content Jump to page navigation: previous page [access key p]/next page [access key n]
AppStream
AppStream › Upstream Metadata › Icon Themes
AppStream › Upstream Metadata › Icon Themes
Top
←→

## 2.9 Icon Themes #

### 2.9.1 Introduction #

Icon themes as defined in the Freedesktop Icon Theme Specification (https://specifications.freedesktop.org/icon-theme-spec/latest/) 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/>.