如何将一对鼠标/键盘锁定到每个屏幕?

Tob*_*ler 11 x11 multi-monitor mouse multiseat fglrx

使用 ATI Catalyst Control Center (fglrx),我通过双头设置了两个桌面(多桌面选项)。现在我有两个鼠标和键盘 (USB) 连接,使用xinput可以放在两个单独的组中。我可以将每个组锁定到一个屏幕吗?以及如何永久地做到这一点?或者,也欢迎将这种“lite multiseat”配置转换为 multiseat 的说明。

这是由 Catalyst Center 设置的 xorg.conf:

Section "ServerLayout"
    Identifier     "amdcccle Layout"
    Screen      0  "amdcccle-Screen[1]-0" 0 0
    Screen         "amdcccle-Screen[1]-1" 1400 0
EndSection

Section "Module"
    Load  "glx"
EndSection

Section "Monitor"
    Identifier   "0-CRT1"
    Option      "VendorName" "ATI Proprietary Driver"
    Option      "ModelName" "Generic Autodetecting Monitor"
    Option      "DPMS" "true"
    Option      "PreferredMode" "1400x1050"
    Option      "TargetRefresh" "60"
    Option      "Position" "0 0"
    Option      "Rotate" "normal"
    Option      "Disable" "false"
EndSection

Section "Monitor"
    Identifier   "0-DFP1"
    Option      "VendorName" "ATI Proprietary Driver"
    Option      "ModelName" "Generic Autodetecting Monitor"
    Option      "DPMS" "true"
    Option      "PreferredMode" "1400x1050"
    Option      "TargetRefresh" "60"
    Option      "Position" "0 0"
    Option      "Rotate" "normal"
    Option      "Disable" "false"
EndSection

Section "Device"
    Identifier  "Default Device"
    Driver      "fglrx"
EndSection

Section "Device"
    Identifier  "amdcccle-Device[1]-0"
    Driver      "fglrx"
    Option      "Monitor-DFP1" "0-DFP1"
    BusID       "PCI:1:5:0"
EndSection

Section "Device"
    Identifier  "amdcccle-Device[1]-1"
    Driver      "fglrx"
    Option      "Monitor-CRT1" "0-CRT1"
    BusID       "PCI:1:5:0"
    Screen      1
EndSection

Section "Screen"
    Identifier "Default Screen"
    DefaultDepth     24
    SubSection "Display"
    EndSubSection
EndSection

Section "Screen"
    Identifier "amdcccle-Screen[1]-0"
    Device     "amdcccle-Device[1]-0"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Screen"
    Identifier "amdcccle-Screen[1]-1"
    Device     "amdcccle-Device[1]-1"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "DRI"
    Group        "vglusers"
    Mode         0660
EndSection
Run Code Online (Sandbox Code Playgroud)

(后一个条目来自VirtualGL,请参阅此问题,此处应该无关紧要)

tmo*_*mow 5

如果我理解您的需求,您必须将一个屏幕、键盘和一个鼠标绑定到一个 ServerLayout,将其他的绑定到第二个。

http://cambuca.ldhs.cetuc.puc-rio.br/multiuser/

Section "ServerLayout"
    Identifier "Layout0"
    Screen 0 "Screen0"
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerLayout"
    Identifier "Layout1"
    Screen 0 "Screen1"
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Run Code Online (Sandbox Code Playgroud)

据我所知,这是继续进行的唯一途径。

也将 Arch 作为一个很好的教程:

https://wiki.archlinux.org/index.php/Xorg_multiseat

Linux Toys 甚至会向您展示如何安装 6 人座椅

http://www.linuxtoys.org/multiseat/multiseat.html


Tob*_*ler 3

我忘记的一个有趣的可能性是泰勒·萨博对我的问题多座游戏的回答是什么@gaming.SE 建议:

我会使用VMWare。仅使用 VMWare 播放器就可以实现这一点(您需要能够将鼠标分配给单个虚拟机),或者您可能需要尝试 VMWare 工作站(我非常确定它可以工作)。您需要的硬件/软件如下:

  • 多组USB输入(鼠标/键盘/等)
  • VMWare Workstation(或其他 VM 系统)的许可证

    1. 像平常一样设置虚拟机并将其关闭。
    2. 将 USB 控制器(可在“编辑虚拟机设置”中找到)配置为“显示所有 USB 输入设备”
    3. 启动虚拟机。
    4. 在菜单中导航到虚拟机 -> 可移动设备,然后选择仅定向到虚拟机的输入。(现在,您的键盘/鼠标组合之一将仅定向到该虚拟机。)

此时,您有一个与一组仅进入该窗口的输入完全隔离的窗口。您可以对您可以处理的尽可能多的虚拟机执行此操作(以及您可以处理的尽可能多的输入集 - 我只使用 2 组进行了测试)。唯一可能发生的令人恼火的事情是你只有 2 组输入(在我的例子中是我的笔记本电脑键盘、我的 USB 键盘和 2 个 USB 鼠标)。我使用 USB 键盘/鼠标组合设置了一个虚拟机,并将其最大化到一台显示器(您需要 VMWare 工具来执行此操作)。另一方面,我遇到了一个问题,我的鼠标可以从一个虚拟机转移到另一个虚拟机上(工具的一项功能);为了解决这个问题,我将第二个虚拟机置于“独占模式”,从而捕获我的“主机”输入;我还可以有第二个键盘/鼠标组合。

最棒的是,您甚至不需要多个显示器,您可以使用一堆虚拟机+键盘+鼠标来实现分屏样式。