File::MimeInfo::ApplicUsernContributed Perl DocFile::MimeInfo::Applications(3)NAMEFile::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.
BUGS
Please mail the author when you encounter any bugs.
AUTHOR
Jaap Karssenberg <pardus@cpan.org>
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>
perl v5.18.1 2013-10-08 File::MimeInfo::Applications(3)