バッテリーを節約するために、数秒後に画面の明るさが暗くなっていました。これはUbuntu 12.04のデフォルトです。ただし、ビデオを見るときは暗くなりません。
これは、VLCのようなネイティブアプリケーションを使用してビデオを見るときに正しく機能します。ただし、ブラウザ内ビデオでは、画面が暗くなるのを防ぐことはできません。カーソルを10秒ごとに移動する必要があるため、これは非常に面倒です。
私は同じ調光設定があり、Flashビデオが正しく考慮されていたMac OSXを使用していました。
YouTubeで画面が暗くなるのを防ぐ方法はありますか?
HOWTO:Flashの実行中はスクリーンセーバーを無効にします
ターミナルで次のコマンドを実行します。
mkdir -p ~/bin
Geditまたはお好みのテキストエディターを開き、これを入力します。
#!/bin/bash
# Cleanup any bad state we left behind if the user exited while flash was
# running
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true
we_turned_it_off=0
while true; do
sleep 60
flash_on=0
for pid in `pgrep firefox` ; do
if grep libflashplayer /proc/$pid/maps > /dev/null ; then
flash_on=1
fi
ss_on=`gconftool-2 -g /apps/gnome-screensaver/idle_activation_enabled`
if [ "$flash_on" = "1" ] && [ "$ss_on" = "true" ]; then
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled \
--type bool false
we_turned_it_off=1
Elif [ "$flash_on" = "0" ] && [ "$ss_on" = "false" ] \
&& [ "$we_turned_it_off" = "1" ]; then
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled \
--type bool true
we_turned_it_off=0
fi
done
done
このファイルを~/bin/flash_saver.sh
として保存します。
ターミナルに戻って実行します:
chmod +x ~/bin/flash_saver.sh
これを実行するには、ターミナルに移動して次を入力します。
~/bin/flash_saver.sh
必要に応じて、次の操作を行うことにより、このスクリプトをログオン時に実行するように設定できます。
~/bin/flash_saver.sh
12.04より新しいUbuntuバージョンを使用している場合、これはおそらく機能しません(13.04および13.10で試してみましたが、まったく機能しません)。主な開発者はこのプロジェクトでもう働いていないようですので、修正される可能性は良くありません。
私のシステム(Ubuntu 11.10)では Caffeine を使用しています。 Xubuntuでも機能するかどうか試してみてください。一部のプログラムでスクリーンセーバーを有効/無効にできる通知領域アイコンが追加されます。 Caffeineをインストールするには、次の手順を実行します。
Sudo add-apt-repository ppa:caffeine-developers/ppa
Sudo apt-get update
Sudo apt-get install caffeine
次に、ターミナルで実行します。
caffeine -p &
次に、スクリーンセーバーを無効にするプログラムを選択できます。vlc
VLCの場合、mplayer
ムービープレーヤーの場合など。
それが役に立てば幸い。
lightsOnと呼ばれるGitHub には素敵な小さなスクリプトがあります。
基本的には、フルスクリーンビデオ(firefoxまたはChromium、mplayerまたはvlcでのフラッシュ)を検索し、そうであればxscreensaverおよび自動パワーマネージャーの薄暗い画面機能を無効にします。
スクリプト自体から:
使用方法:フルスクリーンのチェック を実行したい秒数でスクリプトを開始します。例: 「./lightsOn.sh 120&」は、Mplayer、 VLC、Firefox、またはChromiumがフルスクリーンの場合は120秒ごとにチェックし、そうであればスクリーンセーバーと電源管理を遅らせます。 秒数は、スクリーンセーバーまたは電源管理がアクティブになるのに要する時間 よりも10秒短くする必要があります。 引数を渡さない場合、チェックは50回ごとに実行されます。秒。
したがって、自動開始フォルダーからスクリプトを ここの回答ごとに として呼び出します。
Flash/vlc/mplayerを実行しているかどうかのスクリプトを調整します
スクリプトを実行するための実行権をスクリプトに与えることを忘れないでください.
chmod +x lightsOn.sh
完全にあなたが望んでいるものではありませんが、この小さなスクリプトは、実行されるたびにマウスの動きを登録します。 cronにドロップして、xの量ごとに1回実行できます。それは画面がオフになるのを止め、あなたがビデオを見ていないときにマウスを動かすと、マウスの1 1の動きはほとんど目立ちません
#!/bin/bash
#move the mouse
xte 'mousermove 1 1'
ちなみに、このアイデアはxkcdコミックから完全に得られました。 http://xkcd.com/196/
きちんとした小さなGnome UI要素を使用して、@ njallamが提供するスクリプトと同等の事前ロールを作成するには、Caffeineアプレットを試してください。
https://launchpad.net/caffeine
http://ubuntu-Tweak.com/app/caffeine/
Webupd8には、CaffeineとLightson.shに関する 記事 があり、FlashまたはHTML5ビデオの再生中にスクリーンセーバーを無効にしました。 Lightsonスクリプトは、FirefoxとChromeの両方で機能し、VLCを含めるように設定できます。これが役立つことを願っています。
スクリプトをインストールするためにWebupd8によって提供されるコードが続く場合:
mkdir -p ~/scripts && cd ~/scripts
wget https://raw.github.com/hotice/lightsOn/master/lightsOn.sh
chmod +x lightsOn.sh
スクリーンセーバーのオプションだけでなく、電源管理オプション、特に「非アクティブなときにディスプレイをスリープ状態にする...」オプションも確認する必要があります。
ラップトップには、その名前の2つの設定があります。ラップトップがAC電源で実行されているときと、バッテリーで実行されているときです。
カフェインを使用: ppa page 。
インストールする方法:
Sudo apt-add-repository ppa:caffeine-developers/ppa
Sudo apt-get update
Sudo apt-get install caffeine
実行方法:
ヒット Alt + F2、次にcaffeine
と入力します。
[カフェイン]アイコンをクリックして、[スクリーンセーバーを無効にする]をクリックします。
Gnome-screensaver(Ubuntuの11.10バージョン以降のデフォルトのスクリーンセーバー)以外のスクリーンセーバーを使用している場合 この回答 が役立つ場合があります。
個人的に、私はgnome-screensaverを他の何かに変更しませんでした。また、どのような理由でCaffeineが機能しないのかわかりません(おそらく時代遅れです)。
そうは言っても、他のbashスクリプト( this 、 this および this )から始めて、新しいスクリプトgnome_screensaver_off.sh
これは、YouTubeがビデオのレンダリングにFlashプレーヤーを使用しているときに意図したとおりに機能します。
terminal を開き、次のコマンドに続いて指示を実行します。
mkdir -p bin
-このコマンドは、bin
フォルダーがまだない場合、home
フォルダーを作成します。gedit ~/bin/gnome_screensaver_off.sh
-これにより、geditに新しいファイルgnome_screensaver_off.sh
が作成されます。#!/bin/bash
# Getting the previous configuration
back=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-display-ac)
screensaver_is_off=0
delay=$[$back - 10]
# Defining the restore function
function restore {
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac $back
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery $back
gsettings set org.gnome.desktop.session idle-delay $back
bmin=$[$back / 60]
#notify-send "Screen sleep time restored to $bmin minutes."
notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Screen sleep time restored to $bmin minutes."
}
# Defining the disable_screensaver function
function disable_screensaver {
# Making sure the user don't mess up...
trap 'restore && exit 0' INT HUP
# Disabling sleep time
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0
gsettings set org.gnome.desktop.session idle-delay 0
notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Screen sleep time turned off."
}
while true; do
if [ "$delay" -le "50" ]; then
sleep 50
else
sleep $delay
fi
flash_on=0
#Check if Chrome, Chromium or Firefox is open with a flash video running on it
if pgrep -lfc ".*((c|C)hrome|chromium|firefox|).*flashp.*" > /dev/null ; then
flash_on=1
else
flash_on=0
fi
if [ "$flash_on" -eq "1" ] && [ "$back" -ne "0" ] && [ "$screensaver_is_off" -eq "0" ]; then
disable_screensaver
screensaver_is_off=1
Elif [ "$flash_on" -eq "0" ] && [ "$screensaver_is_off" -eq "1" ]; then
restore
screensaver_is_off=0
fi
done
exit 0
chmod +x gnome_screensaver_off.sh
-スクリプトの実行アクセスを許可します。~/bin/gnome_screensaver_off.sh
を実行します。必要に応じて、次の操作を行うことにより、このスクリプトをログオン時に実行するように設定できます。
この意味で質問は未解決のままです...
fossfreedom 、 Meer Borg 、 njallam 、 desgua などが提供する提案に感謝します。
ChromeでのHTML5再生のソリューション
概要
次のスクリプトは、アクティブな全画面Chromeセッションが見つかった場合、スクリーンセーバーを無効にします。デフォルトでは、5分ごとにチェックを実行します。次の3つの条件のいずれかが満たされると、スクリプトは自動的にスクリーンセーバーを再開します。
スクリプト
#!/bin/bash
## Variables ##
ChromeWmClass="Google-chrome"
FullScreenProperty="_NET_WM_STATE_FULLSCREEN"
CheckInterval="300" # check every 5 minutes
## Main ##
while true; do
sleep "$CheckInterval"
ActiveWinID=$(xdotool getactivewindow)
if [[ -z "$ActiveWinID" ]]; then
continue
fi
ActiveWinProp=$(xprop -id "$ActiveWinID")
if echo "$ActiveWinProp" | grep "$FullScreenProperty" > /dev/null 2>&1 \
&& echo "$ActiveWinProp" | grep "WM_CLASS" | grep "$ChromeWmClass" > /dev/null 2>&1
then
if [[ -z "$SuspendingID" ]]; then
echo "Suspending screensaver for $ActiveWinID"
xdg-screensaver suspend "$ActiveWinID"
SuspendingID="$ActiveWinID"
Elif [[ "$ActiveWinID" = "$SuspendingID" ]]; then
echo "$ActiveWinID is already suspending screensaver."
Elif [[ -n "$SuspendingID" ]]; then
echo "Resuming screensaver for $SuspendingID"
xdg-screensaver resume "$SuspendingID"
echo "Suspending screensaver for $ActiveWinID"
xdg-screensaver suspend "$ActiveWinID"
SuspendingID="$ActiveWinID"
fi
else
if [[ -n "$SuspendingID" ]] \
&& xprop -id "$SuspendingID" > /dev/null 2>&1
then
echo "Resuming screensaver for $SuspendingID"
xdg-screensaver resume "$SuspendingID"
SuspendingID=""
else
echo "No change."
fi
fi
done
少し古いですが、ここでは複数のブラウザをサポートしています:
#!/bin/bash -eu
# List your browsers here
browsers_list=( "firefox" "chrome" "chromium" "opera" )
# Cleanup any bad state we left behind if the user exited while flash was running
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true
idle_off=0
while true; do
sleep 60
for browser in "${browsers_list[@]}" ; do
for pid in `pgrep $browser` ; do
flash_on=0
if [ -O /proc/$pid/maps ] && grep libflashplayer /proc/$pid/maps > /dev/null ; then
flash_on=1
fi
ss_on=`gconftool-2 -g /apps/gnome-screensaver/idle_activation_enabled`
if [ "$flash_on" = "1" ] && [ "$ss_on" = "true" ]; then
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool false
idle_off=1
Elif [ "$flash_on" = "0" ] && [ "$ss_on" = "false" ] && [ "$idle_off" = "1" ]; then
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true
idle_off=0
fi
done
done
done
スクリプトをchmod +x
どこかに保存し、StartupApplicationsに追加するだけです。次のようなものを使用して、使用可能なすべてのブラウザーをリストする方法があります。
update-alternatives --list x-www-browser
しかし、一部の実行可能ファイルはプロセスよりも名前が付いていないという事実を処理する方法がわかりません(たとえば、/usr/bin/google-chrome
はchrome
として実行されます)。
デスクトップに依存せず、 xdotool に依存する最も単純な非知的アプローチは、N秒ごとにキーストロークをシミュレートすることです。
heartbeat.sh
というスクリプトを使用します。
#!/bin/bash
while :
do
Nice -n 1 xdotool key shift
date +%T ## show some sign of life
sleep 100
done
ビデオの再生中にスクリプトを起動し、不要になったら停止します。
xdotool
はSudo apt-get install xdotool
でインストールできます。
何らかの種類の自動音声検出(and)も必要な場合は、PulseAudio固有のレシピで大丈夫です。次に、ソリューションのバリエーションを示します。上記はオーディオが再生されているかどうかを確認します:
#!/bin/bash
while :
do
if [[ ! -z $(pacmd list-sink-inputs | grep RUNNING) ]] ; then
echo 'Audio is playing. Inhibiting screensaver'
Nice -n 1 xdotool key shift ;
else
echo 'No audio detected'
fi
date +%T ## show some sign of life
sleep 100
done
Alsaを使用する場合、テストはおそらく(未テスト)のようなものになります。
if [[ ! -z $(grep RUNNING /proc/asound/card*/pcm*/sub*/status) ]] ; then...
このソリューションの潜在的な欠点は、音楽やラジオを聞いているだけでも画面がスリープしないことですが、ほとんどの場合、これは問題ではないと思います。
this PPA のVLCは、VLCの現在のバージョンであることに加えて、スクリーンセーバーの抑制も正しく実装しています。
このコマンドを使用してこのPPAを追加できます
Sudo add-apt-repository ppa:n-muench/vlc
手元でフルコントロールまたはマニュアルコントロールを好む人向け
このコマンドラインでは、スクリーンセーバーの遅延時間を設定できます。
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
「0」(ゼロ)を使用してオンにするか、別の値を使用して遅延を秒単位で定義します。
次のスクリプトは、キーが押されるまで画面を保持します。
#!/bin/bash
#
# To turn screen sleep time off for a while then back on
#
# by desgua 2013/01/27
#
# Getting the previous configuration
back=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-display-ac)
# Defining the restore function
function RESTORE {
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac $back
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery $back
gsettings set org.gnome.desktop.session idle-delay $back
bmin=$(echo "$back / 60" | bc)
#notify-send "Screen sleep time restored to $bmin minutes."
echo
echo "Screen sleep time restored to $bmin minutes."
echo
exit 0
}
# Making sure the user don't mess up...
trap 'RESTORE && exit 0' INT HUP
# Disabling sleep time
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0
gsettings set org.gnome.desktop.session idle-delay 0
echo
echo "Screen sleep time turned off."
echo
#notify-send "Screen sleep time turned off."
# Waiting for user to press some key and then restore the previous configuration
read -n 1 -p 'Press any key to turn it on again. ' b
RESTORE
exit 0
スクリプトを実行する方法:
使用しているUbuntuのバージョンによって多少異なります。 11.10では、画面の右上隅にある歯車のアイコンをクリックして、「システム設定」を見つけることができます。これを選択し、ポップアップするダイアログで「画面」を選択します。ドロップダウンメニューで画面が空白になるまでコンピューターがアイドル状態になる時間を設定するか、[ロック]ボタンをクリックしてその機能を無効にすることができます。
古いシステムを使用している場合は、他の場所でこの設定を調べる必要がありますが、どこかにあります。
Ubuntu-Gnome 14.04を使用している場合は、カフェインと呼ばれるシンプルで便利な拡張機能があります。クリックでトップバーから動作します。
拡張機能は、Gnome-Shell Extensions Webサイトへのこのリンクに従ってインストールできます。
https://extensions.gnome.org/extension/517/caffeine/
出典:この記事のコメントセクション:
http://www.maketecheasier.com/prevent-ubuntu-sleep-while-watching-video/
上記の上部のスクリプトは、Ubuntu 14.04 LTS Unityでは動作しません。ここで動作する更新されたバリアント:
#!/bin/bash
id_saved=0
sac_saved=0
sbat_saved=0
dim_saved=false
ss_save()
{
id_saved=`gsettings get org.gnome.desktop.session idle-delay`
sac_saved=`gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout`
sbat_saved=`gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout`
dim_saved=`gsettings get org.gnome.settings-daemon.plugins.power idle-dim`
}
ss_set()
{
gsettings set org.gnome.desktop.session idle-delay "$1"
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout "$2"
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout "$3"
gsettings set org.gnome.settings-daemon.plugins.power idle-dim "$4"
}
ss_on()
{
ss_set "$id_saved" "$sac_saved" "$sbat_saved" "$dim_saved"
}
ss_off()
{
ss_set 0 0 0 false
}
trap ss_on EXIT
already_off=0
flash_on=0
ss_save
while true; do
if top -bcw 200 | sed -e '1,/PID/d' | head -1 | grep flash > /dev/null
then
flash_on=1
off_count=0
else
off_count=`expr $off_count + 1`
echo "flash_off_count=$off_count"
if [ $off_count -gt 5 ]; then
flash_on=0
fi
fi
if [ "$flash_on" = "1" -a "$already_off" = "0" ]; then
echo "screensaver: off"
ss_off
already_off=1
Elif [ "$flash_on" = "0" -a "$already_off" = "1" ]; then
echo "screensaver: on"
ss_on
already_off=0
Elif [ "$already_off" = "0" ]; then
echo "screensaver: save possibly new params"
ss_save # user may update the values
fi
sleep 30
done
ところで、このスクリプトは、ビデオが再生されているときのみ、つまりflashplayerがCPUコンシューマのトップにあるときのみ、スクリーンセーバーを無効にします。
起動時にこのコマンドを実行/設定するだけです:
gconftool --type string --set /apps/compiz-1/plugins/fade/screen0/dim_unresponsive false
また、firefoxのhardware acceleratorオプションのチェックを外してみてください。
回避策として次のスクリプトを使用します。
#!/bin/bash
while true
do
xdotool key Shift_L
sleep 1m
done
左シフトキーを1分に1回押すことをシミュレートし、画面が暗くなるのを防ぎます。もちろん、この欠点は、YouTubeを視聴するたびにスクリプトを実行する必要があることです。一方、これは単純であり、すべてではないにしてもほとんどの構成で機能します。
これをインストールする必要があるかもしれません
Sudo apt-get install xdotool
これは私の解決策です:
https://github.com/yanyingwang/shanghai-tools/blob/master/kit/the-bund-light.md
https://github.com/yanyingwang/shanghai-tools/blob/master/kit/the-bund-light.sh
the-bund-light.sh
をダウンロードして、startbootingアプリケーションに追加するだけです:
Sudo apt-get install xdotool
cd ~ && wget https://raw.githubusercontent.com/yanyingwang/shanghai-tools/master/kit/the-bund-light.sh
cat >> ~/.config/autostart/the-bund-light.sh.desktop <<EOF
[Desktop Entry]
Type=Application
Exec=$HOME/shanghai-tools/kit/the-bund-light.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[zh_CN]=TheBundLight
Name=TheBundLight
Comment[zh_CN]=
Comment=
EOF
注意:コード内のExec
の値は、コンピューターのthe-bund-light.sh
のパスでなければなりません。