GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
File::MimeInfo::Applications(3) User Contributed Perl Documentation File::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) {
    $default->system($file)
  }
  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 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.

All methods are exported by default.

"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.

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.

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

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, File::BaseDir

<http://freedesktop.org/wiki/Software/desktop-file-utils/> <http://freedesktop.org/wiki/Specifications/mime-apps-spec/>

2022-03-06 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.