dwww Home | Manual pages | Find package

File::...ations(3pm)  User Contributed Perl Documentation  File::...ations(3pm)

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.38.2                       2024-04-27              File::...ations(3pm)

Generated by dwww version 1.16 on Tue Dec 16 07:14:17 CET 2025.