GTKはどのようにURIハンドラーを登録しますか?


3

DebianラップトップでGoogle Chromeを使用していますが、ある時点でFirefoxをインストールしていました。現在、GTKアプリケーションを開発しています。リンクをクリックすると、これが出力されます。

(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)

x-www-browserがChromeに設定されているため、Firefoxを呼び出す理由がわかりません。GTKがどのようにブラウザーを選択してハイパーリンクを開くかについての洞察はありますか?

次に、この質問を拡大する必要があります。私は今朝目を覚まし、Windowsボックスでこのアプリケーションを実行しようとしましたが、それは言います:

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

では、GTKはどのようにURIハンドラーを登録しますか?インターネット上の誰もこれを行う方法を知らないようです...少なくともGnomeなしでは。

回答:


1

GTKはGconf ()のスキーム設定を使用していたGVFSを使用します/desktop/gnome/uri-handlersが、それ以降はXDG MIMEアクション仕様に切り替わり、設定はに保持され${XDG_DATA_HOME-~/.local/share}/applicationsます。

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

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

.desktopファイルがサブフォルダに探しているapplicationsの両方の$XDG_DATA_HOMEとに記載されているすべてのパス$XDG_DATA_DIRS

mimeapps.list存在しない場合は、defaults.list使用されます。


(まだ)Windowsの答えはわかりませんが、プロセスモニターは場所を特定するのに役立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.