web-dev-qa-db-ja.com

新しいxdg-open設定を設定するにはどうすればよいですか?

xdg-openを使用してirc://リンクを開きたいのですが、必要なパラメーターを作成するにはどうすればよいですか?

26
Oxwivi

xdg-openは基本的にどのデスクトップ環境があるかを確認し、gnome-open、gvfs-open、xfce-openなどを実行します。デスクトップ環境固有の手順については以下を参照してください...

ノーム

Gnomeは、gconfを使用してすべてを保存するgnome-openプログラムを使用します。たとえば、gnome-open irc:// blahを実行しているUbuntu 10.10を搭載したマシンでは、xchatにirc://ハンドラーを追加するgconf設定パッチが含まれているため、xchatが開きます。

gconf-editor showing irc with xchat configuration

これは、/desktop/gnome/url-handlers/のgconf設定で、gnomeがこれを行う方法を示しています。例としてxchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemasを参照してください。

KDE

KDEの場合は、/ usr/share/kde4/services /にある.protocolファイルを確認し、新しいプロトコル用に新しいものを作成し、〜/ .kde/share/kde4/services /に配置する必要があります。他のユーザーの修正としてパッケージに追加することを検討してください。

KDEは、使用可能なKDEのバージョンと使用しているKDEのバージョンに応じて、kde-openまたはkfmclientを使用しています。

XFCE

XFCEはexo-openと呼ばれるプログラムを使用します。このプログラムには、それを構成したり、uriハンドラーを追加したりする方法はありません。ソースコードを見ると、デスクトップファイルを使用して3種類のプログラムのみを指定していることがわかります。 TerminalEmulator、WebBrowser、およびEmailClient。

XFCE4(およびおそらくその他)を使用すると、xdg-openを構成してカスタムプロトコルハンドラーを定義できます。一部では、次のファイルを作成/編集する必要があります。

〜/ .local/share/applications/protocolhandler.desktop〜/ .local/share/applications/mimeapps.list

Ed2kプロトコルのハンドラーを追加する例は、stackexchange.com 2 で提供されています。

magnet: URIタイプと送信(つまり、ビットトレントの場合)でこれを説明しますが、同じ方法を任意のスキームまたはファイルタイプに適用できます。

また、Debian Jessieでこれを確認しましたが、実際にはUbuntuマシンはありませんが、同じように動作するはずです(少なくともxdg-open、ファイルマネージャに注意してください別のロジックを使用することもできます)。

  1. MIMEタイプ文字列を見つけます。ファイルMIMEタイプについては、fileコマンドで見つけることができます。 :

    $ file -i Broken_Blossoms.webm 
    Broken_Blossoms.webm: video/webm; charset=binary
    $
    

    上記のファイルの場合、MIMEタイプはvideo/webmです。

    URIハンドラーの場合、タイプはx-scheme-handler/<scheme>です。ここで、<scheme>はURIのコロンの前の部分です。 「http」、「mailto」、「irc」または「magnet」。有効なMIMEタイプの例を次に示します。

    x-scheme-handler/http
    x-scheme-handler/irc
    x-scheme-handler/magnet
    x-scheme-handler/mailto
    
  2. アプリケーションの.desktopファイルの名前を見つけます。

    多くの場合、「公式」の名前と同じではなく、小文字のバージョン、または完全に異なる名前です。インストールされた.desktopファイルは、/ usr/share/applicationsの下にあります。これらは通常のテキストファイルであり、「正式な」名前が含まれているため、次のコマンドが役立ちます。

    $ grep "Transmission" -l -r /usr/share/applications
    /usr/share/applications/transmission-gtk.desktop
    $
    

    このコマンドは、「Word 'Transmission'を含むこのディレクトリの下のファイルを一覧表示する」という意味です。一部のアプリケーションはユーザー専用にインストールされる場合があります。その場合、パスは~/.local/share/applicationsになります。

    ファイルをまったく持たない「奇妙な」アプリケーションがある場合は、いつでも作成できます(そしておそらくアプリ開発者に送信できます)。簡単な方法は、既存のものをコピーし、理解しているフィールドを書き換えて、理解していないフィールドを削除することです。詳細については、 specification を参照してください。

  3. xdg-mimeコマンドを使用して、割り当てを行います

    $ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet
    $
    

    ファイルの実際の場所(/usr/share/applications、~/.local/share/applications ...)に関係なく、常に名前のみを使用することに注意してください、フルパスではありません。

    通常、コマンドは何も出力しません-それで構いません。実行したことを確認したい場合、またはMIMEタイプを開かずに現在割り当てられているものを確認したい場合:

    $ xdg-mime query default x-scheme-handler/magnet
    transmission-gtk.desktop
    $
    

注1:他のMIMEタイプをチェックアウトする場合は、/ etc/mime.typesを参照してください。世界のすべてのタイプが含まれているわけではありません。たとえばURIハンドラーですが、アソシエーションを処理する「積極的な」形式に使用できます。例えば:

grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop

すべての既知のビデオ形式をVLCに関連付けます。

注2:.desktopファイルには、MimeTypeフィールドを使用して処理できると主張するMIMEタイプのリストが含まれていることがよくあります。 xdg-mimemanページには、上記のコマンドが機能する前に.desktopファイルがMIMEタイプを要求する必要があると書かれていますが、私にとってはフィールドがなくても機能するようです。 (つまり、関連付けが適用され、アプリケーションが起動します-本当に処理できる場合、タイプを処理することは別の質問です)。何が欠点なのか分かりません(将来的にはxdg-mimeがより制限されるかもしれません)。

12
Alois Mahdal

手動でインストールされたPostmanアプリ(chrome拡張機能ではなく)にpostmanリンクを関連付けて、ブラウザーから次のようにpostmanドキュメントを開くことができるようにしました。

enter image description here

enter image description here

関連付けたいリンクは次のようになります。

postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...

関連付けを行うには、次の手順を実行しました。

  1. /home/andrzej.rehmann/software/postman/にアプリを手動でインストールします(tar.gzをダウンロードして解凍します)。
  2. /usr/share/applications/Postman.desktopにデスクトップファイルを作成します
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
  1. 次を実行して、postman xdgリンクをアプリケーションに関連付けます。

xdg-mime default Postman.desktop x-scheme-handler/postman


誰かが興味を持っている場合、この設定を無効にしました: https://github.com/hoto/ansible-home-Fedora/blob/Fedora/roles/postman/tasks/postman_installer.yml

1
Andrzej Rehmann