xdg-openコマンドは、ファイルを開くために使用するアプリケーションをどのように知るのですか?


21

xdg-openコマンドは、デフォルトのファイルマネージャーでファイルをダブルクリックしたときに開くのと同じアプリケーションを使用することを期待しますが、常にそうであるとは限りません。

たとえば、私のDEはXFCE、ファイルマネージャーはThunar、デフォルトの画像ビューアーはRistrettoです。ただし、xdg-open example.pngPintaでサンプルPNGファイルを開きます。どうして?

回答:


23

xdg-openは、ユーザーのデフォルトアプリケーションを設定するためのデスクトップに依存しないツールです。多くのアプリケーションは、内部でxdg-openコマンドを呼び出します。デスクトップ環境(GNOME、KDE、Xfceなど)内では、xdg-openは単にデスクトップ環境のファイルオープナーアプリケーション(gvfs-open、kde-open、exo-openなど)に引数を渡します。つまり、関連付けはデスクトップ環境に委ねられます。デスクトップ環境が検出されない場合(たとえば、Openboxなどのスタンドアロンウィンドウマネージャーを実行する場合)、xdg-openは独自の構成ファイルを使用します。

archwikiから

あなたの質問に固有の場合、これを試して、pngファイルに関連付けられているデフォルトのアプリケーションを設定できます:

xdg-mime default <ristretto.desktop> image/png

Ristrettoのデスクトップファイル名を正確に知る必要があります。その後、これで確認できます:

xdg-mime query default image/png

1
これは正式に答えと見なすことができますが、実際に私が言及した現象を説明するものではありません。
イヴァン

更新、もう一度確認してください
oxnz

ありがとう。そして、これは非常に面白いです:xdg-mime query default image/png戻りwine-extension-png.desktop:-)
イワン

2

@Ivanデフォルトのアプリケーションを要求するときに適切なファイルタイプを指定しなかったため、おそらく起こります。重要なのは、xdgがその特定のファイルタイプを呼び出す方法です。これは、実行することで簡単に見つけることができます

xdg-mime query filetype example.png

例として、コンピューターの特定のpngファイルを使用してこれを実行すると、が返されますimage/x-apple-ios-png。実際のファイルタイプを把握したら、次を実行できます。

xdg-mime query default <new filetype>

この特定のファイルタイプに対してxdgによって使用されるアプリケーションを取得します。このファイルタイプにアプリケーションが定義されていない場合、xdg-openはファイル/etc/debian_versionが利用可能かどうかを確認し、そうであればrun-mailcapxdg-openに非常に似たを起動し、ファイルを開くプログラムを見つけようとします。

これも失敗した場合にのみ、xdg-openはユーザーにファイルを開くプログラムを定義するように要求します。


それはすでにoxnzが書いたものではありませんか?
ジェフシャラー

oxnyは、既知のファイルタイプのアプリケーションを設定およびチェックする方法についてのみ言及しています。彼はxdg-mime query filetype example.png、特定のファイルのファイルタイプをチェックするための参照を欠いています。なぜなら、.pngファイルもカテゴリimage / pngに該当すると単純に仮定することは必ずしも正しいとは限らないからです。Ivanのコメントを見ると、彼の問題はまだ解決されていないと思います。
-lauve
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.