How to add a custom filetype to Linux

If you are a Linux user, you might encounter the situation where you really want to add a custom filetype to your graphical environment. This article will help you do it without relying on specific tools, so it should work with all Linux distributions and in most graphical environments. I used Arch Linux with XFCE.
This post was earlier (2013-07-15) posted on TechMonks, of which I am a co-author.
In this example, we will add support for MHTML / MHT files.
Note that the MIME type for MHTML is not well agreed upon. Used MIME types include:
- multipart/related
- application/x-mimearchive
- message/rfc822
According to a StackOverflow question, message/rfc822 should be used. A recent discussion on FreeDesktop, however, recommends application/x-mimearchive as a subtype of multipart/related. I will use message/rfc822 in the examples below and have added this unclarity to the Wikipedia article.
Add a custom MIME type
This adds a custom MIME type for the current user.
First, we open a new file:
cd ~/.local/share/mime/packages
vi message-rfc822.xml
The contents should be these:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="message/rfc822">
<comment>MHTML web archive</comment>
<icon name="application-rss+xml"/>
<glob-deleteall/>
<glob pattern="*.mht"/>
<glob pattern="*.MHT"/>
<glob pattern="*.mhtml"/>
</mime-type>
</mime-info>
And we have to update the MIME database:
update-mime-database ~/.local/share/mime
Add a custom icon
In the MIME type added in the example above, I used the
existingapplication-rss+xml
icon for the MHTML files. You
might want to edit the icon. That icon needs to be stored somewhere in
the ~/.icons
directory. For example, when using the Roedor
icon set, see:
~/.icons/Roedor/scalable/mimetypes
After editing the icon, upate the icon cache:
gtk-update-icon-cache -f -t ~/.icons/Roedor
It is also possible to use a generic icon, independent of the theme being used, by setting an override. I have not explored this further because I did not need it, and because I saw fragmented and insonsistent information about this on the web.
Set the application used to open the MIME filetype
Changing the application used for opening files with this MIME type depends partly on the desktop environment used.
In XFCE, for example, go to Applications –> MIME Type Editor, or right-click a file.

More resources:
- StackExchange: How to change a file type icon in XFCE
- Xdg-open on Arch Linux wiki
- Kazuhiro Kunishi
- Extending mime-type def with generic-icon
Deze blogpost werd in december 2022 overgezet van WordPress naar een methode gebaseerd op Markdown; het is mogelijk dat hierbij fouten of wijzigingen zijn ontstaan t.o.v. de originele blogpost.