スタンドアロンウィンドウマネージャーにおける画面録画問題のトラブルシューティング

私は長年、WaylandウィンドウマネージャーであるLabwcを使っています。当初は会社のコンピューターでUbuntuを使っていましたが、後にミニPCを組み立ててArchに切り替えました。

全体として、自分のニーズに合わせてカスタマイズしたデスクトップ環境を構築でき、GnomeやKDEのようなモノリスを使うよりもはるかに管理しやすくなりました。例えば、Win + Enterキーを押すといつでもターミナルがポップアップ表示され、Win + Hキーで非表示にできるのは非常に便利で、作業効率が飛躍的に向上しました。

デスクトップのコアコンポーネントは一つ一つ自分で厳選し、設定ファイルはGitHubのdotfilesを使って管理しています。もしパソコンが壊れても、いつでも再インストールして使い慣れた環境に戻ることができます。

このミニPCはAMDの統合グラフィックを搭載しているので、Dota 2とCounter-Strike 2を問題なく実行できます。

全て順調に見えましたが…

ある晩、会社のパートナーとある問題に取り組んでいました。彼らは私のリアルタイム端末操作を確認したいと考えており、そのためにはFeishuの画面共有機能を使う必要がありました。共有を有効にすると、問題が発生しました。画面が真っ黒になったのです。

突然の展開で、こんな事態になるとは思ってもいませんでした。LabWC + Arch環境で画面共有をテストしたことは一度もありませんでした。本当に困りました。生計を立てるためには、これ以上の努力はできません。最終的にはスマートフォンの背面カメラで画面を録画することにしましたが、カメラの位置がずれていたり、照明が暗すぎたりと、なかなかうまくいきませんでした。

ある週末、Dota 2をプレイ中に、ブーツを購入しても自動的に売却されてしまうバグに遭遇しました。試合の録画をダウンロードして共有した後、OBSを開いても画面録画が機能していませんでした。

リアルタイムの画面共有、つまりライブストリーミングの需要は依然として高く、この問題は解決が必要です。オンラインで検索しても情報はほとんど見つからず、問題となっているコンポーネントを正確に特定することさえ困難です。

この問題は非常にニッチなものです。

  • Linuxユーザーは少ない。
  • スタンドアロンのウィンドウマネージャーを使用しているLinuxユーザーはさらに少ない。
  • 上記の両方の条件を満たし、かつ画面共有を必要とするユーザーはさらに少ない。

1. 解決策

解決策は簡単です。xdg-desktop-portal パッケージをインストールしてください。

1sudo pacman -S xdg-desktop-portal
2sudo pacman -S xdg-desktop-portal-wlr

xdg-desktop-portal-wlr は xdg-desktop-portal のバックエンド実装です。Gnome/KDE のような成熟したデスクトップ環境を使用している場合は、xdg-desktop-portal-gnome と xdg-desktop-portal-kde が既にプリインストールされています。

Labwc はスタンドアロンのウィンドウマネージャーであるため、デフォルトでは xdg-desktop-portal-wlr が含まれていないため、画面が真っ黒になったり、ストリーミングが不可能になったりすることがあります。 Wayland 環境での画面共有では通常、Pipewire を使用して xdg-desktop-portal を呼び出し、これが現在のデスクトップ環境の xdg-desktop-portal バックエンドを呼び出してプロセス全体を完了します。デスクトップ環境によってバックエンドの実装は異なります。こちらのリストを参照してください。

1➜ ~ echo $XDG_CURRENT_DESKTOP
2wlroots

上記の環境変数の出力から、wlroots のバックエンド実装は xdg-desktop-portal-wlr であると推測できます。そのため、このパッケージは別途インストールする必要があります。

 1➜ ~ ls -al /usr/share/xdg-desktop-portal
 2total 20
 3drwxr-xr-x 1 root root 190 6月10日 12:13 ./
 4drwxr-xr-x 1 root root 5018 6月12日 12:36 ../
 5-rw-r--r-- 1 root root 24 3月24日 10:58 gtk-portals.conf
 6-rw-r--r-- 1 root root 32 5月9日 04:32 hyprland-portals.conf
 7-rw-r--r-- 1 root root 67 5月22日 16:03 labwc-portals.conf
 8drwxr-xr-x 1 root root 68 6月7日 11:22 portals/
 9-rw-r--r-- 1 ルート ルート 423 6月9日 07:51 sway-portals.conf
10-rw-r--r-- 1 ルート ルート 24 8月9日 2024 wlr-portals.conf
11➜ ~ ls -al /usr/share/xdg-desktop-portal/labwc-portals.conf
12-rw-r--r-- 1 ルート ルート 67 5月22日 16:03 /usr/share/xdg-desktop-portal/labwc-portals.conf
13➜ ~ ls -al /usr/share/xdg-desktop-portal
14total 20
15drwxr-xr-x 1 ルート ルート 190 6月10日 12:13 ./
16drwxr-xr-x 1 ルート ルート 5018 6月12日12:36 ../
17-rw-r--r-- 1 ルート ルート 24 3月24日 10:58 gtk-portals.conf
18-rw-r--r-- 1 ルート ルート 32 5月9日 04:32 hyprland-portals.conf
19-rw-r--r-- 1 ルート ルート 67 5月22日 16:03 labwc-portals.conf
20drwxr-xr-x 1 ルート ルート 68 6月7日 11:22 portals/
21-rw-r--r-- 1 ルート ルート 423 6月9日 07:51 sway-portals.conf
22-rw-r--r-- 1 ルート ルート 24 8月9日 2024 wlr-portals.conf
23➜ ~ cat /usr/share/xdg-desktop-portal/labwc-portals.conf
24[preferred]
25default=wlr;*
26org.freedesktop.impl.portal.Inhibit=none
27➜ ~ cat /usr/share/xdg-desktop-portal/sway-portals.conf
28[preferred]
29default=gtk
30org.freedesktop.impl.portal.ScreenCast=wlr
31org.freedesktop.impl.portal.Screenshot=wlr
32# xdg-desktop-portal-gtk の実装では org.gnome.SessionManager と org.freedesktop.ScreenSaver が使用されていますが、どちらも Sway では実装されていません。そのため、一部のプログラム (例: Firefox) では Wayland の idle-inhibit プロトコルが代わりに使用されますが、Sway ではこのプロトコルが実装されています。
33org.freedesktop.impl.portal.Inhibit=none

アーキテクチャのドキュメントをご覧ください。XDG_CURRENT_DESKTOP 環境変数は、どの設定ファイルを読み込んで、どのバックエンド実装を使用するかを制御するかを決定します。この設定ファイルは別途設定を必要とせず、パッケージのインストール後に自動的に処理されます。この設定ファイルについてさらに理解を深めることで、興味深い詳細を知ることができます。

XDG デスクトップポータルとは?

AI 関連の紹介は以下の通りです。

 1XDG デスクトップポータルは、Linux 開発における Flatpak エコシステムの中核コンポーネントです。ファイルセレクター、スクリーンショットツール、印刷サービスなどのシステムリソースに安全かつ統一的にアクセスする方法をアプリケーションに提供します。
 2
 3セキュリティ:D-Bus プロトコルをベースとしたサンドボックス化されたインターフェースを提供することで、Flatpak アプリケーションがホストオペレーティングシステムと安全にやり取りできるようにします。各リクエストは権限チェックを受け、不正アクセスを防ぐためにユーザーの明示的な承認が必要です。統一インターフェース: 開発者は、Linuxディストリビューションの違いに関わらず、XDGデスクトップポータルで同じAPIを使用して様々な機能を実装できます。これにより、コードの移植性が向上し、開発が簡素化されます。
 4統合: システムレベルのサービス(ファイルマネージャーやプリンター設定など)とシームレスに統合されるため、アプリケーションは基盤となる実装の詳細を気にすることなく、ネイティブアプリのように機能します。
 5ブリッジング: アプリケーションとデスクトップ環境のブリッジとして機能するFlatpakアプリケーションは、デスクトップ環境と直接やり取りすることなく、ファイルを開くダイアログボックスやスクリーンショットのキャプチャなどのシステムサービスを呼び出すことができるため、連携が軽減されます。
 6豊富な機能: ファイルの選択と保存、マルチメディアアクセス、印刷サービス、クリップボード共有、スクリーンショット、画面録画をサポートしています。
 7拡張性とカスタマイズ性: 将来の拡張性を考慮して設計されているため、新しいポータルサービスを簡単に追加できます。また、異なるデスクトップ環境でも独自の実装を提供することで、一貫したデスクトップエクスペリエンスを維持できます。
 8コミュニティサポート: XDGデスクトップポータルは、活発なコミュニティによって維持・更新されているオープンソースプロジェクトであり、パフォーマンスと安定性を継続的に向上させています。
 9
10スクリーンショットや画面録画などの機能があります。
11
12XDGはX Desktop Groupの略です。Waylandはすでに広く使用されていますが、歴史的経緯から名称は変更されない可能性が高いです。私は中国ユーザーなので覚えにくいので、別途説明します。
13
14### スクリーンショット
15
16![obs-live](/images/obs-live.webp)
17
18上記のパッケージをインストールすると、OBSにスクリーンキャプチャ(PipeWire)オプションが表示されます。インストールしていない場合は表示されず、録画やライブ配信はできません。
19
20FeishuのLinuxデスクトップ版とモバイル版の両方を使用しました。画面共有は成功しましたが、スクリーンショットを撮るのが面倒でした。Tencent Meetingは複数同時セッションにメンバーシップが必要なため、テストしていません。
最終更新日: Wednesday, August 13, 2025

このシリーズの投稿:

翻訳: