xdgでカスタムプロトコルを登録するにはどうすればよいですか?


22

今朝、アプリケーションをカスタムプロトコル、つまりemacsclientとorg-protocolに関連付けようとして苦労しています

このプロトコルをwebbrowserブックマークレットから呼び出していますが、次のような動作になります。

クロムで
は、「アプリケーションの起動」ダイアログが表示され、xdg-open org-protocol:// ...が呼び出され、新しいクロムフレームが起動します。

firefoxでは、
network.protocol-handler.app.org-protocolを空の文字列またはemacsclientパスに設定しようとしましたが、とにかく次のエラーメッセージが表示されます。
「Firefoxはこのアドレスを開く方法を知りません。プロトコル(org-protocol)はどのプログラムにも関連付けられていません」外部アプリケーション選択ダイアログを表示することさえありません。

私はデスクトップ環境を使用していないので、この作業をxdgで厳密に行う必要がありますが、共有mime情報仕様などを読んでいるにも関わらず、まだ機能する構成を推測することはできません。


回答:


18

XDGメソッド: MIMEタイプemacsclient.desktopを処理するファイルを作成しますx-scheme-handler/org-protocol

[Desktop Entry]
Name=Emacs Client
Exec=emacsclient %u
Icon=emacs-icon
Type=Application
Terminal=false
MimeType=x-scheme-handler/org-protocol;

MimeType=上の行は、org-protocol:URI用です。)

~/.local/share/applicationsまたはにファイルを配置します/usr/local/share/applications

ファイルを開いて、次の~/.local/share/applications/mimeapps.listような行を追加する必要がある場合があります。

x-scheme-handler/org-protocol=emacsclient.desktop

[Default Applications]セクションの下に追加します。


まだクロムウィンドウが開きます。他に何か?(私はたまに元の作者に似たデスクトップ環境なしでfluxboxを使用しています)
-assem

8
最後のステップはを介して達成することもできますがxdg-mime default emacsclient.desktop x-scheme-handler/org-protocol、これはおそらくより公式な方法です。
アダムスパイアーズ

他に便利な変数はあり%uますか?たとえば、URIのドメインまたはパス部分のみを表す変数ですか?
ジョナサンノイフェルド

11

@grawityはほぼ正しいですが、彼は2つの詳細を見落としていました。

  1. .desktopファイルをインストールした後、手動で実行する必要がある場合がありますsudo update-desktop-database。(.desktopを使用してファイルをインストールした場合、これが行われる場合がありますxdg-desktop-menu install emacsclient.desktop

    それは、Firefoxに「このプロトコルを処理する必要があるもの」を表示させるために必要なものでした。エラーページを表示するだけでなく、ダイアログ。

  2. この質問が行われた時点で、「ジェネリック」(非KDE、非GNOME、非Xfceなど)デスクトップでxdg-openURLを盲目的に引き継ぐバグがあり$BROWSER@ジュリアンは経験していました。

    xdg-openの最新バージョンでは修正する必要がありますが、デスクトップが何らかの理由で最新バージョンを使用していない場合、ここで問題を解決するためにドロップしたxdg-openのバージョンを/usr/local/bin示します。


1
xdg-openの更新は私のために働いた、ありがとう!
ジョージ

0

少なくともFedora 13およびさまざまなDebianベースのディストリビューションxdg-openでは、サポートされているデスクトップ環境で実行されない場合、ブラウザーでfile://スキームを持たないすべてのURLを開きます。使用するブラウザを検出する方法は、ディストリビューションによって異なります。

通りのxdg-openは単なるシェルスクリプトで簡単にあなたのニーズに適応させることができます。


確かに、それは...ドキュメントを読んだにも関わらず、私にとって非常に不透明であるのxdg-オープンとのxdg-MIMEの間で必要とされた構成である
ジュリアン

file:// URIを開く場合、Ubuntuはxdg-mimeをまったく呼び出さず、サポートされているDEで実行されていない場合はrun-mailcapを使用し、Fedora 13はまずxdg-mimeを使用してデフォルトのアプリを見つけようとします作業はmimeopenに戻ります。xdg-mimeは共有MIME情報データベースfreedesktop.org/wiki/Software/shared-mime-infoを
Florian Diesch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.