web-dev-qa-db-fra.com

Comment exécuter XBMC sur le double écran nvidia et l’empêcher de prendre le contrôle du clavier et de la souris?

J'ai configuré le double écran sous Ubuntu 12.04. J'ai une GeForce 8500 GT et j'ai utilisé le panneau de configuration nVidia pour configurer le double écran en mode "Écran séparé". Voici le xorg.conf résultant:

# 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

Tout va bien et j'ai un Nice XWindow vierge affiché sur mon téléviseur (le 2ème moniteur). Je lance ensuite XBMC depuis un terminal sur le moniteur du PC en utilisant:

DISPLAY=:0.1 xbmc

XBMC s'allume assez bien sur le téléviseur, mais je ne peux plus utiliser le moniteur, la souris ou le clavier de l'ordinateur principal, car XBMC sur l'écran du téléviseur semble avoir le focus. J'espérais avoir XBMC sur la télévision et laisser les enfants utiliser la télécommande MCE pendant que je travaillais sur l'écran du PC.

Est-ce que quelqu'un a une idée de comment surmonter cela? Je suppose que xorg.conf est amusant et que des jeux sont nécessaires, mais je ne sais pas par où commencer pour être honnête.

6
Paul Swartout

Je cherchais le même.

J'ai d'abord trouvé votre question, mais après avoir cherché un peu plus, j'ai trouvé une réponse efficace et je suis revenu ici pour le partager.

La page qui a la réponse est située: http://blog.burlock.org/xbmc/77-fullscreen-xbmc-without-locking-the-mouse

Un copier/coller des bases:

Tout d'abord, vous devrez installer une petite application astucieuse appelée "wmctrl", qui nous permet de modifier certaines propriétés de la fenêtre, telles que le masquage de la bordure ou la création d'une fenêtre en plein écran.

Sudo apt-get install wmctrl

Ensuite, vous aurez besoin du script suivant. Je l'ai appelé "xbmc-fs" pour des raisons évidentes. C'est assez explicite, alors jetez un coup d'œil aux commentaires. La seule chose que vous pourriez avoir besoin de changer est la cinquième ligne où l’affichage est sélectionné. Dans mon cas, le téléviseur est sur l’écran 1, c’est ce que j’ai défini dans le fichier. Si le vôtre est sur l’affichage 0, changez simplement le 1 en 0 sur la ligne 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

La seule autre chose à faire est de vous assurer que vous avez défini XBMC sur la même résolution que le moniteur/téléviseur sur lequel il sera affiché. Dans le cas contraire, certains événements peuvent déclencher le retour de la taille de la fenêtre XMBC à la taille définie. c'est la configuration.

6
K.jensen

Le script ci-dessus est parfait; en supposant que l’AFFICHAGE est correct pour votre configuration. Si cela ne fonctionne pas pour vous, il s’agit probablement de la ligne d’affichage ou de la dernière ligne wmctrl.

Cela ne fonctionnait pas pour moi, mais simplifier la ligne comme suit:

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