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


回答:


17

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

ノーム

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

xchat構成でircを表示するgconf-editor

これはgnomeがこれをどのように行うかを示しています。gconfの設定は/desktop/gnome/url-handlers/です。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で提供されています。


すべての公式DEに対してこれを行う方法について言及できますか?
オックスウィビ

質問とはまったく関係ありませんが、スクリーンショットの下部にあるディレクトリ全体を引用できますか?ありがとうございました。
オックスウィビ

4
xdg-openは基本的に、どのデスクトップ環境があるかを確認してから、gnome-open、gvfs-open、xfce-openなどを実行します。---そうは思いません。第一に、マンページはそれを言っておらず、第二に、xdg-openはデスクトップ環境なしで完全に動作します。たとえば、i3ウィンドウマネージャーで使用します。
アロイスマーダル14年

アプリのインストール中に新しいURL /アプリの関連付けを作成する一般的な方法はありますか?
jayarjo

14

これについては、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>で、「http」、「mailto」、「irc」、「magnet」など、コロンの前のURIの部分です。有効な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
    $
    

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

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

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


wiki.archlinux.org/index.php/xdg-openでは、ほぼ同じ結果が得られます。まだ良いものがあります。
シャーリッシュ

この答えが最善の方法です。ヒント:1)xdg-mime query filetype FILEMIMEタイプを見つけるXDGの方法です。2)デフォルトを自分で編集して、より整理し、後でバックアップすることもでき.config/mimeapps.listます:ファイルです。
Ciro Santilli新疆改造中心法轮功六四事件

2つの編集をロールバックしました。@ frank、xdg-mimeが「より良く機能する」方法を説明することに注意してください。IMO ファイルはMIMEタイプ用の自動ツールであり、xdg-mime query filetype xyz.wbemOTOHは情報を少なくし、入力する方法を増やします。
アロイスマーダル

1
すばらしい説明と、デスクトップファイルの唯一の名前を使用するためのヒントが、私が探していた解決策でした。
アンドレアリチャーディ

1
このアドバイスは、LinuxでSlackデスクトップアプリを使用してログインできないことを解決するのに役立ちました。slackはブラウザーにリダイレクトしますが、ブラウザーはURIスキームを使用してslackにリダイレクトします。あなたのヒントは、スラックURI xdg-mimeマッピングがなくなったことを知るのに役立ちました。1時間の検索でこれを見つけてうれしいです!ありがとうございました!
食道障害

2

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

ここに画像の説明を入力してください

ここに画像の説明を入力してください

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

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

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

  1. アプリを手動でインストールします(tar.gzをダウンロードして解凍します)。 /home/andrzej.rehmann/software/postman/
  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

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