Como você roda o XBMC na tela dupla nvidia e impede que ele assuma o teclado e o mouse?

6

Eu configurei a tela dupla no Ubuntu 12.04. Eu tenho uma GeForce 8500 GT e usei o painel de controle da nVidia para configurar a tela dupla em "modo de tela separado". Aqui está o xorg.conf :

resultante
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 295.33  (buildd@zirconium)  Fri Mar 30 13:38:49 UTC 2012


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Maxdata/Belinea B1925S1W"
    HorizSync       31.0 - 83.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"

    # HorizSync source: builtin, VertRefresh source: builtin
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "CRT-1"
    HorizSync       28.0 - 55.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8500 GT"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8500 GT"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection
Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "CRT-0: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"

# Removed Option "metamodes" "CRT-1: 1280x768 +0+0"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "CRT-1: 1360x768_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Tudo bem e eu tenho um XWindow em branco agradável exibido na minha TV (o segundo monitor). Em seguida, inicio o XBMC a partir de um terminal no monitor do PC usando:

DISPLAY=:0.1 xbmc

O XBMC dispara muito bem na TV, mas não consigo mais usar o monitor / mouse / teclado principal do PC, pois o XBMC na tela da TV parece ter foco. Eu estava esperando ter o XBMC rodando na TV e deixar as crianças usarem o controle remoto do MCE, enquanto eu continuo com o meu trabalho no monitor do PC.

Alguém tem alguma idéia de como superar isso? Eu presumo que haja algum divertimento e jogos necessários para o xorg.conf, mas não tenho idéia de onde começar a ser honesto.

    
por Paul Swartout 25.08.2012 / 12:23

2 respostas

6

Eu estava procurando o mesmo.

Eu encontrei sua primeira pergunta, mas depois de pesquisar um pouco mais, encontrei uma resposta funcional e voltei aqui para compartilhar.

A página que tem a resposta está localizada: link

Um copiar e colar dos princípios básicos:

Primeiro, você precisará instalar um pequeno aplicativo inteligente chamado "wmctrl", que nos permite alterar certas propriedades da janela, como ocultar a borda ou tornar uma janela em tela cheia.

sudo apt-get install wmctrl

Em seguida, você precisará do seguinte script. Eu chamei de "xbmc-fs" por razões óbvias. É bastante auto-explicativo, então dê uma olhada nos comentários. A única coisa que você pode precisar mudar é a quinta linha onde a exibição é selecionada. No meu caso, a TV está em exibição 1, então é isso que eu configurei no arquivo. Se o seu está em exibição 0, basta mudar o 1 para 0 na linha 5.

#! /bin/bash
# Launch XBMC in windowed mode, then use wmctrl to remove the titlebar

# Select display 1
DISPLAY=:0.1

# Start XBMC without blocking this script
xbmc &

# Wait for the XBMC window to appear
status=0
while [ $status -eq 0 ]
do
   sleep 1
   status='wmctrl -x -l | grep "XBMC Media Center" | wc -l | awk '{print }''
done

# Force XBMC window to fullscreen
wmctrl -x -r XBMC Media Center.XBMC Media Center -b toggle,fullscreen

A única outra coisa que você terá que fazer é certificar-se de ter configurado o XBMC para a mesma resolução que o monitor / TV em que ele será exibido, caso contrário, certos eventos podem acionar a janela XMBC para reverter para o tamanho isso é definido em sua configuração.

    
por K.jensen 04.12.2012 / 23:43
1

O roteiro acima é perfeito; assumindo que o DISPLAY está correto para sua configuração. Se não funcionar, provavelmente é o DISPLAY ou a linha final do wmctrl.

Não funcionou para mim, mas simplificar a linha para o seguinte foi o truque:

wmctrl -r "XBMC Media Center" -b "toggle,fullscreen"
    
por adalle 16.02.2013 / 16:58