zoom – matoken's blog https://matoken.org/blog Is there no plan B? Sun, 27 Oct 2024 13:55:13 +0000 ja hourly 1 https://wordpress.org/?v=6.9.1 https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9-32x32.jpeg zoom – matoken's blog https://matoken.org/blog 32 32 clipscreenでXephyr画面をZoomアプリで共有(失敗) https://matoken.org/blog/2024/10/26/share-xephyr-screen-with-clipscreen-failed/ https://matoken.org/blog/2024/10/26/share-xephyr-screen-with-clipscreen-failed/#respond Fri, 25 Oct 2024 21:41:31 +0000 https://matoken.org/blog/?p=4185

オンライン勉強会などで画面共有する場合 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)
  1. 必要なライブラリを導入

  2. source を clone

  3. build

  4. 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

clipscreen shareframe

少し座標がずれますが毎回同じズレなので後で調整すれば良さそう.とりあえずウェブブラウザでは問題なく仮想ディスプレイが共有できました.
しかし,Zoom アプリでは出てきません…….Xephyr を Zoom で共有するにはやはり部分共有を使うしかなさそうです.

clipscreen zoom01
clipscreen zoom02

関連スライド


環境

$ 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
]]>
https://matoken.org/blog/2024/10/26/share-xephyr-screen-with-clipscreen-failed/feed/ 0
Linux版Zoomクライアントで画面共有部分が黒くなってしまう https://matoken.org/blog/2024/10/13/the-screen-sharing-part-becomes-black-on-the-linux-version-of-zoom-client/ https://matoken.org/blog/2024/10/13/the-screen-sharing-part-becomes-black-on-the-linux-version-of-zoom-client/#respond Sat, 12 Oct 2024 21:28:23 +0000 https://matoken.org/blog/?p=4127

Linux User Group の一つ.小江戸らぐのミーティングに参加しました.

こちらではZoomというビデオミーティングサービスを利用しています.Linux版のクライアントも提供されていて,今回公式クライアントの Debian 向けのパッケージを利用していました.(ウェブブラウザでも動作しますが少し制限があります.)

そして画面共有を行い発表をしようとしたのですが,画面共有は出来ているけれど共有部分が黒くなります.ウィンドウを移動しても追従してきます.ウィンドウ共有,部分共有でも同様.

結局,発表は他の方に画面共有してもらいました.

発表が終わってから調べると以下の記事を見つけました.

画面共有機能には、コンポジティングが必要です。

ということでコンポジタを試してみました.

xcompmgr の場合

先ずは記事中で紹介されている xcompmgr から試します.

$ sudo apt install xcompmgr (1)
$ xcompmgr -c -l0 -t0 -r0 -o.00 (2)
  1. xcompmgr パッケージの導入

  2. xcompmgr の起動

picom の場合

picom の場合はこんな感じで.

パッケージの導入
$ sudo apt install picom (1)
$ sudo apt install picom-conf (2)
$ picom-conf (3)
$ picom (4)
  1. picom パッケージの導入

  2. picom の GUI 設定パッケージの導入(オプション)

  3. GUI で設定(オプション)

  4. picom 起動

設定ファイルは大抵の場合 ~/.config/picom/picom.conf になると思います.

Example 1. man picom(1)より

CONFIGURATION FILES
picom could read from a configuration file if libconfig support is compiled in. If –config is not used, picom will seek for a
configuration file in $XDG_CONFIG_HOME/picom.conf (~/.config/picom.conf, usually), then $XDG_CONFIG_HOME/picom/picom.conf, then
$XDG_CONFIG_DIRS/picom.conf (often /etc/xdg/picom.conf), then $XDG_CONFIG_DIRS/picom/picom.conf.

picom-conf はオプションですが,GUI で設定できて便利です.Debian では testing(trixie)以降のようです.

Zoomでの画面共有

コンポジタを起動した状態で画面共有を行うと共有部分にかぶっていた黒い画面が透過されるようになりました.

スクリーンキャストを撮ってみました.

環境

$ dpkg-query -W zoom xcompmgr picom*
picom   11.2-0.1
picom-conf      0.17.0-1+b2
xcompmgr        1.1.8-1
zoom    6.2.3.2056
$ lsb_release -dr
Description:    Debian GNU/Linux trixie/sid
Release:        n/a
$ arch
x86_64
]]>
https://matoken.org/blog/2024/10/13/the-screen-sharing-part-becomes-black-on-the-linux-version-of-zoom-client/feed/ 0
Zoomで着信ビデオを無効にしてリソースを節約する https://matoken.org/blog/2021/12/16/disable-incoming-videos-in-zoom/ https://matoken.org/blog/2021/12/16/disable-incoming-videos-in-zoom/#respond Wed, 15 Dec 2021 22:42:25 +0000 http://matoken.org/blog/?p=3437

ビデオミーティングソフトウェアのZoomのクライアント 5.8.0ですべての参加者のビデオを非表示に出来るようになったようです.

着信ビデオの停止
ミーティングの出席者は、すべての着信ビデオを画面上で非表示にできるようになりました。 着信ビデオを停止することで、光に敏感な出席者が複数のビデオ参加者の表示による過剰な刺激を回避し、画面共有に関する帯域幅も保持できるようになります。

回線やマシンスペックが低いときなどに良さそう.と思って設定を試そうと思ったらやり方がよくわかりません.
以下の記事では「ビデオ会議ウィンドウ右上にある[表示]ボタンからのメニューから利用可能だ。」と書かれていますがそのような項目は見当たりません.

もしかしてLinuxは未実装なのだろうかとも思いましたがLinuxのリリースノートにも書かれています.

September 22, 2021 versionC (16)

–snip–

  • Meeting/webinar features
    • Stop incoming video
      Users in a meeting can easily disable all incoming video through in-meeting controls. This may be done to preserve bandwidth for shared content, or to avoid mental fatigue from viewing multiple, active video participants. The account owner and admins can enable this for use in meetings at the Account-, Group-, and User-level web settings. Once enabled through web settings, users must then enable it for use in the Desktop client’s Video settings.

という感じで設定初期化したら出てくるかな?とか思っていましたが放置していました.

その後11月の小江戸らぐの雑談でこの話をしたらやり方を教えてもらいました.

「設定⚙」→「ビデオ」の下の方の「[着信ビデオを停止]機能を有効にする」にチェックをつけることでこの機能が使えるようになります.

zoom video stop 01

ミーティング中にビデオ会議ウィンドウ右上にある[表示]ボタンからのメニューに現れるようになり.「着信ビデオを停止」をチェックすることでビデオを無効にできました.
この状態で画面共有がされた場合画面共有画面は表示されます.

zoom video stop 02

ちなみにWeb版でも「着信ビデオを停止」は可能でした.

zoom web video off
環境
$ dpkg-query -W zoom
zoom    5.8.6.739
$ lsb_release -dr
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
$ arch
x86_64
]]>
https://matoken.org/blog/2021/12/16/disable-incoming-videos-in-zoom/feed/ 0
Zoom のLinuxクライアントをFirejail経由で利用する https://matoken.org/blog/2020/04/09/using-zooms-linux-client-via-firejail/ https://matoken.org/blog/2020/04/09/using-zooms-linux-client-via-firejail/#respond Wed, 08 Apr 2020 22:34:30 +0000 http://matoken.org/blog/?p=2713

最近みんなよく使うようになった Zoom ですがみんなが使うようになっていろいろとプライバシーやセキュリティの問題が表層化してきている感じです.

Linux関連だとパッケージング周りがあまりよろしくない感じです(◞‸◟)

それ以外にもLinux版は利用者が少なく見つかっていないだけで問題がありそうな気がします.

とりあえず手元の環境ではpkg版は削除してなるべくウェブブラウザで利用をしておこうかと思っています.Linux版ChromiumではUA偽装が必要という記事も見かけましたが,

2020-04-03 に Version 80.0.3987.162 (Developer Build) built on Debian bullseye/sid, running on Debian bullseye/sid (64-bit) で試したところUA偽装せずに使えました.

$ chromium --temp-profile https://zoom.us/……

でもリソースはデスクトップ版より余計に食いそうです.デスクトップ版にはbinary tar ball もあるのでそれならバッケージングの問題は回避できると思います.
これを試してみます.

少し手間な気がしますが,pkg版の方もリポジトリはないのでアップデート毎にインストールし直しが必要なのであまり手間は代わりません.

ダウンロードしたアーカイブを /opt 以下に展開します.

$ tar tvf ~/Downloads/zoom_x86_64.tar.xz
$ tar xvf ~/Downloads/zoom_x86_64.tar.xz -C /opt

これで,` /opt/zoom/zoom` で起動しようとすると Segmentation fault になってしまいます.zoom.sh かな?と思ったけど中を見ると debug用のようです./opt/zoom/zoomlinux で実行すればokのようです.

次にアプリケーションをサンドボックス内で動かしてセキュリティリスクを軽減できる Firejail 経由で動くか試してみます.

先ずは Firejail を導入します.

$ sudo apt install firejail firejail-profiles

これでとりあえず,firejail /opt/zoom/zoomlinux で Firejail 経由で起動できます :)

$ firejail /opt/zoom/zoomlinux

Firejail の管理下にあるものは firejail --list で確認できます.firejail --tree で pstree のようにプロセスツリーが確認できます.負荷状況は firejail --top で topやvirtop 的な感じで確認できます.

Firejail のプロファイルを確認すると Zoom のものもありました.

$ dpkg -L firejail-profiles | grep zoom
/etc/firejail/zoom.profile

せっかくなのでこれを使います.pkg版のときは zoom という名前で起動するのでそのままでこのプロファイルを使うようですが,zoomlinux で起動すると認識してくれないようなので,zoomlinux 用のプロファイルを用意します.といってもコピーするだけです.

$ mkdir -p ~/.config/firejail
$ cp /etc/firejail/zoom.profile ~/.config/firejail/zoomlinux.profile

/opt/zoom/zoomlinux のようにパスが付いていると認識してくれないので,パスを通して起動します.

$ PATH=/opt/zoom:$PATH firejail zoomlinux
Reading profile /home/matoken/.config/firejail/zoomlinux.profile
  :

若しくは --profile オプションでプロファイルを指定します.(こっちのほうがいいかな?)

$ firejail --profile=zoom /opt/zoom/zoomlinux
Reading profile /etc/firejail/zoom.profile
  :

zoom プロファイル経由で起動できました :)

この状態だとファイルの共有をしようとすると共有するものが何もなかったり,チャットログの保存が出来なかったりします.

Screenshot from 2020 04 09 05 22 18

firejail のプロファイルを編集して許可したいファイルやディレクトリを設定します.以下は ~/Documtnts/Zoom を許可する例です.

$ diff -u /etc/firejail/zoom.profile ~/.config/firejail/zoomlinux.profile
--- /etc/firejail/zoom.profile  2020-01-21 03:53:34.000000000 +0900
+++ /home/matoken/.config/firejail/zoomlinux.profile    2020-04-09 06:35:43.591973723 +0900
@@ -7,6 +7,7 @@

 noblacklist ${HOME}/.config/zoomus.conf
 noblacklist ${HOME}/.zoom
+noblacklist ${HOME}/Documents/Zoom

 include disable-common.inc
 include disable-devel.inc
@@ -16,9 +17,11 @@
 mkdir ${HOME}/.cache/zoom
 mkfile ${HOME}/.config/zoomus.conf
 mkdir ${HOME}/.zoom
+mkdir ${HOME}/Documents/Zoom
 whitelist ${HOME}/.cache/zoom
 whitelist ${HOME}/.config/zoomus.conf
 whitelist ${HOME}/.zoom
+whitelist ${HOME}/Documents/Zoom
 include whitelist-common.inc

 caps.drop all

ということで少しは安全になったかな?
しばらくはこまめに Zoom の情報はアップデートしておこうと思います.

環境
$ /opt/zoom/zoom 2>&1 | grep Version
Linux Client Version is 3.5.382995.0407
$ dpkg-query -W firejail*
firejail        0.9.62-3
firejail-profiles       0.9.62-3
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64
]]>
https://matoken.org/blog/2020/04/09/using-zooms-linux-client-via-firejail/feed/ 0