it-swarm.com.de

Wie kann man XBMC auf einem nvidia Dual-Screen ausführen und verhindern, dass es Tastatur und Maus übernimmt?

Ich habe Dual Screen unter Ubuntu 12.04 eingerichtet. Ich habe eine GeForce 8500 GT und habe das nVidia-Bedienfeld verwendet, um den Dual-Bildschirm im Modus "Separater Bildschirm" einzurichten. Hier ist der resultierende xorg.conf:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 295.33  ([email protected])  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

Alles in Ordnung und ich habe ein schönes, leeres XWindow auf meinem Fernseher (dem 2. Monitor). Ich starte dann XBMC von einem Terminal auf dem PC-Monitor mit:

DISPLAY=:0.1 xbmc

XBMC feuert auf dem Fernseher sehr gut an, aber ich kann den PC-Hauptmonitor/die Maus/die Tastatur nicht mehr verwenden, da XBMC auf dem Fernsehbildschirm den Fokus zu haben scheint. Ich hatte gehofft, XBMC auf dem Fernseher laufen zu lassen und die Kinder die MCE-Fernbedienung benutzen zu lassen, während ich mit meiner Arbeit am PC-Monitor weitermache.

Hat jemand eine Idee, wie man das überwinden kann? Ich gehe davon aus, dass xorg.conf Spaß und Spiele benötigt, aber ich habe keine Ahnung, wo ich anfangen soll, um ehrlich zu sein.

6
Paul Swartout

Ich habe dasselbe gesucht.

Ich habe deine Frage zuerst gefunden, aber nachdem ich ein bisschen mehr gesucht habe, habe ich eine funktionierende Antwort gefunden und bin zurückgekommen, um sie zu teilen.

Die Seite mit der Antwort befindet sich: http://blog.burlock.org/xbmc/77-fullscreen-xbmc-without-locking-the-mouse

Ein Kopieren und Einfügen der Grundlagen:

Zunächst müssen Sie eine clevere kleine Anwendung namens "wmctrl" installieren, mit der wir bestimmte Fenstereigenschaften ändern können, z. B. den Rahmen ausblenden oder ein Fenster als Vollbild anzeigen.

Sudo apt-get install wmctrl

Als nächstes benötigen Sie das folgende Skript. Ich habe es aus offensichtlichen Gründen "xbmc-fs" genannt. Es ist ziemlich selbsterklärend, schauen Sie sich die Kommentare an. Sie müssen möglicherweise nur die fünfte Zeile ändern, in der die Anzeige ausgewählt ist. In meinem Fall ist der Fernseher auf dem Display 1 zu sehen, also habe ich das in der Datei eingestellt. Wenn deins auf der Anzeige 0 ist, ändern Sie einfach die 1 in eine 0 in Zeile 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 $1}'`
done

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

Das einzige andere, was Sie tun müssen, ist sicherzustellen, dass Sie XBMC auf die gleiche Auflösung wie den Monitor/Fernseher eingestellt haben, auf dem es angezeigt wird. Andernfalls können bestimmte Ereignisse dazu führen, dass das XMBC-Fenster auf die eingestellte Größe zurückgesetzt wird Es ist die Konfiguration.

6
K.jensen

Das obige Skript ist perfekt; vorausgesetzt, das DISPLAY ist für Ihr Setup korrekt. Wenn es bei Ihnen nicht funktioniert, ist es wahrscheinlich entweder das DISPLAY oder die letzte wmctrl-Zeile.

Es hat bei mir nicht funktioniert, aber die Vereinfachung der folgenden Zeile hat den Trick bewirkt:

wmctrl -r "XBMC Media Center" -b "toggle,fullscreen"
1
adalle