First, create a desktop file in /usr/share/applications/
[Desktop Entry]
Name=Potato URL Handler
GenericName=Text Editor
Comment=Handle URL Scheme potato://
Exec=/usr/share/potato/potato-handler %u
Terminal=false
Type=Application
MimeType=x-scheme-handler/potato;
Icon=potato-icon
Categories=Development;Utility;
Name[en_US]=potato URL Handler
Then, update the MIME-types database, using:
sudo update-desktop-database
Check the mimeinfo.cache
file.
This file is the cache database created by update-desktop-database
.
You will probably find multiple ones,
under /applications
of every directory in $XDG_DATA_DIRS
.
In the potato example, you should find an entry
x-scheme-handler/potato
with the value potato-handler.desktop
in the mimeinfo.cache
of /usr/share/applications/
, since we created
the potato-handler.desktop
file there.
Now, create the /usr/share/potato/potato-handler
executable that
we specified in the potato-handler.desktop
's Exec
field.
This executable should take exactly one command-line argument,
which is the Potato URL starting with potato://
, and launch your app
with the parameters it needs.
You can make this executable in Bash, Python, or whatever you prefer,
just make sure you specify in the Exec
field of the potato-handler.desktop
how to execute it.
Just remove the directory /usr/share/potato/
with the potato-handler
executable inside it,
and remove the potato-handler.desktop
file
from /usr/share/applications/
,
then update the MIME-types database once more, using:
sudo update-desktop-database