O xdg-open basicamente apenas procura saber qual ambiente de desktop você possui e então roda o gnome-open, gvfs-open, xfce-open, etc. Veja abaixo instruções específicas do ambiente de desktop ...
Gnome
O Gnome usa o programa gnome-open, que usa o gconf para armazenar tudo. Por exemplo, na minha máquina com o Ubuntu 10.10 executando o gnome-open o irc: // blah abre o xchat porque o xchat inclui um patch de configuração gconf para adicionar um manipulador irc: //.
Isso mostra como o gnome faz isso, com as configurações do gconf em /desktop/gnome/url-handlers/
. Veja xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
como um exemplo.
KDE
Para o KDE, você deve olhar os arquivos .protocol em / usr / share / kde4 / services /, criar um novo para seu novo protocolo e colocá-lo em ~ / .kde / share / kde4 / services /, se for super útil, considere adicioná-lo ao pacote como uma correção para outros usuários.
O KDE está usando o kde-open ou o kfmclient dependendo do que está disponível e de qual versão do KDE você tem.
XFCE
O XFCE usa um programa chamado exo-open, este programa não tem como configurá-lo ou adicionar manipuladores uri. Olhando através do código-fonte mostra que é usado arquivos da área de trabalho para especificar apenas três tipos de programas. TerminalEmulator, WebBrowser e EmailClient.
Com o XFCE4 (e provavelmente também outros), é possível configurar o xdg-open para definir um manipulador de protocolo customizado. Em alguns você tem que criar / editar os seguintes arquivos:
~ / .local / share / applications / protocolhandler.desktop ~ / .local / share / applications / mimeapps.list
Um exemplo de adição de um manipulador para o protocolo ed2k é fornecido em stackexchange.com 2 .