
Ubuntu日本語フォーラム
ログインしていません。
xscreensaverをamazon prime videoの視聴中は無効としたいのですが、
出来ません。ブラウザはFirefoxを使用しています。
ご教示頂けますと助かります。
よろしくお願いいたします。
オフライン
https://github.com/iye/lightsOn/blob/master/lightsOn.sh
上記のシェルスクリプトを実行することでフルスクリーンにて視聴している場合には、
xscreensaverが無効できることがわかりました。
ですが、
フルスクリーンでなくても無効できる方法があると良いのですが、難しいのでしょうか。
自分で一時的にxscreensaverをマニュアルで無効にすれば済む話なのかもしれませんが、
windowsと同じような動作をさせてみたいという興味もあり、もしも方法があるようで
したら、ご教示願いたいです。
よろしくお願いいたします。
オフライン
そのプログラムを、改良してみました。使って見てください。だめだったら言ってください。
https://github.com/okajimaitsuki/modifi … ightsOn.sh
オフライン
okajimaitukiさん
お返事遅くなってしまい、誠に申し訳ございませんでした。
ありがとうございました。改良していただいたシェルスクリプト機能しています。
助かります。内容確認して、自分なりに理解しようとも思います。
本当にありがとうございました。m(_ _)m
オフライン
okajimaitukiさん
上手く機能していると思ったのですが、違っておりまして、機能上は改良前のものと
同様の動作のようでフルスクリーン時スクリーンセーバーが無効となる動作となって
おります。
自分なりにシェルスクリプトの内容を確認して解析したいと思います。
オフライン
すいません、Githubの使い方間違えてました。
CloneしてからUploadしてました。
Forkしました。
https://github.com/okajimaitsuki/lightsOn/
が正しいです。
オフライン
よくスクリプトを見ていると、なんとxscreensaverを無効化していたのはたったの1行です。
delayScreensaver()関数には、kscreensaverとxscreensaverを判別し、実際に実行していたのは一行だけでした。
$ xscreensaver-command -deactivate > /dev/null
だけです。
面倒くさい場合、
https://github.com/okajimaitsuki/disablexscreensaver.git
をcloneして、中のdisable.sh
オフライン
間違えて送信ボタンをなぜか押してしまいました。
中のdisable.shを実行してください。
オフライン
okajimaitukiさん
ありがとうございます。大変勉強になります。
自分でも色々調べて機能するシェリスプリクトを見つけました。
自動起動しても問題なく動作することが確認できましたので記述しておきます。
https://www.it-swarm-ja.tech/ja/video/映画の再生中にxscreensaverを停止するにはどうすればよいですか?/961656256/
で”オーディオが再生されているかどうかを検出する”シェルスクリプトが紹介されています。以下参考ください。
【紹介されていたシェルスクリプト】
------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
while true
do
state=$(pacmd list-sinks | grep -A 4 "*" | grep "state: " | cut -c 9-)
if [[ $state == SUSPENDED || $state == IDLE ]]
then
echo "State: $state. Not pausing screensaver."
sleep 2m
else
echo "State: $state. Pausing screensaver."
xscreensaver-command -deactivate > /dev/null
sleep 4m
fi
done
------------------------------------------------------------------------------------------------------------------------------------------------
ただし、このシェルを実行させてみましたが、上手く実行されませんでした。
それで、以下のように変更してみました。
echo "State: $state. Not pausing screensaver."
xscreensaver -nosplash & ←追加
sleep 2m
echo "State: $state. Pausing screensaver."
xscreensaver-command -exit > /dev/null ←変更
sleep 4m
すると、ちゃんと機能していることが確認できました。
しかしながら、今度は自動起動でシェルスクリプトを実行させたのですが上手くいきませんでした。
どうやら、ターミナルが起動していないと機能しないような挙動でしたので、以下のシェルスクリプト
を自動起動して実行させています。
------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
nohup bash ”上記の変更したシェルスクリプト” &
gnome-terminal ← ターミナル起動
IDNo=$(xdotool getactivewindow)
xdotool windowminimize $IDNo ← ターミナルを最小化
------------------------------------------------------------------------------------------------------------------------------------------------
以上です。
オフライン
しかしながら、今度は自動起動でシェルスクリプトを実行させたのですが上手くいきませんでした。
← 間違いでした。
nohup bash ”オーディオを検出するシェルスクリプト変更版” &
を自動起動に設定すれば、機能しています。
以上です。
オフライン
また、訂正です。
以下の紹介されていたシェルスクリプトで基本機能していることがわかりました。
ただし、イマイチよくわからないところがありますが、
xscreensaverの周期より①の時間を短く設定する必要があるようです。
【紹介されていたシェルスクリプト】
------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
while true
do
state=$(pacmd list-sinks | grep -A 4 "*" | grep "state: " | cut -c 9-)
if [[ $state == SUSPENDED || $state == IDLE ]]
then
echo "State: $state. Not pausing screensaver."
sleep 2m
else
echo "State: $state. Pausing screensaver."
xscreensaver-command -deactivate > /dev/null
sleep 4m ・・・・①
fi
done
------------------------------------------------------------------------------------------------------------------------------------------------
オフライン