Author: Daniel Leidert
Description: Homepage of the chemical-mime-data project, that tries to bring support for chemical MIME types to Linux desktops.
Keywords: chemical-mime-data, chemical MIME
Date: 2007-01-28T14:52:01+0100

# The chemical-mime-data project

The source of this project can always be found at the Sourceforge.net project page.

1. About the project
2. Copyright and license
3. Introduction to the background
4. Which MIME types are currently supported
5. Download and Installation
6. How to make use of the MIME type detection
7. What to do next

## About the project

The chemical-mime-data package is a collection of data files to add support for various chemical MIME types on Linux/UNIX desktops, such as KDE and GNOME.

Chemical MIMEs were proposed in 1995, though it seems they have never been registered with IANA. But they are widely used and the project's aim is, to support these important, but unofficial MIME types.

Initial data was taken from »The Chemical MIME Home Page« of Henry Rzepa, but this compilation is written and continuously extended by Egon Willighagen, Daniel Leidert and others (see the distributed `AUTHORS` and `THANKS` files for a list of who has contributed to this project).

## Copyright and license

Copyright © 2004-2006 Egon Willighagen.
Copyright © 2004-2007 Daniel Leidert.

> This library is free software; you can redistribute it and/or
> modify it under the terms of the GNU Lesser General Public
> License as published by the Free Software Foundation; either
> version 2.1 of the License, or (at your option) any later version.

> This library is distributed in the hope that it will be useful,
> but WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> Lesser General Public License for more details.

> You should have received a copy of the GNU Lesser General Public
> License along with this library; if not, write to:

A full copy of the GNU Lesser General Public License can be found at http://www.gnu.org/licenses/lgpl.html.

## Introduction to the background

Newer desktop systems need to know the MIME type to associate applications with it. Writers of chemical applications can, will and make use of this feature too. But there are several systems, which first need to be prepared. During the development of Jmol and CDK we came to the problem, to integrate these applications into the Linux desktop. This issue raised up the chemicalMIME project, which is the forerunner of the chemical-mime-data project.

freedesktop.org project system

  Newer GNOME and ROX desktops use the Shared MIME-info Database to determine MIMEs. We provide a file `chemical-mime-data.xml`, which has to be installed into the database at `$XDG_DATA_DIRS/mime/packages` and follows the freedesktop.org specification. After running `update-mime-database` the MIME types are registered. This should work for all systems and applications mentioned here. You will need the shared-mime-info package for your distribution.

  To associate an icon for a MIME type, the icon has to be installed into the hicolor-theme and named e.g.:

      gnome-mime-chemical-x-xyz.png
      gnome-mime-chemical-x-cml.png

  The syntax is:

      gnome-<icon-type>-<mime-media-type>-</mime-sub-type>.png

  If the icon naming scheme follows this direction, the MIME type is automatically associated with the icon.

GNOME <= 2.4

  Older GNOME desktops use the `${datadir}/mime-info` path with `.keys` and `.mime` files to determine MIME stuff. Icons are determined the same way.

KDE < 4

  KDE desktops use the `${datadir}/mimelnk` path with `.desktop` files to determine MIME stuff. Icons are determined the same way.

If you need more information, checkout the documentation section of the projects website.

## Which MIME types are currently supported

Please check the large table form you can find here. This table is also shipped with the package.

## Download and Installation

The latest release can always be found in the download section of the project's website. Make sure to also download the MD5 sum file (`.md5`) to check the files integrity. For e.g. the `.tar.gz` tarball check it with:

    md5sum -c chemical-mime-data-<version>.tar.gz.md5

To "compile" and install the package, first install:

- `intltool` (to internationalize several files)
- `gettext` (backend for `intltool`)
- `pkgconfig`
- `RSVG2` or `imagemagick` (to convert SVG into PNG for theme icons)
- `xsltproc` (to create the files from the XML database)
- `gnome-mime-data`
- `shared-mime-info` (contains the `update-mime-database` utility to update the MIME database)

Then run:

    ./configure [options you like most here] && make && make install

The last step probably needs root permissions. For a list of configure options, you should run:

    ./configure --help

## How to make use of the MIME type detection

To associate the chemical MIME types with a special application, you need to follow one of the guides:

KDE
  http://standards.freedesktop.org/desktop-entry-spec/latest/ (since version 3.3)
  http://www.kde.org/areas/sysadmin/fsh.php
  http://developer.kde.org/documentation/tutorials/dot/servicemenus.html (Desktop Actions)
GNOME
  http://standards.freedesktop.org/desktop-entry-spec/latest/ (since version 2.4)
  http://web.archive.org/web/20041024190358/http://www.gnome.org/learn/admin-guide/latest/ch05s03.html (up to version 2.4)
  http://www.gnome.org/learn/admin-guide/latest/mimetypes-registering.html
  http://www.gnome.org/learn/admin-guide/latest/menustructure-desktopentry.html
  http://www.gnome.org/learn/admin-guide/latest/mimetypes-9.html

The desktop-file-utils package contains the command-line tool `desktop-file-validate` to validate, manipulate and install `.desktop` files and to update the database, which holds information about applications and associated MIME types.

If you need more information, checkout the documentation section of the projects website.

## What to do next

For a list of things, that need to be done in the near future or for later releases, refer to `TODO`.

If you want to have an overview, which features need to be implemented or which bugs need to be fixed, check the projects tracker page.