ブラウザのダウンロード場所ファイルマネージャはシステムのデフォルトファイルマネージャを使用しません。

ブラウザのダウンロード場所ファイルマネージャはシステムのデフォルトファイルマネージャを使用しません。

背景知識として、私はArch Linuxとi3をウィンドウマネージャとして使用していましたが、最近はNautilusをデフォルトのファイルマネージャとして使用するのをやめ、Thunarを使い始めました。私が使用しているブラウザはBraveで、ダウンロードする前にダウンロードしたファイルをどこに保存する必要があるかを尋ねるように設定しましたが、問題はダウンロード場所を選択したときに表示されるファイルマネージャがThunarではなく、次のようです。私のオペレーティングシステムから削除されたにもかかわらず、Nautilusになります。私の考えでは、実際にはNautilusではありませんが、可能であれば、ファイルをダウンロードしたときに表示されるファイルマネージャがThunarになれば幸いです。

それでは、明確な質問で、ダウンロード場所を選択したときにシステムのデフォルトのファイルマネージャを使用するようにブラウザをどのように更新しますか?

私が試したこと

次のコマンドを使用してThunarを自分のシステムのデフォルトのファイルマネージャとして指定しましたが、これは機能しますが、ブラウザのダウンロード場所のファイルマネージャでは機能しません。

xdg-mime default thunar.desktop inode/directory

この問題を解決するために、次のファイルの場所を更新して基本アプリケーションを手動で更新してみましたinode/directory

  • /usr/share/application/mimecache.info
  • ~/.config/mimeapps.list
  • ~/.config/mimeinfo.cache
  • ~/.local/share/applications/mimeapps.list
  • ~/.local/share/applications/mimeinfo.cache

初期コマンドを実行した後、これらのファイルは正しく設定されました。私が理解したように、ブラウザはxdg-openファイルを開く方法を決定するために使用され、ブラウザのダウンロードで「フォルダに表示」をクリックするとThunarを正しく使用します。ただし、ダウンロード場所を選択するときに使用するファイルマネージャの構成が異なるようです。

下のスクリーンショットに示すように、私のOSはブラウザがファイルをダウンロードするために開くウィンドウを「すべてのファイル」として定義し、言及したようにウィンドウはノーチラスのように見えますが、もしそうなら「ノーチラス」が見えると予想しています。 「すべてのファイル」の代わりに、これがまったく設定可能でないか、Thunarを指すように更新する必要があるのか​​わからない。

ここに画像の説明を入力してください。

これに加えて、私のDbus設定を見て、いくつかの人々が/usr/share/dbus-1/services/org.freedesktop.FileManager1.service以下を追加したファイルを持っていることがわかりましたが、問題は解決しませんでした。

[D-BUS Service]
Name=org.freedesktop.FileManager1
Exec=/usr/bin/thunar --gapplication-service

私は私のブラウザとシステムデフォルトの間の対話を処理する(どちらか一方)を決定するためにxdgutilsまたはDbusに精通していません。

答え1

プログラムは、開こうとするとXDG MIMEタイプの接続を使用します。ただフォルダ。この場合、D-Bus設定は重要ではありません。 xdg-open はこれを生成するnautilus <url>か、類似するようにします。 (ノーチラス自体は内部的にD-Busを使用できますが、ここではこれは重要な要素ではありません。)

一方、ブラウザがフォルダを開こうとしている場合あらかじめ選択された項目で(たとえば、ダウンロードしたファイルで「フォルダから開く」をクリックした場合)、ファイルマネージャと直接通信する必要があります。ブラウザはD-Bus関数呼び出しを送信しますorg.freedesktop.FileManager1。現在実行中のプロセスによって名前が要求された場合、そのプロセスは呼び出しを処理します。名前が現在要求されていない場合、dbus-daemon はファイルを照合し、Name=指定されたバイナリを生成します。 (該当する.serviceファイルが複数見つかった場合は、ランダムに1つ以上を選択してください。)

しかし、あなたに関する限り、どちらもありませんこのようなことが起こっています。スクリーンショットが表示されます。まったくファイルマネージャではありません- 伝統的に、プログラムのUIツールキットに組み込まれて実行されるファイルセレクタダイアログボックス。進行中アプリケーション(ブラウザやエディタなど)の場合。 Qtツールキットで構築されたプログラムは常にQtファイルセレクタを使用します。

スクリーンショットのファイルセレクタはGNOMEアプリケーションで使用され、「GTK」UIライブラリの一部であり、いかなる方法でもNautilusまたはThunarファイルマネージャと対話しません。ノーチラスとの唯一の関係は、「位置」サイドバーを実装するコードが2つの間にコピーされて貼り付けられているため、ノーチラスと「少し似ているようです」ということです。

つまり、ChromiumベースのブラウザはGTKをベースにせず、代わりに「クロスプラットフォーム」としてマークし、GNOMEまたはKDEファイルセレクタを別のヘルパープロセスとして実行しようとしているので、ここで少し奇妙です。たとえば、Chromiumがかつてzenity --file-selectionGTK3プログラムであり、GTK3ファイルセレクタを使用したことを実行したことを覚えています。

最近、FlatpakおよびSnapのアプリケーションサンドボックス機能の一部として、ほとんどのデスクトップは、サンドボックスアプリケーションにホスト制限アクセスへのアクセスを提供する「XDGポータル」施設の一部として、ファイルセレクタをD-Busサービスとして提供しています。先ほど述べたのとは異なり、ポータルが提供するファイルセレクタはいホストデスクトップによって異なる可能性がある完全に独立したプロセスです。たとえば、Flatpak GTK3プログラムは、KDEで実行するときにQtファイルセレクタを使用します。

Chromiumは、両方のデスクトップと統合しようとしているときに意図的にファイル選択ポータルを使用しているようです(たとえそれが可能な場合でも)。いいえSnapまたはFlatpakサンドボックス内で実行)。これは意味するxdg-desktop-portal-*どのプロセスが実行されていたか(例:GTK4またはQt6)は、Chromium(Firefoxを含む)とFlatpakまたはSnapコンテナ化アプリケーション用のファイルセレクタを提供します。

(起動すると、デフォルトのxdg-desktop-portalプロセスは$ XDG_CURRENT_DESKTOPまたは$ XDG_SESSION_DESKTOP(どちらがわかりません)を使用してログインしたデスクトップ環境に適した適切な実装を作成します。GNOMEを実行すると、ファイルを含むポータルのGTK実装が開始されます。 . Selection と KDE は Qt 実装を開始し、両方とも同じ D-Bus サービス名を宣言します。

関連情報