音が出ているときはスクリーンセーバを止める

 これの続き。
doroyamada.hatenablog.jp

 この時はとりあえずaudaciousが起動している時だけ止めるようにした。
 でもpulseaudioのpavucontrolの画面で再生中だけディバイスが表示されるんだから、コマンドラインでも状態を取得できるはずと考えた。
 再生中。

 休止中。

 pacmd list-sinksを実行して見ていたらそれらしき区分発見。

(以前略)
  * index: 1
	name: <alsa_output.pci-0000_00_14.2.iec958-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: RUNNING
	suspend cause: (none)
	priority: 9038
(以下略)

 ではこれを検知してpokeしてやればいいかと。

#!/usr/bin/php
<?php
$ret = `pacmd list-sinks|grep "state: RUNNING"`;
if(strlen($ret) >10) {
		exec("xfce4-screensaver-command -p");
}
?>

 前回はxubuntuの起動時開始プログラムとしてスクリプトを登録して、そのスクリプト内で無限loopさせていたが、今度はcronで5分おきに走らせてみた。