オンライン勉強会などで画面共有する場合 Xephyr でメインと別の X server を起動してその画面を共有したりしています.
入れ子になった X の中でフルスクリーンにしたり,アプリケーションを切り替えたりしています.
しかし,小江戸らぐやオープンソースカンファレンスなどで利用しているビデオミーティングアプリの Zoom では画面共有時に Xephyr が出てきません.Chromium や Firefox や Electron アプリでは一覧に出てきて Xephyr の画面共有もうまく行きます.
仕方がないので Zoom での画面共有時は「画面の一部分」を使っています.
今回画面の指定領域を仮想ディスプレイとして利用できる clipscreen でかんたんに画面共有ができないか試してみました.
$ sudo apt install libx11-dev xserver-xorg-dev xorg-dev libcairo2-dev g++ (1) $ git clone https://github.com/splitbrain/clipscreen (2) $ cd clipscreen $ make (3) $ ./clipscreen (4) Usage: ./clipscreen <width>x<height>+<x>+<y> (e.g. 800x600+100+100)
-
必要なライブラリを導入
-
source を clone
-
build
-
usage
実行時には共有したい解像度と座標を指定する必要があります.手動だと面倒です.xdotool で調べることにします.
Xephyr を起動した状態で xdotool で解像度と座標を調べます.
$ xdotool search --onlyvisible Xephyr getwindowgeometry Defaulting to search window name, class, and classname Window 73400321 Position: 851,168 (screen: 0) Geometry: 839x522
この例だと,screen0 の 851,168 の座標に 839×522 の解像度のウィンドウがあるようです.
これを clipscreen
に渡して仮想ディスプレイを作ります.
$ ./clipscreen 839x522+851+168 Added virtual monitor Press Ctrl-C to exit
少し座標がずれますが毎回同じズレなので後で調整すれば良さそう.とりあえずウェブブラウザでは問題なく仮想ディスプレイが共有できました.
しかし,Zoom アプリでは出てきません…….Xephyr を Zoom で共有するにはやはり部分共有を使うしかなさそうです.
関連スライド
環境
$ git log -1 | grep -e commit -e Date: commit 788c1458886b7484d72e1cd512ec5b3a01c90190 Date: Wed Oct 16 09:40:21 2024 +0200 $ dpkg-query -W xorg xserver-xephyr xorg 1:7.7+23.1 xserver-xephyr 2:21.1.13-3 $ lsb_release -dr Description: Debian GNU/Linux trixie/sid Release: n/a $ arch x86_64