Como o GTK registra os manipuladores de URI?

3

Eu uso o Google Chrome no meu laptop Debian, mas em determinado momento eu tive o Firefox instalado. Agora estou desenvolvendo um aplicativo GTK e quando clico em um link, isso gera:

(charry.phpw:6267): Gtk-WARNING **: Unable to show 'http://t.co/nOOjE9u1': Failed to execute child process "/opt/firefox/firefox" (No such file or directory)

Eu não entendo porque seria o Firefox, porque tenho o x-www-browser definido para o Chrome. Alguém tem uma ideia de como o GTK escolhe um navegador para abrir hiperlinks?

Agora tenho que expandir essa questão. Eu acordei esta manhã e tentei executar este aplicativo na minha caixa do Windows, mas ele diz:

<php.exe:3360>: Gtk-WARNING **: Unable to show 'http://t.co/tKtwKbAt': No application is registered as handling this file

Então, como o GTK registra os manipuladores de URI? Ninguém na internet parece saber como fazer isso ... pelo menos sem o Gnome.

    
por soren121 09.10.2011 / 05:03

1 resposta

1

O GTK usa o GVFS, que usava configurações do Gconf ( /desktop/gnome/uri-handlers ), mas mudou para a especificação XDG MIME Actions, com as preferências mantidas em ${XDG_DATA_HOME-~/.local/share}/applications .

~/.local/share/applications/mimeapps.list :

[Default Applications]
x-scheme-handler/http=firefox.desktop

Os arquivos .desktop são procurados na subpasta applications de ambos os $XDG_DATA_HOME e todos os caminhos listados em $XDG_DATA_DIRS .

Se mimeapps.list não existir, defaults.list será usado.

Ainda não sei a resposta para o Windows, mas o Process Monitor será útil na determinação da localização.

    
por 09.10.2011 / 16:50

Tags