xdg-utils
---------

    The xdg-utils package is a set of simple scripts that provide
basic desktop integration functions for any Free Desktop, such as Linux.

    They are intended to provide a set of defacto standards.  This
means that:
    *  Third party software developers can rely on these xdg-utils
       for all of their simple integration needs.

    *  Developers of desktop environments can make sure that their
       environments are well supported

       If a desktop developer wants to be certain that their environment
       functions with all third party software, then can simply
       make sure that these utilities work properly in their environment.

       This will hopefully mean that 'third tier' window managers
       such as XFCE and Blackbox can reach full parity with Gnome and KDE
       in terms of third party ISV support.

    *  Distribution vendors can provide custom versions of these utilities

       If a distribution vendor wishes to have unusual systems,
       they can provide custom scripts, and the third party software
       should still continue to work.


OVERVIEW:
---------

    The following tools are included in xdg-utils 1.0:

xdg-desktop-menu	Install desktop menu items
xdg-desktop-icon	Install icons to the desktop
xdg-icon-resource	Install icon resources
xdg-mime		Query information about file type handling and
			install descriptions for new file types
xdg-open		Open a file or URL in the user's preferred application
xdg-email		Send mail using the user's preferred e-mail composer
xdg-screensaver		Control the screensaver


BUILD:
------

    Building is not required, all tools are located in the
scripts/ subdirectory and are ready to be used.

    You can optionally choose to install the scripts
to a target directory.  To do this, you could issue
the following commands:
         ./configure [--prefix=<your-place-here>]
        make install
that would cause the scripts to be installed to
  <your-place-here>/bin


USE:
----

    Although we expect that these scripts will generally come as part
of the operating system, we recommend that you package the scripts
that your application needs along with your product as a fallback. For
this purpose please obtain the original version of the xdg-utils from
http://portland.freedesktop.org. The xdg-utils scripts that are
distributed by operating systems vendors may have been tuned for their
particular operating system and may not work on the same broad variety
of operating systems as the original version.

    We recommend that you place these scripts in a directory, and
then add that directory to the end of the PATH.  So, let's say that
you're writing your post installation script, and you want to create
a menu on any xdg-util compliant environment.  Let's further assume
that you've just installed to $INSTALL_DIR, and that your menu
desktop file is in $INSTALL_DIR/desktop/icon.desktop.  Finally, let's
say that you've included the xdg-utils package in your installation
in $INSTALL_DIR/xdg-utils.

    Then a simple post install script could look like this:

        export PATH=$PATH:$INSTALL_DIR/xdg-utils
        xdg-desktop-menu install $INSTALL_DIR/mycompany-myapp.desktop

    And now your product has a menu on any XDG compliant desktop!

Note that we strongly recommend using this method - that is,
putting your copy of the xdg-utils at the end of the path,
and then invoking them without a specific path name.

That will allow your users and their system providers to
use custom versions of the xdg-utils to adjust for system spsecific
differences.

If you wish to absolutely force the issue and only use the versions
you shipped, you could instead hard code the path to the version
you bundle with your application.  We strongly recommend against
this, as it will make your product obsolete more quickly than is
necessary.
