Provided by: libfile-mimeinfo-perl_0.22-1_all bug

NAME

       File::MimeInfo::Applications - Find programs to open a file by mimetype

SYNOPSIS

         use File::MimeInfo::Magic;
         use File::MimeInfo::Applications;

         my $file = '/foo/bar';
         my $mimetype = mimetype($file)
             || die "Could not find mimetype for $file\n";

         my ($default, @other) = mime_applications($mimetype);

         if (defined $default) {
             $default->system($file)
         }
         else {
                 # prompt user with choice from @others
                 # ...
         }

DESCRIPTION

       This module tries to find applications that can open files with a certain mimetype. This
       is done in the way suggested by the freedesktop Desktop Entry specification. This module
       is intended to be compatible with file managers and other applications that implement this
       specification.

       This module depends on File::DesktopEntry being installed.

       To use this module effectively you need to have the desktop-file-utils package from
       freedesktop and run update-desktop-database after installing new .desktop files.  See
       <http://www.freedesktop.org/wiki/Software/desktop-file-utils>.

       At the moment of writing this module is compatible with the way Nautilus (Gnome) and with
       Thunar (XFCE) handle applications for mimetypes. I understand KDE is still working on
       implementing the freedesktop mime specifications but will follow. At the very least all
       perl applications using this module are using the same defaults.

EXPORT

       All methods are exported by default.

METHODS

       "mime_applications(MIMETYPE)"
           Returns an array of File::DesktopEntry objects. The first is the default application
           for this mimetype, the rest are applications that say they can handle this mimetype.

           If the first result is undefined there is no default application and it is good
           practice to ask the user which application he wants to use.

       "mime_applications_all(MIMETYPE)"
           Like "mime_applications()" but also takes into account applications that can open
           mimetypes from which MIMETYPE inherits. Parent mimetypes tell something about the data
           format, all code inherits from text/plain for example.

       "mime_applications_set_default(MIMETYPE, APPLICATION)"
           Save a default application for this mimetype. This action will affect other
           applications using the same mechanism to find a default application.

           APPLICATION can either be a File::DesktopEntry object or the basename of a .desktop
           file.

       "mime_applications_set_custom(MIMETYPE, COMMAND)"
           Save a custom shell command as default application.  Generates a DesktopEntry file on
           the fly and calls "mime_applications_set_custom".  Returns the DesktopEntry object.

           No checks are done at all on COMMAND.  It should however contain at least one word.

NOTES

       At present the file with defaults is $XDG_DATA_HOME/applications/defaults.list.  This file
       is not specified in any freedesktop spec and if it gets standardized it should probably be
       located in $XDG_CONFIG_HOME. For this module I tried to implement the status quo.

AUTHOR

       Jaap Karssenberg <pardus@cpan.org> Maintained by Michiel Beijen <michiel.beijen@gmail.com>

COPYRIGHT

       Copyright (c) 2005, 2012 Jaap G Karssenberg. All rights reserved.  This program is free
       software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

       File::DesktopEntry, File::MimeInfo, File::MimeInfo::Magic, File::BaseDir

       <http://freedesktop.org/wiki/Software_2fdesktop_2dfile_2dutils>