友人は、YouTube を視聴しているときを含め、ビデオや音楽プレーヤーを使用しているときにコンピューターがサスペンドしないように設定できるパッチを入手できるか知りたがっていました。私も同じパッチがあればいいのですが。
彼は東芝のパソコンで Ubuntu 11.10 を実行しています。私は HP のパソコンで Ubuntu 11.10 を実行しています。
答え1
xmacro をインストールします (sudo apt-get install xmacro)
「myxmacro」というファイルを作成し、次の内容を記述します。
コード:
MotionNotify 90 90
MotionNotify 120 120
3. 「no.idle.sh」ファイルを作成し、実行可能にします。
コード:
touch no.idle.sh
chmod +x no.idle.sh
4.4. 「no.idle.sh」ファイルを作成し、実行可能にします。 コード:
touch no.idle.sh
chmod +x no.idle.sh
次の内容を入力します。
コード
#!/bin/bash
# No.idle.sh prevents GNOME to turn IDLE
# if there is any sound sent to speakers
# This script requires the package "xmacro"
# (apt-get install xmacro)
###########################################
# This script requires a textfile called "myxmacro"
# with the following (dummy) content:
# ------------ myxmacro ------------
# MotionNotify 90 90
# MotionNotify 120 120
# ----------------------------------
# You need to fix the path to "myxmacro" in line 31
#
#############################################
# set Log-File
LOG=/home/YOUR_USERNAME/noidle.log
sound=0
silence=0
while true; do
sleep 1
Datum=`date +%d.%m.%Y-%H:%M:%S`
# check if sound is sent to speaker
if pactl list | grep RUNNING > /dev/null; then
echo "[$Datum] Sound (Ping: $sound)" >> $LOG
sound=$((sound+1));
xmacroplay :0 </path/to/myxmacro
silence=0
else
echo "[$Datum] Silence (Ping: $silence)" >> $LOG
silence=$((silence+1));
sound=0
fi
#----------------------------------------------------
done
必要なこと: - 18行目のログファイルへのパスを修正する
31行目の「myxmacro」へのパスを修正します
- スクリプト「no.idle.sh」を GNOME スタートアップ項目に追加して、起動のたびに no.idle.sh が実行されるようにします。
終わり。
スクリプトの機能: このスクリプトは、スピーカーにサウンドが送信されているかどうかを毎秒チェックします (ターミナル コマンド pactl list | grep RUNNING を使用)。
音楽が再生されている場合、マウスの動きがシミュレートされます (xmacroplay を使用)。これにより、GNOME セッションが IDLE で実行されなくなります (その結果、PC はサスペンドしません)。
音楽が再生されていない場合は何も起こりません(つまり、セッションはアイドル状態で実行され、その後中断されます)。
ターミナルに次のように入力すると、音楽をチェックするスクリプトを見ることができます。
tail -f /path/to/noidle.log
答え2
カフェインはスクリーンセーバーの表示を妨げると思います(これがおっしゃる意味であれば)。
http://www.webupd8.org/2009/10/caffeine-10-for-linux-released.html