Add a custom MIME type for individual users
To add a custom MIME type for individual users and register a default application for that MIME type, you need to create a new MIME type specification file in the ~/.local/share/mime/packages/ directory and a .desktop file in the ~/.local/share/applications/ directory.
Add a custom application/x-newtype MIME type for individual users
Create the ~/.local/share/mime/packages/application-x-newtype.xml file:
<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="application/x-newtype"> <comment>new mime type</comment> <glob pattern="*.xyz"/> </mime-type> </mime-info>
The sample application-x-newtype.xml file above defines a new MIME type application/x-newtype and assigns file names with the .xyz extension to that MIME type.
Create a new .desktop file named, for example, myapplication1.desktop, and place it in the ~/.local/share/applications/ directory:
[Desktop Entry] Type=Application MimeType=application/x-newtype Name=My Application 1 Exec=myapplication1
The sample myapplication1.desktop file above associates the application/x-newtype MIME type with an application named My Application 1, which is run by a command myapplication1.
Update the MIME database for your changes to take effect:
$ update-mime-database ~/.local/share/mime
Update the application database:
$ update-desktop-database ~/.local/share/applications
To verify that you have successfully associated *.xyz files with the application/x-newtype MIME type, first create an empty file, for example test.xyz:
$ touch test.xyz
Then run the gio info command:
$ gio info test.xyz | grep "standard::content-type" standard::content-type: application/x-newtype
To verify that myapplication1.desktop has been correctly set as the default registered application for the application/x-newtype MIME type, run the gio mime command:
$ gio mime application/x-newtype Default application for “application/x-newtype”: myapplication1.desktop Registered applications: myapplication1.desktop Recommended applications: myapplication1.desktop