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

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

使用 ATI Catalyst Control Center (fglrx),我通过双头设置了两个桌面(多桌面选项)。现在我连接了两个鼠标和键盘(USB),xinput可以将它们分成两个单独的组。我可以将每个组锁定到一个屏幕吗?如何才能永久做到这一点?或者,也可以理解将这种“精简型多座”配置转变为多座的说明。

这是 Catalyst 中心设置的 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

(后一个条目来自虚拟GL, 看这个问题,这里应该是无关紧要的)

答案1

如果我理解您的需求,您必须将一个屏幕、键盘和一个鼠标绑定到一个 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

据我所知,这是继续下去的唯一方法。

Arch 也是一个很好的教程:

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

Linux Toys 甚至向您展示如何安装 6 座座位

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

答案2

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

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

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

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

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

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

答案3

你有没有尝试过类似的东西主数据管理?看起来它可以处理其配置文件中的键盘/视频/鼠标映射。

答案4

其他答案当然是正确的,但 MDM/multiseat 文档相当缺乏且分散。这里提供的一些链接已经过时,引用了 Xorg 的前身 XFree86。一些挖掘表明大多数 MDM 配置都使用 Xephyr。

以下是构建 Multiseat Xephyr 配置的 HOWTO:

http://en.wikibooks.org/wiki/Multiterminal_with_Xephyr

相关内容