Custom File Associations
The following method creates a custom mime type and file association manually. This is useful if your desktop does not have a mime type/file association editor installed. In this example, a fictional multimedia application 'foobar' will be associated with all '*.foo' files. This will be done a per user basis (as opposed to system-wide).
- First, create the file "~/.local/share/mime/packages/application-x-foobar.xml":
$ mkdir -p ~/.local/share/mime/packages $ cd ~/.local/share/mime/packages $ touch application-x-foobar.xml
- Then edit "~/.local/share/mime/packages/application-x-foobar.xml" and add this text:
<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="application/x-foobar"> <comment>foo file</comment> <icon name="application-x-foobar"/> <glob-deleteall/> <glob pattern="*.foo"/> </mime-type> </mime-info>
Note that you can use any icon, including one for another application.
- Next, edit or create the file "~/.local/share/applications/foobar.desktop" to contain something like:
[Desktop Entry] Name=Foobar Exec=/usr/bin/foobar MimeType=application/x-foobar Icon=foobar Terminal=false Type=Application Categories=AudioVideo;Player;Video; Comment=
Note that Categories should be set appropriately for the application type (in this example, a multimedia app).
- Now update the mime database with:
$ update-mime-database ~/.local/share/mime
Programs that use mime types, such as file managers, should now open '*.foo' files with foobar. (You may need to restart your file manager to see the change.)