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

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

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

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

答え1

xdg-openは、ユーザーの基本的なアプリケーションを構成するためのデスクトップに依存しないツールです。多くのアプリケーションは内部的にxdg-openコマンドを呼び出します。デスクトップ環境(GNOME、KDE、Xfceなど)内では、xdg-openはそのデスクトップ環境のファイルを開くアプリケーション(gvfs-open、kde-open、exo-openなど)に引数を渡します。これは、接続がデスクトップ環境によって異なります。デスクトップ環境が検出されない場合(Openboxなどのスタンドアロンウィンドウマネージャを実行している場合)、xdg-openは独自の設定ファイルを使用します。

~からウィキペディア

問題が発生した場合は、pngファイルに関連するネイティブアプリケーションを設定してみてください。

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

Ristretto.txtのデスクトップファイル名が何であるかを調べる必要があります。後で次のように確認できます。

xdg-mime query default image/png

答え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はユーザーにファイルを開くプログラムを定義するように要求します。

関連情報