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

11

Usando o ATI Catalyst Control Center (fglrx), configuro dois desktops (a opção multidesktop) via cabeça dupla. 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 essa configuração "multitarefas lite" em multiterminal também são bem-vindas.

Este é o xorg.conf como 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 , veja esta questão , deve ser irrelevante aqui)

    
por Tobias Kienzler 08.01.2011 / 12:55

5 respostas

3

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

I would use VMWare. This might be possible with just VMWare player (you will need to be able to allocate a mouse to a single VM), or you might need to try VMWare workstation (for which I'm quite sure it works). The hardware/software you will need is as follows:

  • Multiple sets of USB input (mice/keyboard/etc.)
  • A license for VMWare Workstation (or another VM system)

    1. Set up a VM as you normally would and power it down.
    2. Configure the USB Controller (found in "Edit virtual machine settings") to "Show all USB input devices"
    3. Start up the VM.
    4. In the menu Navigate to VM -> Removable Devices, and select the inputs to direct to the VM exclusively. (Now one of your keyboard/mouse combinations will only be directed to that VM.)

At this point you have a window that is fully isolated with a set of inputs that will go only to it. You can do this for as many VMs as you can handle (and for as many sets of input as you can handle - I only tested with 2). The only irritating thing that can happen is is you have only 2 sets of inputs (in my case my laptop keyboard, my USB keyboard and 2 USB mice). I set up a VM with my USB Keyboard/Mouse combo, and maximized that to one monitor (you need VMWare tools to do this). For the other I had a problem that my mouse could escape from one VM onto the other (a feature of tools); to get around that I put my second VM in "exculsive mode" thus caputuring my "host" input; I could also have had a second keyboard/mouse combo.

Best of this is, you don't even need multiple monitors, you could do it split-screen style with a bunch of VMs+keyboards+mice.

    
por 20.01.2011 / 09:58
5

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

link

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

Isso é, até onde eu sei, a única maneira de proceder.

Arqueie também como um bom tutorial:

link

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

link

    
por 14.01.2011 / 09:22
3

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

    
por 11.01.2011 / 18:06
2

Procure por multiseat e você encontrará as informações necessárias. O artigo da Wikipédia vinculado descreve até mesmo onde o MDM se encaixa.

Sou um fã do Debian, então confira o Debian Wiki ou o Documentos da comunidade do Ubuntu . O XORG tem uma boa coleção de informações de vários itens, incluindo este detalhe sobre como fazer .

Boa sorte!

    
por 14.01.2011 / 07:40
2

As outras respostas estavam certamente no caminho certo, mas a documentação do MDM / multiterminal é bastante carente e dispersa. Alguns dos links fornecidos aqui estavam desatualizados, referenciando o XFree86, predecessor do Xorg. Algumas escavações mostram que a maioria das configurações do MDM usa o Xephyr.

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

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

    
por 15.01.2011 / 06:24