「XDG デスクトップ ポータル」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リンクを修正)
26行目: 26行目:
 
=== バックエンドとインターフェースのリスト ===
 
=== バックエンドとインターフェースのリスト ===
   
以下の表は、利用可能な全てのバックエンドと、特定の一般的なインターフェースに対するサポートを一覧表示します。
+
以下の表は、利用可能な全てのバックエンドと、特定の一般的なインターフェースに対するサポートを一覧表示しています。
   
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! バックエンド !! ファイルチューザー !! スクリーンショットとスクリーンキャスト
+
! バックエンド !! ファイル選択ダイアログ !! スクリーンショットとスクリーンキャスト
 
|-
 
|-
| {{Pkg|xdg-desktop-portal-gnome}} || {{G|Yes}} || {{G|Yes, on [[GNOME]]}}
+
| {{Pkg|xdg-desktop-portal-dde}} || {{G|あり}} || {{G|[[Deepin Desktop Environment]] において可}}
 
|-
 
|-
| {{Pkg|xdg-desktop-portal-gtk}} || {{Yes}} || {{No}}
+
| {{Pkg|xdg-desktop-portal-gnome}} || {{G|あり}} || {{G|[[GNOME]] において可}}
 
|-
 
|-
| {{Pkg|xdg-desktop-portal-kde}} || {{Yes}} || {{G|Yes, on [[KDE]]}}
+
| {{Pkg|xdg-desktop-portal-gtk}} || {{G|あり}} || {{R|不可}}
 
|-
 
|-
| {{Pkg|xdg-desktop-portal-hyprland}}<sup>1</sup> || {{No}} || {{G|Yes, on {{Pkg|wlroots}}}}
+
| {{Pkg|xdg-desktop-portal-kde}} || {{G|あり}} || {{G|[[KDE]] において可}}
 
|-
 
|-
| {{Pkg|xdg-desktop-portal-lxqt}} || {{Yes}} || {{No}}
+
| {{Pkg|xdg-desktop-portal-hyprland}}<sup>1</sup> || {{R|なし}} || {{G|{{Pkg|wlroots}} において可}}
 
|-
 
|-
| {{Pkg|xdg-desktop-portal-wlr}} || {{No}} || {{G|Yes, on {{Pkg|wlroots}}}}
+
| {{Pkg|xdg-desktop-portal-lxqt}} || {{G|あり}} || {{R|不可}}
 
|-
 
|-
| {{AUR|xdg-desktop-portal-liri-git}} || {{Yes}} || {{G|Yes, on [[Liri]]}}
+
| {{Pkg|xdg-desktop-portal-wlr}} || {{R|なし}} || {{G|{{Pkg|wlroots}} において可}}
 
|-
 
|-
| {{AUR|xdg-desktop-portal-shana}} || {{Yes}}<sup>2</sup> || {{No}}
+
| {{Pkg|xdg-desktop-portal-xapp}} || {{R|なし}} || {{G|[[Cinnamon]] において可}}
 
|-
 
|-
| {{AUR|xdg-desktop-portal-td}} || {{Yes}} || {{No}}
+
| {{AUR|xdg-desktop-portal-liri-git}} || {{G|あり}} || {{G|[[Liri]] において可}}
 
|-
 
|-
| {{AUR|xdg-desktop-portal-termfilechooser-git}} || {{Yes}}<sup>3</sup> || {{No}}
+
| {{AUR|xdg-desktop-portal-shana}} || {{G|あり}}<sup>2</sup> || {{R|不可}}
  +
|-
  +
| {{AUR|xdg-desktop-portal-td}} || {{G|あり}} || {{R|不可}}
  +
|-
  +
| {{AUR|xdg-desktop-portal-termfilechooser-git}} || {{G|あり}}<sup>3</sup> || {{R|不可}}
 
|-
 
|-
 
|}
 
|}
   
#すべての wlroots ベースのコンポジタで動作しますが、[[Hyprland]] と併用すると、個々のウィンドウの共有などの追加機能が提供されます。
+
# すべての wlroots ベースのコンポジタで動作しますが、[[Hyprland]] と併用すると、個々のウィンドウの共有などの追加機能が提供されます。
#リクエストを GNOME/GTK/KDE/LXQt バックエンドにリダイレクトします
+
# リクエストを GNOME/GTK/KDE/LXQt それぞれのバックエンドにリダイレクトします
#[[アプリケーション一覧/ユーティリティ#コンソール|ターミナルファイルマネージャー]]をファイルチューザーとして使用できるようにします
+
# [[アプリケーション一覧/ユーティリティ#コンソール|ターミナルファイルマネージャー]]をファイル選択ダイアログとして使用できるようにします
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==

2023年11月9日 (木) 08:35時点における版

関連記事

Flatpak のドキュメンテーションから:

Portals は、アプリケーションのサンドボックスの外部から安全にリソースにアクセスするためのフレームワークです。それらは、ネットワークのステータスを決定する、ファイルチューザーでファイルを開く、URIを開く、スクリーンショットやスクリーンキャストを取るなど、アプリケーションに一連の共通機能を提供します [...]

Portals は Flatpak を通じてサンドボックス化されたアプリケーションで使用するために設計されましたが、任意のアプリケーションは Portals を使用して、デスクトップやツールキットに関係なく特徴に均一なアクセスを提供できます。これは一般的に、例えば、 PipeWire 経由で Wayland にスクリーン共有を許可するためや、現在の デスクトップ環境 と同じツールキットを使用する Firefox 上でファイルの開くと保存のダイアログを使用するために使用されます。

インストール

xdg-desktop-portal と一つ以上のバックエンドインストールします。パッケージには、D-Bus を通じて自動的に起動される systemd/ユーザー サービスが含まれています。

バックエンド

アプリケーションがポータルを通じてリクエストを行うと、それは xdg-desktop-portal によって処理され、それからバックエンドの実装に転送されます。これにより、さまざまなデスクトップ環境にフィットする適切なユーザーインターフェースを提供し、通知の表示や画面の録画などのリクエストに対して環境固有の API へアクセスするクリーンな方法を可能にします。

複数のバックエンドをインストールでき、それらは /usr/share/xdg-desktop-portal/portals/*.portal に配置しています。それぞれのポータルバックエンドファイルには、それが扱うことができるインターフェースのリストと、それが使用できるデスクトップ環境が含まれています。リクエストが行われると、xdg-desktop-portalXDG_CURRENT_DESKTOP 環境変数 を使用して、そのリクエストにどのバックエンドを使用するかを決定します。現在のデスクトップに対して使用できるバックエンドが複数ある場合、アルファベット順で最初のものが選択されます。現在のデスクトップに対してインターフェースを扱うバックエンドがない、現在のデスクトップに対して利用可能なバックエンドがない、または xdg-desktop-portal が現在のデスクトップを決定できない場合、それは要求されたインターフェースをサポートする全てのインストールされたポータルの中からアルファベット順で最初のポータルを選択します。

例えば、Sway ユーザーはスクリーンシェアリングサポートのために xdg-desktop-portal-wlr を使用し、xdg-desktop-portal-wlr が実装していない他のすべてのインターフェースに対してフォールバックとして xdg-desktop-portal-gtk を使用するかもしれません。

バックエンドとインターフェースのリスト

以下の表では、利用可能な全てのバックエンドと、特定の一般的なインターフェースに対するサポートを一覧表示しています。

バックエンド ファイル選択ダイアログ スクリーンショットとスクリーンキャスト
xdg-desktop-portal-dde あり Deepin Desktop Environment において可
xdg-desktop-portal-gnome あり GNOME において可
xdg-desktop-portal-gtk あり 不可
xdg-desktop-portal-kde あり KDE において可
xdg-desktop-portal-hyprland1 なし wlroots において可
xdg-desktop-portal-lxqt あり 不可
xdg-desktop-portal-wlr なし wlroots において可
xdg-desktop-portal-xapp なし Cinnamon において可
xdg-desktop-portal-liri-gitAUR あり Liri において可
xdg-desktop-portal-shanaAUR あり2 不可
xdg-desktop-portal-tdAUR あり 不可
xdg-desktop-portal-termfilechooser-gitAUR あり3 不可
  1. すべての wlroots ベースのコンポジタで動作しますが、Hyprland と併用すると、個々のウィンドウの共有などの追加機能が提供されます。
  2. リクエストを GNOME/GTK/KDE/LXQt それぞれのバックエンドにリダイレクトします。
  3. ターミナルファイルマネージャーをファイル選択ダイアログとして使用できるようにします。

トラブルシューティング

xdg-desktop-portal-wlr が sway で自動的に開始しない

xdg-desktop-portal-wlr を動作させるには、XDG_CURRENT_DESKTOPWAYLAND_DISPLAY 環境変数が systemd ユーザーセッション 内に設定されている必要があります。XDG_CURRENT_DESKTOP は、あなたのコンポジタの名前に設定する必要があります(例えば、XDG_CURRENT_DESKTOP=sway)。WAYLAND_DISPLAY はコンポジタによって自動的に設定されます。

これらの変数が設定されているかどうかは systemctl --user show-environment で確認します。設定されていない場合、次のコマンドをコンポジタの起動後に実行して、これらの環境変数を systemd ユーザーセッションと dbus にインポートします(例えば、コンポジタの設定ファイルに含めます)。

$ systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
$ dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=compositor_name
ヒント: Sway はこれを自動的に行う drop-in ファイルを提供しています。詳細は Sway#設定 を参照してください。

詳細は [1][2] を参照してください。

xdg-desktop-portal-wlr を使って複数のモニターを使用する

xdg-desktop-portal-wlr は共有するモニターを選択するために外部のチューザーが必要です。デフォルトでは、slurpwofi、そして bemenu をこの順に探します。slurp を使用している場合、画面共有のリクエスト後に十字カーソルが表示され、共有したい画面をクリックする必要があります。wofibemenu を使用している場合、共有可能なディスプレイのメニューが表示されます。チューザーが利用できない場合、xdg-desktop-portal-wlr は最初に見つけたモニターにフォールバックします。詳細は xdg-desktop-portal-wlr(5) § SCREENCAST OPTIONS を参照してください。

参照

  • Portal Documentation: すべての API を一覧表にしたもので、アプリケーションやバックエンドが実装できます。