it-swarm-pt.com

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

Usando o ATI Catalyst Control Center (fglrx), eu configurei dois desktops (a opção multidesktop) via dual-head. Agora eu tenho dois mouses e teclados (USB) conectados que, usando xinput podem ser colocados em dois grupos separados. Posso bloquear cada grupo em uma tela? E como isso pode ser feito permanentemente? Como alternativa, as instruções para transformar esta configuração "multiterminal leve" em multiterminal também são apreciadas.

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 é de VirtualGL , consulte esta questão , deve ser irrelevante aqui)

11
Tobias Kienzler

Uma possibilidade interessante que esqueci é o que Tyler Szabo's resposta à minha pergunta Jogos multiterminal? @ gaming.SE sugere:

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

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

    1. Configure um VM como faria normalmente e desligue-o.
    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 até VM -> Dispositivos removíveis, e selecione as entradas para direcionar para o VM exclusivamente. (Agora uma de suas combinações de teclado/mouse ser direcionado apenas para essa VM.)

Neste ponto, você tem uma janela totalmente isolada com um conjunto de entradas que irão apenas para ela. Você pode fazer isso para quantas VMs puder controlar (e para tantos conjuntos de entrada quanto você puder - eu testei apenas com 2). A única coisa irritante que pode acontecer é você ter apenas 2 conjuntos de entradas (no meu caso, o teclado do meu laptop, meu teclado USB e 2 mouses USB). Eu configurei um VM com meu combo USB Teclado/Mouse, e o maximizei para um monitor (você precisa de ferramentas VMWare para fazer isso). Para o outro eu tive um problema que meu mouse poderia escapar de um VM para o outro (um recurso das ferramentas); para contornar isso, coloquei meu segundo VM em "modo exclusivo", assim, caputando meu "Host "entrada; eu também poderia ter uma segunda combinação de teclado/mouse.

O melhor disso é que você nem precisa de vários monitores, pode fazer isso no estilo de tela dividida com um monte de VMs + teclados + mouses.

3
Tobias Kienzler

Se entendi suas necessidades, você tem que ligar 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.

Arch também como um bom tutorial:

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

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

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

5
tmow

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.

3
Jeff S

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

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

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

2
ewindisch

Procure multiterminal e você encontrará as informações de que precisa. O artigo da Wikipedia vinculado ainda descreve onde o MDM se encaixa.

Sou um fã do Debian, então verifique Debian Wiki ou o buntu Community Docs . XORG tem uma boa coleção de informações multiterminais, incluindo instruções detalhadas .

Boa sorte!

2
Tom