Provided by: libfile-mimeinfo-perl_0.34-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

       This  module  looks for associations files in the order specified in version 1.0 of the MIME applications
       specification.   It   will   also   attempt   a    last-resort    fallback    to    the    legacy    file
       $XDG_DATA_HOME/applications/defaults.list.  In  all cases, it will only write to the recommended per-user
       defaults file located at $XDG_CONFIG_HOME/mimeapps.list.

AUTHOR

       Jaap Karssenberg <pardus@cpan.org> Maintained by Michiel Beijen <mb@x14.nl>

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/desktop-file-utils/>
       <http://freedesktop.org/wiki/Specifications/mime-apps-spec/>

perl v5.36.0                                       2023-12-06                  File::MimeInfo::Applications(3pm)