Xephyrで複数の座席を事実上同時に使用する

Xephyrで複数の座席を事実上同時に使用する

swaywmを使用すると、2つのキーボード、2つのマウス、および複数の座席(2人が同時に同じコンピュータを使用する)を使用できます。一つGPUには2つの出力があります。

Swayセッションが開始されると、XepyrはローカルホストXDMCPサーバー(lightdmで有効)を照会するネストされたXセッションを開きます。

簡単に言えば、次のコマンドが実行されます。

swaymsg "input abc:xyz:mouse map_to_output VGA-1"
swaymsg "seat seat1 attach abc:xyz:keyboard"
swaymsg "seat seat1 attach abc:xyz:mouse"
swaymsg "seat seat1 shortcuts_inhibitor enable"
Xephyr -query 127.0.0.1 -glamor -screen 1280x720 -noreset -no-host-grab -name Xephyr1 :1 &
sleep 3
swaymsg "[instance=Xephyr1] move window to output VGA-1"
swaymsg "[instance=Xephyr1] focus"
swaymsg "floating disable"

Xephyrは正常に新しいセッションを開き、それを正しいモニターに移動します。ここでマウスを1つだけ動かすと、それはすべてです。

フォーカスに関係なく、「seat1」に接続されている入力デバイスでキーボードとマウスキーを対応するウィンドウ/コンテナにのみキャプチャするにはどうすればよいですか?

Xephyr -keybd/-mouse ドライバの設定はまったく機能せず、-seat も機能しません。

私はマルチシート操作に複数のGPUを使用し、loginctlを使用してシートを定義する方法を知っていますが、私の目標は、以前に使用されたパッチディストリビューションではなく、最新のLinuxディストリビューションでマルチシートジョブに1つのGPUを使用することです。です。

答え1

私が望むものではありませんが、chroot環境で動作するようにすることは、少なくとも仮想マシンのような追加のリソースがあまり必要なくホストシステムを破壊しませんでした。私がしたことは次のとおりです。

schrootとdebootstrapをインストールしました。

someuser:~$ sudo apt install debootstrap schroot

最後に次の行を追加しました。/etc/schroot/schroot.confchroot を構成するファイルです。

[stretch]
type=directory
description=Debian stretch
message-verbosity=quiet
directory=/opt/stretch
root-users=root
root-groups=root
users=someuser
groups=someuser
preserve-environment=true

chroot ディレクトリを作成し、必要なディストリビューションと必須パッケージをインポートします。

someuser:~$ sudo mkdir -p /opt/stretch
someuser:~$ sudo debootstrap --no-check-gpg --arch amd64 --variant=minbase --include=xserver-xephyr,libgl1-mesa-dri stretch /opt/stretch/ http://httpredir.debian.org/debian

chrooting後にXepyrを実行するには、この行を使用してください。

someuser:~$ schroot -c stretch -- Xephyr -query 127.0.0.1 -br -glamor -noreset -no-host-grab -keybd evdev,,device=/dev/input/event3,xkbmodel=pc105,xkblayout=br -mouse evdev,3,device=/dev/input/event2 -3button -zaphod -softCursor -output VGA-1 :2

いいですね。 XepyrはXDMCPサーバーに接続し、定義されたキーボードとマウスのみを許可します。

-seatオプションを使用してデバイスを渡さないことに注意してください。 Udevが必要なようですが、chroot環境にインストールすることはできません。

関連情報