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

## 2.10 Input Methods #

### 2.10.1 Introduction #

It is a nice feature for a software center to allows users the installation of additional input methods. This meta-info specification describes how metadata about input methods should be structured.

Software components providing an input method can ship one or more files in `/usr/share/metainfo/%{id}.metainfo.xml`.

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

### 2.10.2 Example file #

The input method meta-info file should look like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <component type="inputmethod">
      <id>com.github.ibus.mathwriter-ibus.db</id>
      <metadata_license>FSFAP</metadata_license>
      <name>Mathwriter</name>
      <summary>Math symbols input method</summary>
      <description>
        <p>
          The input method is designed for entering mathematical symbols.
        </p>
        <p>
          Input methods are typing systems allowing users to input complex languages.
          They are necessary because these contain too many characters to simply be laid
          out on a traditional keyboard.
        </p>
      </description>
      <url type="homepage">https://github.com/mike-fabian/ibus-table-others</url>
    </component>

### 2.10.3 File specification #

Note that the XML root must have the `type` property set to `inputmethod`. This clearly identifies this metainfo document as describing an input method instead of a generic software component.

<id/> #

  For input methods, the `%{id}` should follow the standard reverse-domain-name scheme. For the product name part, it is recommended to take the database filename of the input method.

<metadata_license/>

  The `<metadata_license/>` tag is required. See Section 2.1, “Generic Component” for a description of this tag.

<name/>

  Set a name for your input method.

<summary/>

  A short description of the input method described in this metainfo file.

<description/>

  Add a long description of the input method.

  Do not assume the format is HTML. Only paragraph, ordered list and unordered list are supported at this time.

<screenshots/>

  A screenshot may be included, showing the input method in use in an application.

  Refer to <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 application. See See <url/> for a description of this tag.

<provides/>

  This tag is described for generic components at <provides/> in detail.

  You can add one or more children of type `<library/>` in case you publish some additional shared libraries. If not, and there are no public binaries involved, you may omit the `provides` tag for input methods.

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