Audacious起動中はスクリーンセーバを停める

 いい気分で聞いていたら突然音が途切れる。画面はブラックアウト(スクリーンセーバの設定がそうしている)。
 xfce4-screensaver-commandというコマンドでなんとかなりそう。

 ~# xfce4-screensaver-command --help                                  
用法:
  xfce4-screensaver-command [オプション…]

ヘルプのオプション:
  -h, --help                 ヘルプのオプションを表示する

アプリケーションのオプション:
  --exit                     スクリーンセーバーを正常に終了させる
  -q, --query                スクリーンセーバーの状態を問い合わせる
  -t, --time                 スクリーンセーバーがアクティブになっていた時間を問い合わせる
  -l, --lock                 実行中のスクリーンセーバープロセスに画面をすぐにロックするよう指示する
  -c, --cycle                スクリーンセーバーがアクティブな場合は別のグラフィックデモに切り替えます
  -a, --activate             スクリーンセーバーをオンにする(画面をブランクにする)
  -d, --deactivate           スクリーンセーバーがアクティブになっている場合は非アクティブにする(画面の非ブランク化を解除する)
  -p, --poke                 実行中のスクリーンセーバーをつついて、ユーザーアクティビティをシミュレートする
  -i, --inhibit              スクリーンセーバーのアクティブ化を禁止します。禁止されている間はコマンドをブロックします。
  -n, --application-name     スクリーンセーバーを禁止している呼び出し元アプリケーション
  -r, --reason               スクリーンセーバーを禁止する理由
  -V, --version              このアプリケーションのバージョン

 

 他のアプリケーションから呼び出すためのコマンドっぽい。
 では定期的にpokeしてやったらよええんちゃうかと、こういうループを作ってみる。

#!/usr/bin/php
<?php
while(TRUE){
	$ret = `ps ax |grep audacious |grep -v grep`;
	if(strlen($ret) >10) {
		exec("xfce4-screensaver-command -p");
	}
	sleep(600);
}
?>

 セッション開始時に実行するようにしておくと、audacious起動時には定期的に操作をシミュレーションすることによってスクリーンセーバが起動しないようになる。誤動作防止はなし。

 後で発見したけど、Caffeinというアプリがあった。
forums.linuxmint.com
kledgeb.blogspot.com