Xdg-openコマンドは、デフォルトのファイルマネージャーでファイルをダブルクリックしたときに開くアプリケーションと同じアプリケーションを使用することを期待していますが、常にそうであるとは限りません。
たとえば、私のDEはXFCE、ファイルマネージャーはThunar、デフォルトの画像ビューアーはRistrettoです。しかしながら、 xdg-open example.png
サンプルのPNGファイルをPintaで開きます。どうして?
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
@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-mailcap
を起動します。これはxdg-openと非常によく似ていますが、ファイルを開くプログラムも検索します。
これも失敗した場合にのみ、xdg-openはユーザーにファイルを開くプログラムを定義するように要求します。