12.04では、XBMCでビデオを見ている間に画面がスリープ状態になることはありませんでした。ただし、12.10にアップグレードして設定を変更しなかった場合は、変更されます。
XBMCでビデオを再生しているときに、他のときに画面がオフになるのを実際に無効にせずに、画面が自動的にオフになるのを防ぐ方法はありますか?
理想的には、これにXBMC固有の設定がありますか?これは12.10で何らかの形で壊れたXBMCの機能でしたか、それともUbuntu内のXBMC以外の変更により変更された機能ですか?
これは buntuのXBMCパッケージのバグ のようです
どのバージョンをインストールしたかはわかりませんが、PPA *のバージョンは私のシステムにインストールされていないようです。これはもちろん、ubuntuの設定が異なるためである可能性があります。
そうでない場合は、XBMCをセッションとして使用することができます(ログイン画面で、名前の横にあるubuntuロゴを押してXBMCを選択します。統一されず、フルスクリーンXMBCになります)。団結の設定はそこにないので、スクリーンセーバーがないと幸運になるかもしれません。 (自動ログインを設定している場合は、ログアウトを押してログイン画面を取得する必要があります)
指定した間隔(XBMCが実行されている場合のみ)でマウスの動きをシミュレートし、画面がオフにならないようにするシェルスクリプトを作成できます。
手順に従ってください:
必要なツールをインストールします:
xdotool この仕事をしてくれます。ターミナルで次のコマンドを実行してインストールします。
Sudo apt-get install xdotool
スクリプト:
次のスクリプトをPCのどこかに保存します。必要に応じてsleep_period
を変更できます。60秒に設定しました。このスクリプトは、xbmc.bin
実行中というプロセスがあるかどうかを確認します。そして、それが見つかると、プロセスがアクティブな間、マウスの動きをシミュレートするためにループします。それ以外の場合は、指定された間隔後にプロセスを再度チェックします。
#!/usr/bin/env bash
sleep_period=60s #seconds
mouse_x=0
mouse_y=0
movement_px=2
mouse_x=$(xdotool getmouselocation 2>/dev/null | sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print $1}')
mouse_y=$(xdotool getmouselocation 2>/dev/null | sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print $1}')
while true; do
if [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; then
while [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; do
xdotool mousemove $((mouse_x+${movement_px})) $((mouse_y+${movement_px}))
xdotool mousemove $((mouse_x-${movement_px})) $((mouse_y-${movement_px}))
sleep ${sleep_period}
done
else
sleep ${sleep_period}
fi
done
このスクリプトを実行可能にします:
保存したファイルを右クリック>>選択 Properties >>で Permission タブ、チェックマークを付ける Execute。
すべての起動時にこのスクリプトを自動的に実行します:
これを行うには、Startup Applicationsを使用します。を押してダッシュを開きます Enter Startup Applications
のクエリ>>スタートアップアプリケーションウィンドウで、をクリックします Add >>次に、ポップアップするダイアログで、情報を入力します。
Name:オプション、これに名前を付けたいものは何でも。
Command:保存したファイルへのパス。
コメント:オプション、追加したい場合。
システムを再起動し、XBMCで映画をお楽しみください。
これはXBMCの例です(プロセス名xbmc.bin
)。ただし、ステップ2で説明したスクリプトのxbmc.bin
を希望するプロセスの名前に置き換えるだけで、他の任意のプロセスに使用することもできます。上記のスクリプトで次の行を見つけます。
while true; do
if [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; then
while [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; do
2行目と3行目のxbmc.bin
を、選択したプロセス名に置き換えます。
GUI(GNOME)の場合:
System Monitor
を使用して、プロセスの名前を見つけることができます。押す Super ダッシュを開き、「システムモニター」を照会して起動します。の中に Processes タブでは、最初の列としてプロセス名を見つけることができます。
ターミナル付き:
top
を実行して、実行中のすべてのプロセスをリストできます。 Command
という最後の列は、プロセスの名前を示しています(ただし、最初の15文字に制限されています)。
ここでは、Firefoxがfirefox
という名前になっていることがわかります。したがって、Firefoxの実行中にこの動作が必要な場合は、スクリプト内のxbmc.bin
をfirefox
に置き換えれば、他のすべては問題なく動作します。
謝辞:スクリプトを見つけました here 。しかし、私はそれをコンパクトにし、質問の要求を満たすために必要な修正を加えました。
非常に簡単な解決策は、 カフェイン です。カフェインは「スクリーンセーバーと「スリープ」省電力モードの両方の起動を一時的に防ぐことができるステータスバーアプリケーションです」。
有効にするには、ステータスバーインジケーターをクリックするのと同じくらい簡単ですが、xbmcの起動時にスクリーンセーバーが自動的に無効になるように設定することもできます。下のスクリーンショットをご覧ください
Gnomeを使用している場合は、 カフェインgnome拡張 をインストールできます。そうでない場合、15.04(vivid)までのUbuntuの場合、ランチパッドppaからカフェインをインストールできます。
Sudo add-apt-repository ppa:caffeine-developers/ppa
Sudo apt-get update
Sudo apt-get install caffeine
15.10以降では、PPAなしでインストールできます
Sudo apt install caffeine
楽しい!
これらのソリューションはすべて、ビデオを再生しているときだけでなく、xbmcが実行されているときは常にスクリーンセーバーをオフにします。 UPnPサーバーが組み込まれているため、24時間365日稼働していますが、ビデオがローカルで再生されている場合にのみスクリーンセーバーを無効にします。
XBMCでhttpおよびJSONサポートを有効にします。次に、プレーヤーがアクティブかどうかを確認するリクエストをループします。その場合は、xscreensaver-command -disableを発行します(スクリーンセーバーごとに調整できます)。そうでない場合は、何もしません。 50秒ごとに確認するだけで十分です。
Pythonコードはこちら: http://sumnerhayes.com/software/
これらを〜/ bin /で使用します。
#!/bin/bash
# ssoff - disable screensaver and power mgmt
pkill xscreensaver
xset s 0
xset -dpms
#!/bin/bash
# sson - activate screen and power mgmt
xscreensaver > /dev/null 2>&1 &
xset s 100
xset +dpms
もちろん、これらを実行するアイコンを作成できますが、XBMCも使用しません