This worked for me as well! Figured I might as well post it as an answer -
https://wiki.archlinux.org/index.php/Default_Applications#Custom_file_associations :
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 only affect the current user.
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 applications and mime database with:
update-desktop-database ~/.local/share/applications
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.)