linuxユーザーとして、一部のアプリケーションはパスを開くように要求でき、これによりファイルマネージャーが起動します。これをプログラムで実行したいのですが、デフォルトのファイルマネージャがどれであるかをどのように確認できますか?この情報を見つける方法はありますか?環境変数はありますか? 「ファイルマネージャ」とは、Nautilus(GNOMEの場合)やDolphin(KDEの場合)など、ファイルの管理、作成、名前の変更、フォルダの作成などを可能にするアプリケーションを意味します。
前もって感謝します!
「Linux用のデフォルトのファイルマネージャ」などというものはありません。それはすべて、どのように開こうとしているかに依存します。 XDGに質問した場合、XDGがこのファイルマネージャーがどうあるべきかを確認する必要があります。 GnomeやKDEなどの他の「環境」についても同様です。それらすべてがインストールされている場合、それぞれに異なる「デフォルトのファイルマネージャ」を設定することは完全に可能です(そして問題ありません)。
デフォルトのアプリのケースは、主にWindowsにあるようです。向こうには、Windowsが提供する1つの環境しかありません。そのため、デフォルトのアプリケーションの概念は、実際にはシステム全体に効果的です。これはLinuxには当てはまりません。
$ EDITOR環境変数に格納されているものなど、Linuxでデフォルトのアプリとして認識する可能性があるものは、「真の」デフォルトのアプリではなく、単にシステムツールやスクリプトを記述する多くの人が使用する規則です。 $ FILEMANAGERを自由に定義してください(使用例に適している場合)。
使用 xdg-mime
これにコマンド。 xdgはデスクトップ環境に依存しないものである必要があります(例:xdg-open
は引数を正しいファイルオープナーに渡します)。デフォルトのファイルマネージャを取得するには、次のコマンドを使用します。
xdg-mime query default inode/directory
xdg-open <DIR>
を使用して、ディレクトリでファイルマネージャを起動できます。いくつかのxdg
アプリケーションにクエリを実行して、使用されているファイルマネージャを確認できる場合があります。
うわー、誰もここで正しい答えを発表していないとは信じられない。
Linuxのデフォルトアプリケーションは、Freedesktop(former XDG)Mimeapps Standardと、これが基づいている他のいくつかの仕様によって処理されます。
Arch Linux Wikiには、わかりやすい article も含まれています。あなたが探しているのは、mimetype inode/directory
の関連付けです。
私はちょうど同じ問題に遭遇しました。 (私はむしろコメントしたいのですが、私の評判は十分高くありません)
私はxdg-open
を試しましたが、それはid3-tag-editorであるEasyTagを開始しました(どういうわけか面白い):-)
私はゲルハルトバーガーの答えを試しました
xdg-mime query default inode/directory
私の場合はdolphin.desktop
が返されました。
だから私の場合、正しい解決策は(「.dektop」を「」で置き換える)です:
xdg-mime query default inode/directory | sed 's/.desktop//g'
しかし、私は私が実行しているこのシステムでこれをテストするだけです
誰もがinode/directory
MIMEタイプとxdg-open
は、必要に応じてほとんどの場合に機能します(プログラムでファイルマネージャーを介してディレクトリを開きます)が、間違ったアプリケーション(ファイルマネージャーではない、たとえばVisual Studio Code)がinode/directory
をデフォルトのアプリケーションとして使用します。
さらに D-Busのファイルマネージャインターフェイス (org.freedesktop.FileManager1
in Session Bus)。要件に使用できるため、ファイルマネージャーがこのD-Busインターフェースをサポートしている場合は、これを使用することもできます。すべてのファイルマネージャがこれを実装しているわけではないので、使用できるかどうか確認してください。現在はDolphin(KDE)、Nautilus(GNOME)およびDeepin File Manager(DDE)がこのD-Busインターフェースを実装しました。また、このD-Busインターフェースのプロセスオーナーを見つけるには(プログラムでファイルマネージャーを介してパスを開くように要求する場合は、その必要はありません)、 この答え を参照してください。