再生中にスクリーンセーバーが起動しないようにmplayerに指示する

再生中にスクリーンセーバーが起動しないようにmplayerに指示する

mplayerにハートビート設定があることはわかりますが、それが何であるか覚えていません。誰か教えてもらえますか?

うまくいきましたが、デフォルトではない別の迷惑な問題

答え1

mplayer30秒ごとにコマンドを実行するように切り替えることができますが、-heartbeat-cmdマニュアルページには次のように指定されています。

正しいX APIをサポートしていないスクリーンセーバーを無効にするために「乱用」することがあります。

スクリーンセーバーを無効にする実際のスイッチは-stop-xscreensaver最初に試してください。

答え2

mplayer -stop-xscreensaver私にとってはうまくいきません(Debian wheezy; xscreensaver = 5.15-3、xfce4 = 4.8.0.3、mplayer = 2:1.0〜rc4.dfsg1 + svn34540-1 + b2) - スクリーンセーバーは映画の視聴中に点灯し続けます。私はスクリーンセーバー抑制ツールxscreensaver-inhibitとmplayerラッパーを書きましたplayxscreensaver-inhibitYouTubeなど他の用途にも便利に使えるので、パネルにショートカットを入れておきました。

$HOME/bin/xscreensaver-inhibit次のように:

#!/bin/bash
usage () {
    echo "usage: $0 [on|off]"
    echo '    Turns screensaver inhibition on or off.'
    echo '    default: toggle on/off'
    exit 1;
}

if [ -n "$1" ]  ; then
    [ "$1" = "on" -o "$1" = "off" ] || usage
fi

inhibit () {
    while [ -f "$lock" ] ; do
        # echo "$lock exists"
# UPDATE Dec 2018 this command seems to have stopped working after upgrading to Debian Stretch.
        # DISPLAY=:0 xdg-screensaver reset
# Replaced with this command which is working for me,
# though if you do not use xscreensaver you might need something else.
        DISPLAY=:0 xscreensaver-command -deactivate
        sleep 50
    done
    # echo "$lock is gone"
}

lock="/tmp/xsi.lock"

if [ -e "$lock" ] ; then
    echo 'Screensaver currently inhibited.'
    on='on'
else 
    echo 'Screensaver operating normally.'
    on=''
fi

if [ "$1" = "on" ] ; then
    if [ -n "$on" ] ; then
        echo 'Starting screensaver inhibitor anyway.'
    else 
        echo 'Screensaver inhibitor started.'
    fi
    touch "$lock" && inhibit &
fi

if [ "$1" = "off" ] ; then
    if [ -n "$on" ] ; then
        echo 'Screensaver inhibitor(s) stopped.'
    else 
        echo 'Perhaps the screensaver daemon is not running or another program is inhibiting it.'
    fi
    rm -f "$lock"
fi

if [ ! -n "$1" ] ; then
    if [ -n "$on" ] ; then
        echo 'Screensaver inhibitor(s) stopped.'
        rm -f "$lock"
    else 
        echo 'Screensaver inhibitor started.'
        touch "$lock" && inhibit &
    fi
fi

$HOME/bin/play次のように:

#!/bin/sh

xscreensaver-inhibit on

DISPLAY=:0 mplayer -fs "$@"

xscreensaver-inhibit off

DISPLAY=:0SSHでログインしても、ローカルアクティブモニターで映画を再生するように追加しました。playまた、私のファイルマネージャのすべてのビデオファイルのデフォルトハンドラです。

インストールした場合は、sox別のものを呼び出す必要があるかもしれません。/usr/bin/playsoxplay

スクリーンセーバーが中断されたくない他のフルスクリーンアプリケーションに対して同様のラッパーを作成できます。

xscreensaver-inhibit私が試したすべてのデスクトップ環境、Linux、スクリーンセーバーで動作します。それを得たらxdg-screensaver: command not found実行しなさいapt-get install xdg-utils

2018年12月のアップデートでデフォルトのコマンドが変更されましたxscreensaver-inhibit。 - すべてのDE、Linux、スクリーンセーバーではテストされxdg-screensaverていません。xscreensaver-command青少年MMV

答え3

私にはい--stop-screensaver

--stop-xscreensaverを使用すると、mplayerは次のように警告します。--stop-xscreensaver オプションは --stop-screensaver に置き換えられ、将来削除される可能性があります。

Debian & mpv 0.23.0 (C) 2000-2016 mpv/MPlayer/mplayer2 プロジェクト

関連情報