web-dev-qa-db-ja.com

NVIDIAデュアルスクリーンでXBMCを実行し、キーボードとマウスを引き継ぐのを停止するにはどうすればよいですか?

Ubuntu 12.04でデュアルスクリーンをセットアップしました。私はGeForce 8500 GTを所有しており、nVidiaコントロールパネルを使用してデュアルスクリーンを「別個のスクリーンモード」でセットアップしました。結果のxorg.confは次のとおりです。

# 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

すべて順調で、テレビ(2番目のモニター)に素敵な空白のXWindowが表示されています。次に、以下を使用してPCモニターの端末からXBMCを起動します。

DISPLAY=:0.1 xbmc

XBMCはテレビで非常にうまく起動しますが、テレビ画面のXBMCにフォーカスがあるように見えるため、メインのPCモニター/マウス/キーボードを使用できなくなりました。私はXBMCをテレビで実行し、PCモニターで作業中に子供たちにMCEリモートを使用させたいと考えていました。

誰もこれを克服する方法を知っていますか?私はxorg.confの楽しみとゲームが必要だと思っていますが、どこから正直に始めればいいのか分かりません。

6
Paul Swartout

私は同じものを探していました。

最初にあなたの質問を見つけましたが、もう少し検索した後、実用的な答えを見つけて、ここに戻って共有しました。

答えがあるページは次の場所にあります。 http://blog.burlock.org/xbmc/77-fullscreen-xbmc-without-locking-the-mouse

基本のコピーと貼り付け:

最初に、「wmctrl」と呼ばれる巧妙な小さなアプリケーションをインストールする必要があります。これにより、境界線の非表示やウィンドウのフルスクリーン化など、特定のウィンドウプロパティを変更できます。

Sudo apt-get install wmctrl

次に、次のスクリプトが必要になります。明白な理由から、「xbmc-fs」と呼んでいます。それはかなり自明ですので、コメントを見てください。変更する必要があるのは、ディスプレイが選択されている5行目だけです。私の場合、テレビはディスプレイ1にあるので、ファイルに設定したものです。 yoursがディスプレイ0にある場合、5行目で1を0に変更します。

#! /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

他に必要なことは、XBMCが表示されるモニター/ TVと同じ解像度に設定されていることを確認することです。そうしないと、特定のイベントによってXMBCウィンドウがトリガーされ、構成です。

6
K.jensen

上記のスクリプトは完璧です。 DISPLAYがセットアップに合っていると仮定します。うまくいかない場合は、おそらくDISPLAYか、最後のwmctrl行です。

私にとってはうまくいきませんでしたが、行を次のように単純化することでうまくいきました。

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