Xephyr로 여러 좌석을 사실상 동시에 사용하세요

Xephyr로 여러 좌석을 사실상 동시에 사용하세요

swaywm을 사용하면 두 개의 키보드, 두 개의 마우스 및 여러 좌석(두 사람이 동시에 동일한 컴퓨터를 사용함)을 사용할 수 있습니다.하나GPU에는 두 개의 출력이 있습니다.

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는 성공적으로 새 세션을 연 다음 이를 올바른 모니터로 이동합니다. 여기서 마우스 하나만 이동하면 그게 전부입니다.

이제 포커스에 관계없이 "seat1"에 연결된 입력 장치에서 키보드 및 마우스 키를 해당 창/컨테이너에만 캡처하려면 어떻게 해야 합니까?

Xephyr -keybd/-mouse 드라이버 설정이 전혀 작동하지 않으며 -seat도 작동하지 않습니다.

나는 다중 시트 작업을 위해 다중 GPU를 사용하고 loginctl을 사용하여 시트를 정의하는 방법을 알고 있지만, 내 목표는 이전에 사용된 패치 배포판이 아닌 최신 Linux 배포판에서 다중 시트 작업에 하나의 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 환경에 설치할 수 없습니다.

관련 정보