Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
File::MimeInfo::ApplicUsernContributed Perl DocFile::MimeInfo::Applications(3)

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

	 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) {
	 else {
		 # prompt user with choice from	@others
		 # ...

       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

       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

       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.

       All methods are exported	by default.

	   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.

	   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.

       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

       Jaap Karssenberg	<> Maintained by	Michiel	Beijen

       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.

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


perl v5.32.0			  2018-08-05   File::MimeInfo::Applications(3)


Want to link to this manual page? Use this URL:

home | help