リンクxdg-open
を開くために使用したいのですがirc://
、必要なパラメーターを作成するにはどうすればよいですか?
リンクxdg-open
を開くために使用したいのですがirc://
、必要なパラメーターを作成するにはどうすればよいですか?
回答:
xdg-openは基本的に、どのデスクトップ環境があるかを確認してからgnome-open、gvfs-open、xfce-openなどを実行します。デスクトップ環境固有の手順については以下を参照してください...
Gnomeは、gconfを使用してすべてを保存するgnome-openプログラムを使用します。たとえば、gnome-open irc:// blahを実行しているUbuntu 10.10を搭載したマシンでは、xchatにirc://ハンドラーを追加するgconf設定パッチが含まれているため、xchatが開きます。
これはgnomeがこれをどのように行うかを示しています。gconfの設定は/desktop/gnome/url-handlers/
です。xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
例として参照してください。
KDEの場合、/ usr / share / kde4 / services /にある.protocolファイルを見て、新しいプロトコル用に新しいものを作成し、〜/ .kde / share / kde4 / services /に配置する必要があります。他のユーザーの修正としてパッケージに追加することを検討してください。
KDEは、使用可能なKDEのバージョンと使用しているKDEのバージョンに応じて、kde-openまたはkfmclientを使用しています。
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の場合、ファイルマネージャーは異なるロジックを使用することもできます)。
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
アプリケーションの.desktopファイルの名前を見つけます。
多くの場合、「正式な」名前と同じではなく、小文字のバージョン、または完全に異なる名前です。インストールされた.desktopファイルは、/ usr / share / applicationsの下にあります。これらは通常のテキストファイルであり、「正式な」名前が含まれているため、次のコマンドが役立ちます。
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
このコマンドは、「このディレクトリの下にある「Transmission」という単語を含むファイルを一覧表示する」という意味です。一部のアプリケーションはユーザー専用にインストールされる場合があります~/.local/share/applications
。その場合、パスはになります
。
ファイルがまったくない「奇妙な」アプリケーションがある場合は、いつでも作成できます(そして、おそらくアプリ開発者に送信できます)。簡単な方法は、既存のフィールドをコピーし、理解しているフィールドを書き換えて、理解していないフィールドを削除することです。詳細については、 仕様を参照してください。
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がより制限されるかもしれません)。
xdg-mime query filetype FILE
MIMEタイプを見つけるXDGの方法です。2)デフォルトを自分で編集して、より整理し、後でバックアップすることもでき.config/mimeapps.list
ます:ファイルです。
xdg-mime query filetype xyz.wbem
OTOHは情報を少なくし、入力する方法を増やします。
postman
手動でインストールしたPostmanアプリ(Chrome拡張機能ではなく)にリンクを関連付けて、ブラウザから次のようにPostmanドキュメントを開くことができるようにしました。
関連付けたいリンクは次のようになります。
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
関連付けを行うには、次の手順を実行しました。
/home/andrzej.rehmann/software/postman/
/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
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