web-dev-qa-db-ja.com

YouTubeの視聴中に画面が暗くなったり、画面がロックされたりするのを防ぐにはどうすればよいですか?

バッテリーを節約するために、数秒後に画面の明るさが暗くなっていました。これはUbuntu 12.04のデフォルトです。ただし、ビデオを見るときは暗くなりません。

これは、VLCのようなネイティブアプリケーションを使用してビデオを見るときに正しく機能します。ただし、ブラウザ内ビデオでは、画面が暗くなるのを防ぐことはできません。カーソルを10秒ごとに移動する必要があるため、これは非常に面倒です。

私は同じ調光設定があり、Flashビデオが正しく考慮されていたMac OSXを使用していました。

YouTubeで画面が暗くなるのを防ぐ方法はありますか?

100
Steven Roose

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

必要に応じて、次の操作を行うことにより、このスクリプトをログオン時に実行するように設定できます。

  1. プログラム「Startup Applications」を実行します
  2. 「追加」をクリックします
  3. 名前の下に「FlashMonitor」またはあなたが認識する何かを入力します
  4. コマンドタイプ~/bin/flash_saver.sh
  5. コメント(必要な場合)に簡単な説明を入力します。例えば。 「Flashの実行中に画面のオフを停止する」

出典: HOWTO:Flashの実行中はスクリーンセーバーを無効にする-ubuntuforums

54
njallam

編集

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ムービープレーヤーの場合など。

Caffeine Preferences

それが役に立てば幸い。

31
Salem

lightsOnと呼ばれるGitHub には素敵な小さなスクリプトがあります。

基本的には、フルスクリーンビデオ(firefoxまたはChromium、mplayerまたはvlcでのフラッシュ)を検索し、そうであればxscreensaverおよび自動パワーマネージャーの薄暗い画面機能を無効にします。

スクリプト自体から:

使用方法:フルスクリーンのチェック
を実行したい秒数でスクリプトを開始します。例:
「./lightsOn.sh 120&」は、Mplayer、
 VLC、Firefox、またはChromiumがフルスクリーンの場合は120秒ごとにチェックし、そうであればスクリーンセーバーと電源管理を遅らせます。
秒数は、スクリーンセーバーまたは電源管理がアクティブになるのに要する時間
よりも10秒短くする必要があります。
引数を渡さない場合、チェックは50回ごとに実行されます。秒。

したがって、自動開始フォルダーからスクリプトを ここの回答ごとに として呼び出します。

Flash/vlc/mplayerを実行しているかどうかのスクリプトを調整します

スクリプトを実行するための実行権をスクリプトに与えることを忘れないでください.

chmod +x lightsOn.sh
14
fossfreedom

完全にあなたが望んでいるものではありませんが、この小さなスクリプトは、実行されるたびにマウスの動きを登録します。 cronにドロップして、xの量ごとに1回実行できます。それは画面がオフになるのを止め、あなたがビデオを見ていないときにマウスを動かすと、マウスの1 1の動きはほとんど目立ちません

#!/bin/bash
#move the mouse
xte 'mousermove 1 1' 

ちなみに、このアイデアはxkcdコミックから完全に得られました。 http://xkcd.com/196/

10
KentGeek

きちんとした小さなGnome UI要素を使用して、@ njallamが提供するスクリプトと同等の事前ロールを作成するには、Caffeineアプレットを試してください。

https://launchpad.net/caffeine
http://ubuntu-Tweak.com/app/caffeine/

7
andybuckley

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
6
Garry

スクリーンセーバーのオプションだけでなく、電源管理オプション、特に「非アクティブなときにディスプレイをスリープ状態にする...」オプションも確認する必要があります。

ラップトップには、その名前の2つの設定があります。ラップトップがAC電源で実行されているときと、バッテリーで実行されているときです。

5
daniel kullmann

カフェインを使用: ppa page

インストールする方法:

Sudo apt-add-repository ppa:caffeine-developers/ppa 
Sudo apt-get update
Sudo apt-get install caffeine

実行方法:

  1. ヒット Alt + F2、次にcaffeineと入力します。

  2. [カフェイン]アイコンをクリックして、[スクリーンセーバーを無効にする]をクリックします。

2
user128712

Gnome-screensaver(Ubuntuの11.10バージョン以降のデフォルトのスクリーンセーバー)以外のスクリーンセーバーを使用している場合 この回答 が役立つ場合があります。

個人的に、私はgnome-screensaverを他の何かに変更しませんでした。また、どのような理由でCaffeineが機能しないのかわかりません(おそらく時代遅れです)。

そうは言っても、他のbashスクリプト( thisthis および this )から始めて、新しいスクリプトgnome_screensaver_off.shこれは、YouTubeがビデオのレンダリングにFlashプレーヤーを使用しているときに意図したとおりに機能します。

YouTubeがFlashプレーヤーを使用しているときにgnome-screensaverを無効にします

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を実行します。

必要に応じて、次の操作を行うことにより、このスクリプトをログオン時に実行するように設定できます。

  1. DashStartup Applicationsを検索し、それを開いてAdd
  2. 名前の下に「YouTube Monitor」またはあなたが認識できるものを入力します。
  3. コマンドの下に「/home/$USER/bin/gnome_screensaver_off.sh」と入力します($ USERをユーザー名に変更します)。
  4. コメント(必要な場合)に、簡単な説明を入力します(例:「Flash Playerがブラウザで実行されているときに画面がオフになるのを止める」)。

YouTubeが HTML5 playerを使用している間はgnome-screensaverを無効にします

この意味で質問は未解決のままです...

fossfreedomMeer Borgnjallamdesgua などが提供する提案に感謝します。

2
Radu Rădeanu

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
2
Glutanimate

少し古いですが、ここでは複数のブラウザをサポートしています:

#!/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-chromechromeとして実行されます)。

2
Sheljohn

デスクトップに依存せず、 xdotool に依存する最も単純な非知的アプローチは、N秒ごとにキーストロークをシミュレートすることです。

heartbeat.shというスクリプトを使用します。

#!/bin/bash
while : 
do
    Nice -n 1 xdotool key shift
    date +%T ## show some sign of life
    sleep 100
done

ビデオの再生中にスクリプトを起動し、不要になったら停止します。

xdotoolSudo 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...

このソリューションの潜在的な欠点は、音楽やラジオを聞いているだけでも画面がスリープしないことですが、ほとんどの場合、これは問題ではないと思います。

2
ccpizza

this PPA のVLCは、VLCの現在のバージョンであることに加えて、スクリーンセーバーの抑制も正しく実装しています。

このコマンドを使用してこのPPAを追加できます

Sudo add-apt-repository ppa:n-muench/vlc
1
Rob

手元でフルコントロールまたはマニュアルコントロールを好む人向け

このコマンドラインでは、スクリーンセーバーの遅延時間を設定できます。

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

スクリプトを実行する方法:

  1. テキストを空のファイルにコピーし、
  2. ファイルを保存し、
  3. ファイルを実行可能にし、
  4. ターミナルから実行します。
1
desgua

使用しているUbuntuのバージョンによって多少異なります。 11.10では、画面の右上隅にある歯車のアイコンをクリックして、「システム設定」を見つけることができます。これを選択し、ポップアップするダイアログで「画面」を選択します。ドロップダウンメニューで画面が空白になるまでコンピューターがアイドル状態になる時間を設定するか、[ロック]ボタンをクリックしてその機能を無効にすることができます。

古いシステムを使用している場合は、他の場所でこの設定を調べる必要がありますが、どこかにあります。

0
K. P. MacGregor

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/

0
jasikevicius23

上記の上部のスクリプトは、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コンシューマのトップにあるときのみ、スクリーンセーバーを無効にします。

0
Andriy

起動時にこのコマンドを実行/設定するだけです:

gconftool --type string --set /apps/compiz-1/plugins/fade/screen0/dim_unresponsive false   

また、firefoxのhardware acceleratorオプションのチェックを外してみてください。

0
karan

回避策として次のスクリプトを使用します。

#!/bin/bash
while true
do
   xdotool key Shift_L
   sleep 1m
done

左シフトキーを1分に1回押すことをシミュレートし、画面が暗くなるのを防ぎます。もちろん、この欠点は、YouTubeを視聴するたびにスクリプトを実行する必要があることです。一方、これは単純であり、すべてではないにしてもほとんどの構成で機能します。

これをインストールする必要があるかもしれません

Sudo apt-get install xdotool
0

これは私の解決策です:

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のパスでなければなりません。

0
yanyingwang