Como bloquear um par de mouse / teclado em cada tela?

11

Usando o ATI Catalyst Control Center (fglrx), configurei dois desktops (a opção multidesktop) por meio de cabeçote duplo. Agora eu tenho dois mouses e teclados (USB) conectados que, usando xinputpodem ser colocados em dois grupos separados. Posso bloquear cada grupo em uma tela? E como isso pode ser feito permanentemente? Como alternativa, também são apreciadas instruções para transformar essa configuração "lite multiseat" em multiseat.

Este é o xorg.conf conforme configurado pelo Catalyst Center:

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

(a última entrada é do VirtualGL , consulte esta pergunta , deve ser irrelevante aqui)

Tobias Kienzler
fonte
Obrigado a todos por suas respostas. Eu não vou ser capaz de testar isso por um tempo, então não posso aceitar uma resposta ainda, mas eu vou prêmio resposta de tmow para citar um pouco mais
Tobias KIENZLER

Respostas:

5

Se eu entendi suas necessidades, você deve vincular uma tela, teclado e um mouse a um ServerLayout e os outros ao segundo.

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

Até onde sei, esta é a única maneira de proceder.

Também arqueie como um bom tutorial:

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

E o Linux Toys mostra até como colocar em prática uma configuração de 6 lugares

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

tmow
fonte
obrigado. No entanto, o primeiro link está relacionado ao XFree86, ele ainda funciona com o X11? Além disso, você colou o link do Arch ...
Tobias Kienzler 20/01
Sim, claro, isso também se aplica ao X.org. Desculpe o erro, eu fixa-lo e, na verdade, que apontam deve explicar-lhe muito melhor uma configuração multi-sede
tmow
3

Uma possibilidade interessante que eu esqueci é a resposta de Tyler Szabo à minha pergunta Jogos multisseat? @ gaming.SE sugere:

Eu usaria o VMWare. Isso pode ser possível com apenas o VMWare player (você precisará alocar um mouse para uma única VM) ou pode tentar a estação de trabalho VMWare (para a qual tenho certeza de que funciona). O hardware / software que você precisará é o seguinte:

  • Vários conjuntos de entrada USB (mouse / teclado / etc.)
  • Uma licença para o VMWare Workstation (ou outro sistema VM)

    1. Configure uma VM como faria normalmente e desligue-a.
    2. Configure o controlador USB (encontrado em "Editar configurações da máquina virtual") para "Mostrar todos os dispositivos de entrada USB"
    3. Inicie a VM.
    4. No menu Navegue para VM -> Dispositivos removíveis e selecione as entradas para direcionar exclusivamente à VM. (Agora, uma das combinações de teclado / mouse será direcionada apenas para essa VM.)

Nesse ponto, você tem uma janela totalmente isolada com um conjunto de entradas que irão apenas para ela. Você pode fazer isso para o número de VMs que puder manipular (e para o maior número de conjuntos de entrada possível - eu testei apenas com 2). A única coisa irritante que pode acontecer é que você tem apenas 2 conjuntos de entradas (no meu caso, o teclado do meu laptop, o meu teclado USB e 2 mouses USB). Configurei uma VM com meu combo Teclado / Mouse USB e maximizei isso em um monitor (você precisa das ferramentas VMWare para fazer isso). Para o outro, tive um problema que meu mouse poderia escapar de uma VM para outra (um recurso de ferramentas); para contornar isso, coloquei minha segunda VM no "modo ocultivo", capturando assim minha entrada "host"; Eu também poderia ter tido uma segunda combinação de teclado / mouse.

O melhor disso é que você nem precisa de vários monitores; pode fazê-lo no estilo de tela dividida com várias VMs + teclados + mouses.

Tobias Kienzler
fonte
esta é a única solução que eu tenho trabalhado tão longe ...
Tobias KIENZLER
3

Você já tentou algo como MDM ? Parece que ele pode lidar com os mapeamentos de teclado / vídeo / mouse em seu arquivo de configuração.

Jeff S
fonte
2

Procure vários assentos e você encontrará as informações necessárias. O artigo vinculado da Wikipedia descreve até onde o MDM se encaixa.

Sou um fã do Debian, então confira o Debian Wiki ou o Ubuntu Community Docs . O XORG tem uma boa coleção de informações sobre vários assentos , incluindo este tutorial detalhado .

Boa sorte!

Tom
fonte
2

As outras respostas certamente estavam no caminho certo, mas a documentação do MDM / multissetorial é inexistente e dispersa. Alguns dos links fornecidos aqui estavam desatualizados, fazendo referência ao XFree86, o antecessor do Xorg. Algumas pesquisas mostram que a maioria das configurações do MDM usa o Xephyr.

Aqui está um HOWTO sobre como criar a configuração Multiseat Xephyr:

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

ewindisch
fonte