使用 swaywm,我几乎可以使用两个键盘、两个鼠标和一个带两个输出的 GPU 进行多座位(两个人同时使用同一台计算机)。
在 sway 会话开始时,打开一个嵌套的 X 会话,Xephyr 查询 localhosts XDMCP 服务器(在 lightdm 中启用)
简而言之,这些是执行的命令:
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 进行多座位,而不是在旧的、打补丁的发行版中。
让它在 chroot 环境中工作,这不是我想要的,但至少我没有破坏主机系统,同时不需要太多额外的资源,例如使用 VM。这是我所做的:
安装了 schroot 和 debootstrap。
在/etc/schroot/schroot.conf文件末尾添加以下行来配置 chroot。
创建 chroot 目录并获得所需的分发包
使用该行运行 chrooted Xephyr。
好的,Xephyr 连接到 XDMCP 服务器,只接受定义的键盘和鼠标。
请注意,我没有通过 -seat 选项传递设备,我猜我需要 Udev 并且我无法将它安装在 chroot 环境中。